From 886f330ec8110a3eb72feb14353f353962179d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 9 Mar 2020 15:18:02 +0100 Subject: 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 --- cli/js/ops/process.ts | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 cli/js/ops/process.ts (limited to 'cli/js/ops/process.ts') 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 { + 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); +} -- cgit v1.2.3