diff options
Diffstat (limited to 'cli/js/ops/runtime.ts')
-rw-r--r-- | cli/js/ops/runtime.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/cli/js/ops/runtime.ts b/cli/js/ops/runtime.ts new file mode 100644 index 000000000..7538ce12f --- /dev/null +++ b/cli/js/ops/runtime.ts @@ -0,0 +1,67 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +import { sendSync } from "./dispatch_json.ts"; + +// TODO(bartlomieju): these two types are duplicated +// in `cli/js/build.ts` - deduplicate +export type OperatingSystem = "mac" | "win" | "linux"; +export type Arch = "x64" | "arm64"; + +export interface Start { + cwd: string; + pid: number; + args: string[]; + location: string; // Absolute URL. + repl: boolean; + debugFlag: boolean; + depsFlag: boolean; + typesFlag: boolean; + versionFlag: boolean; + denoVersion: string; + v8Version: string; + tsVersion: string; + noColor: boolean; + os: OperatingSystem; + arch: Arch; +} + +export function start(): Start { + return sendSync("op_start"); +} + +export interface Metrics { + opsDispatched: number; + opsDispatchedSync: number; + opsDispatchedAsync: number; + opsDispatchedAsyncUnref: number; + opsCompleted: number; + opsCompletedSync: number; + opsCompletedAsync: number; + opsCompletedAsyncUnref: number; + bytesSentControl: number; + bytesSentData: number; + bytesReceived: number; +} + +/** Receive metrics from the privileged side of Deno. + * + * > console.table(Deno.metrics()) + * ┌─────────────────────────┬────────┐ + * │ (index) │ Values │ + * ├─────────────────────────┼────────┤ + * │ opsDispatched │ 3 │ + * │ opsDispatchedSync │ 2 │ + * │ opsDispatchedAsync │ 1 │ + * │ opsDispatchedAsyncUnref │ 0 │ + * │ opsCompleted │ 3 │ + * │ opsCompletedSync │ 2 │ + * │ opsCompletedAsync │ 1 │ + * │ opsCompletedAsyncUnref │ 0 │ + * │ bytesSentControl │ 73 │ + * │ bytesSentData │ 0 │ + * │ bytesReceived │ 375 │ + * └─────────────────────────┴────────┘ + */ +export function metrics(): Metrics { + return sendSync("op_metrics"); +} |