diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-03-09 15:18:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-09 15:18:02 +0100 |
commit | 886f330ec8110a3eb72feb14353f353962179d2e (patch) | |
tree | f6b458afac30a18d5120396bed9b1e63ae6d8529 /cli/js/ops/process.ts | |
parent | 1b6fc87b7188118896f797e5f0dab309775def71 (diff) |
reorg: move JS ops implementations to cli/js/ops/, part 2 (#4283)
Following JS ops were moved to separate files in cli/js/ops directory:
- io
- process
- worker_host
- web_worker
- plugins
- timers
- signal
- permissions
Diffstat (limited to 'cli/js/ops/process.ts')
-rw-r--r-- | cli/js/ops/process.ts | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cli/js/ops/process.ts b/cli/js/ops/process.ts new file mode 100644 index 000000000..31ce0b33e --- /dev/null +++ b/cli/js/ops/process.ts @@ -0,0 +1,47 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { sendSync, sendAsync } from "./dispatch_json.ts"; +import { assert } from "../util.ts"; + +/** Send a signal to process under given PID. Unix only at this moment. + * If pid is negative, the signal will be sent to the process group identified + * by -pid. + * Requires the `--allow-run` flag. + */ +export function kill(pid: number, signo: number): void { + sendSync("op_kill", { pid, signo }); +} + +interface RunStatusResponse { + gotSignal: boolean; + exitCode: number; + exitSignal: number; +} + +export async function runStatus(rid: number): Promise<RunStatusResponse> { + return await sendAsync("op_run_status", { rid }); +} + +interface RunRequest { + args: string[]; + cwd?: string; + env?: Array<[string, string]>; + stdin: string; + stdout: string; + stderr: string; + stdinRid: number; + stdoutRid: number; + stderrRid: number; +} + +interface RunResponse { + rid: number; + pid: number; + stdinRid: number | null; + stdoutRid: number | null; + stderrRid: number | null; +} + +export function run(request: RunRequest): RunResponse { + assert(request.args.length > 0); + return sendSync("op_run", request); +} |