mirror of
https://github.com/tauri-apps/tauri-docs.git
synced 2026-01-31 00:35:16 +01:00
167 lines
4.2 KiB
Markdown
167 lines
4.2 KiB
Markdown
[@tauri-apps/api](../README.md) / [shell](../modules/shell.md) / Command
|
|
|
|
# Class: Command
|
|
|
|
[shell](../modules/shell.md).Command
|
|
|
|
The entry point for spawning child processes.
|
|
It emits the `close` and `error` events.
|
|
|
|
**`Example`**
|
|
|
|
```typescript
|
|
import { Command } from '@tauri-apps/api/shell';
|
|
const command = new Command('node');
|
|
command.on('close', data => {
|
|
console.log(`command finished with code ${data.code} and signal ${data.signal}`)
|
|
});
|
|
command.on('error', error => console.error(`command error: "${error}"`));
|
|
command.stdout.on('data', line => console.log(`command stdout: "${line}"`));
|
|
command.stderr.on('data', line => console.log(`command stderr: "${line}"`));
|
|
|
|
const child = await command.spawn();
|
|
console.log('pid:', child.pid);
|
|
```
|
|
|
|
## Hierarchy
|
|
|
|
- [`EventEmitter`](shell.EventEmitter.md)<``"close"`` \| ``"error"``\>
|
|
|
|
↳ **`Command`**
|
|
|
|
## Constructors
|
|
|
|
### constructor
|
|
|
|
**new Command**(`program`, `args?`, `options?`)
|
|
|
|
Creates a new `Command` instance.
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Default value | Description |
|
|
| :------ | :------ | :------ | :------ |
|
|
| `program` | `string` | `undefined` | The program name to execute. It must be configured on `tauri.conf.json > tauri > allowlist > shell > scope`. |
|
|
| `args` | `string` \| `string`[] | `[]` | Program arguments. |
|
|
| `options?` | [`SpawnOptions`](../interfaces/shell.SpawnOptions.md) | `undefined` | Spawn options. |
|
|
|
|
#### Overrides
|
|
|
|
[EventEmitter](shell.EventEmitter.md).[constructor](shell.EventEmitter.md#constructor)
|
|
|
|
## Properties
|
|
|
|
### stderr
|
|
|
|
`Readonly` **stderr**: [`EventEmitter`](shell.EventEmitter.md)<``"data"``\>
|
|
|
|
Event emitter for the `stderr`. Emits the `data` event.
|
|
|
|
#### Defined in
|
|
|
|
[shell.ts:258](https://github.com/tauri-apps/tauri/blob/b1d5342/tooling/api/src/shell.ts#L258)
|
|
|
|
___
|
|
|
|
### stdout
|
|
|
|
`Readonly` **stdout**: [`EventEmitter`](shell.EventEmitter.md)<``"data"``\>
|
|
|
|
Event emitter for the `stdout`. Emits the `data` event.
|
|
|
|
#### Defined in
|
|
|
|
[shell.ts:256](https://github.com/tauri-apps/tauri/blob/b1d5342/tooling/api/src/shell.ts#L256)
|
|
|
|
## Methods
|
|
|
|
### execute
|
|
|
|
**execute**(): `Promise`<[`ChildProcess`](../interfaces/shell.ChildProcess.md)\>
|
|
|
|
Executes the command as a child process, waiting for it to finish and collecting all of its output.
|
|
|
|
**`Example`**
|
|
|
|
```typescript
|
|
import { Command } from '@tauri-apps/api/shell';
|
|
const output = await new Command('echo', 'message').execute();
|
|
assert(output.code === 0);
|
|
assert(output.signal === null);
|
|
assert(output.stdout === 'message');
|
|
assert(output.stderr === '');
|
|
```
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`ChildProcess`](../interfaces/shell.ChildProcess.md)\>
|
|
|
|
A promise resolving to the child process output.
|
|
|
|
___
|
|
|
|
### on
|
|
|
|
**on**(`event`, `handler`): [`EventEmitter`](shell.EventEmitter.md)<``"error"`` \| ``"close"``\>
|
|
|
|
Listen to an event from the child process.
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
| :------ | :------ | :------ |
|
|
| `event` | ``"error"`` \| ``"close"`` | The event name. |
|
|
| `handler` | (`arg`: `any`) => `void` | The event handler. |
|
|
|
|
#### Returns
|
|
|
|
[`EventEmitter`](shell.EventEmitter.md)<``"error"`` \| ``"close"``\>
|
|
|
|
The `this` instance for chained calls.
|
|
|
|
#### Inherited from
|
|
|
|
[EventEmitter](shell.EventEmitter.md).[on](shell.EventEmitter.md#on)
|
|
|
|
___
|
|
|
|
### spawn
|
|
|
|
**spawn**(): `Promise`<[`Child`](shell.Child.md)\>
|
|
|
|
Executes the command as a child process, returning a handle to it.
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`Child`](shell.Child.md)\>
|
|
|
|
A promise resolving to the child process handle.
|
|
|
|
___
|
|
|
|
### sidecar
|
|
|
|
`Static` **sidecar**(`program`, `args?`, `options?`): [`Command`](shell.Command.md)
|
|
|
|
Creates a command to execute the given sidecar program.
|
|
|
|
**`Example`**
|
|
|
|
```typescript
|
|
import { Command } from '@tauri-apps/api/shell';
|
|
const command = Command.sidecar('my-sidecar');
|
|
const output = await command.execute();
|
|
```
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Default value | Description |
|
|
| :------ | :------ | :------ | :------ |
|
|
| `program` | `string` | `undefined` | The program to execute. It must be configured on `tauri.conf.json > tauri > allowlist > shell > scope`. |
|
|
| `args` | `string` \| `string`[] | `[]` | Program arguments. |
|
|
| `options?` | [`SpawnOptions`](../interfaces/shell.SpawnOptions.md) | `undefined` | Spawn options. |
|
|
|
|
#### Returns
|
|
|
|
[`Command`](shell.Command.md)
|