@akala/pm 14.0.21 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/changelog.md +5 -0
  2. package/dist/esm/commands/$init.js +5 -15
  3. package/dist/esm/commands/$init.js.map +1 -1
  4. package/dist/esm/commands/start.d.ts +0 -2
  5. package/dist/esm/commands/start.js +18 -22
  6. package/dist/esm/commands/start.js.map +1 -1
  7. package/dist/esm/commands/stop.js +2 -11
  8. package/dist/esm/commands/stop.js.map +1 -1
  9. package/dist/esm/messageport-adapter.d.ts +14 -0
  10. package/dist/esm/messageport-adapter.js +53 -0
  11. package/dist/esm/messageport-adapter.js.map +1 -0
  12. package/dist/esm/runtimes/child_process.d.ts +33 -0
  13. package/dist/esm/runtimes/child_process.js +44 -0
  14. package/dist/esm/runtimes/child_process.js.map +1 -0
  15. package/dist/esm/runtimes/process.d.ts +17 -0
  16. package/dist/esm/runtimes/process.js +26 -0
  17. package/dist/esm/runtimes/process.js.map +1 -0
  18. package/dist/esm/runtimes/shared.d.ts +24 -0
  19. package/dist/esm/runtimes/shared.js +2 -0
  20. package/dist/esm/runtimes/shared.js.map +1 -0
  21. package/dist/esm/runtimes/worker.d.ts +29 -0
  22. package/dist/esm/runtimes/worker.js +29 -0
  23. package/dist/esm/runtimes/worker.js.map +1 -0
  24. package/dist/esm/state.d.ts +3 -3
  25. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  26. package/package.json +6 -6
  27. package/src/commands/$init.ts +6 -18
  28. package/src/commands/start.ts +24 -25
  29. package/src/commands/stop.ts +5 -15
  30. package/src/messageport-adapter.ts +81 -0
  31. package/src/runtimes/child_process.ts +71 -0
  32. package/src/runtimes/process.ts +34 -0
  33. package/src/runtimes/shared.ts +24 -0
  34. package/src/runtimes/worker.ts +38 -0
  35. package/src/state.ts +4 -4
package/changelog.md CHANGED
@@ -1,4 +1,9 @@
1
1
  # (2025-03-20)
2
2
 
3
3
 
4
+ ### Features
5
+
6
+ * add runtime concept 1993141
7
+
8
+
4
9
 
@@ -1,10 +1,10 @@
1
1
  import fs from 'fs/promises';
2
2
  import { Container, Metadata, ignoredCommands, configure, SelfDefinedCommand } from '@akala/commands';
3
3
  import { PassThrough } from 'stream';
4
- import { EventEmitter } from 'events';
5
4
  import { Configuration } from '@akala/config';
6
5
  import { fileURLToPath } from 'url';
7
6
  import { eachAsync } from '@akala/core';
7
+ import Process from '../runtimes/process.js';
8
8
  export async function metadata(container, deep) {
9
9
  const metacontainer = { name: container.name || 'unnamed', commands: [] };
10
10
  await Promise.all(container.keys().map(async (key) => {
@@ -54,20 +54,10 @@ export default async function (container, context) {
54
54
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
55
  return stdoutPT.write(...args);
56
56
  };
57
- container.process = Object.assign(new EventEmitter(), {
58
- stdout: stdoutPT, stderr: stderrPT, stdio: null, stdin: process.stdin, pid: process.pid, connected: false,
59
- exitCode: undefined,
60
- signalCode: undefined,
61
- spawnargs: process.argv,
62
- spawnfile: null,
63
- kill: process.exit.bind(process),
64
- send: null,
65
- disconnect: null,
66
- unref: null,
67
- ref: null,
68
- killed: false,
69
- [Symbol.dispose]() {
70
- }
57
+ container.process = new Process({
58
+ stdout: stdoutPT,
59
+ stderr: stderrPT,
60
+ stdin: process.stdin
71
61
  });
72
62
  const configPath = context.options.configFile || './.pm.config.json';
73
63
  this.config = await Configuration.load(configPath, true);
@@ -1 +1 @@
1
- {"version":3,"file":"$init.js","sourceRoot":"","sources":["../../../src/commands/$init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$init.js","sourceRoot":"","sources":["../../../src/commands/$init.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { Container } from "@akala/commands";
2
2
  import State from '../state.js';
3
- import { StdioOptions } from "child_process";
4
3
  import pmContainer from '../container.js';
5
4
  import { CliContext } from "@akala/cli";
6
5
  export default function start(this: State, pm: pmContainer.container & Container<State>, name: string, options?: CliContext<{
@@ -16,7 +15,6 @@ export default function start(this: State, pm: pmContainer.container & Container
16
15
  execPath: string;
17
16
  args: string[];
18
17
  cwd: string;
19
- stdio: StdioOptions;
20
18
  shell: boolean;
21
19
  windowsHide: boolean;
22
20
  }>;
@@ -1,13 +1,12 @@
1
1
  import { Container, Processors, Metadata, Cli, updateCommands } from "@akala/commands";
2
- import { spawn } from "child_process";
3
2
  import { eachAsync, Event } from "@akala/core";
4
- import { NewLinePrefixer } from "../new-line-prefixer.js";
5
3
  import { unparseOptions } from "@akala/cli";
6
4
  import { ErrorWithStatus } from "@akala/core";
7
5
  import getRandomName from "./name.js";
8
- import { IpcAdapter } from "../ipc-adapter.js";
9
6
  import path from 'path';
10
7
  import { fileURLToPath } from 'url';
8
+ import ChildProcess from "../runtimes/child_process.js";
9
+ import Worker from "../runtimes/worker.js";
11
10
  //eslint-disable-next-line @typescript-eslint/ban-ts-comment
12
11
  //@ts-ignore
13
12
  const _dirname = typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url));
@@ -62,21 +61,13 @@ export default async function start(pm, name, options, context) {
62
61
  args.unshift(...process.execArgv);
63
62
  if (options && options.verbose)
64
63
  args.push('-v');
65
- let cp;
66
64
  if (!this.isDaemon) {
67
- if (options.keepAttached)
68
- cp = spawn(process.execPath, args, { cwd: process.cwd(), stdio: ['inherit', 'inherit', 'inherit', 'ipc'] });
69
- else
70
- cp = spawn(process.execPath, args, { cwd: process.cwd(), detached: true, stdio: ['ignore', 'ignore', 'ignore', 'ipc'] });
71
- cp.on('exit', function (...args) {
65
+ const cp = ChildProcess.build(args, { inheritStdio: true, name: options.name });
66
+ cp.on('exit', function () {
72
67
  console.log(args);
73
68
  });
74
- cp.on('message', function (message) {
75
- console.log(message);
76
- // cp.disconnect();
77
- });
78
69
  return new Promise((resolve) => {
79
- cp.on('disconnect', function () {
70
+ cp.on('runningChanged', () => {
80
71
  if (!options.keepAttached)
81
72
  cp.unref();
82
73
  console.log('pm started');
@@ -85,21 +76,26 @@ export default async function start(pm, name, options, context) {
85
76
  });
86
77
  }
87
78
  else {
79
+ let cp;
88
80
  if (!container && def.dependencies?.length) {
89
81
  var missingDeps = def.dependencies.filter(d => !this.config.containers[d] && !this.config.mapping[d]);
90
82
  if (missingDeps.length > 0)
91
83
  throw new ErrorWithStatus(404, `Some dependencies are missing to start ${options.name}:\n\t-${missingDeps.join('\n\t-')}`);
92
84
  await eachAsync(def.dependencies, async (dep) => { await pm.dispatch('start', dep, { name: options.name + '-' + dep, wait: true }); });
93
85
  }
94
- if (def?.type && def.type !== 'nodejs')
95
- throw new ErrorWithStatus(400, `container with type ${this.config.containers[name]?.type} are not yet supported`);
96
- cp = spawn(process.execPath, args, { cwd: process.cwd(), detached: !options.keepAttached, env: Object.assign({ DEBUG_COLORS: true }, process.env), stdio: ['ignore', 'pipe', 'pipe', 'ipc'], shell: false, windowsHide: true });
97
- cp.stderr?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stderr);
98
- cp.stdout?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stdout);
86
+ switch (def?.type) {
87
+ default:
88
+ throw new ErrorWithStatus(400, `container with type ${this.config.containers[name]?.type} are not yet supported`);
89
+ case 'worker':
90
+ cp = Worker.build(args, options);
91
+ break;
92
+ case 'nodejs':
93
+ cp = ChildProcess.build(args, options);
94
+ break;
95
+ }
99
96
  if (!container || !container.running) {
100
- const socket = new IpcAdapter(cp);
101
97
  container = new Container(options.name, null);
102
- const connection = Processors.JsonRpc.getConnection(socket, pm, (params) => {
98
+ const connection = Processors.JsonRpc.getConnection(cp.adapter, pm, (params) => {
103
99
  params.process = cp;
104
100
  Object.defineProperty(params, 'connectionAsContainer', Object.assign({ value: container }));
105
101
  });
@@ -155,7 +151,7 @@ export default async function start(pm, name, options, context) {
155
151
  }
156
152
  if (options.wait)
157
153
  await new Promise(resolve => container.ready?.addListener(resolve));
158
- return { execPath: process.execPath, args: args, cwd: process.cwd(), stdio: ['inherit', 'inherit', 'inherit', 'ipc'], shell: false, windowsHide: true };
154
+ return { execPath: process.execPath, args: args, cwd: process.cwd(), shell: false, windowsHide: true };
159
155
  }
160
156
  }
161
157
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -10,19 +10,10 @@ export default async function stop(name, container) {
10
10
  console.error(e);
11
11
  }
12
12
  }
13
- const timeout = setTimeout(function () {
14
- cp.process.kill();
15
- }, 5000);
16
- cp.process.on('exit', (_code, signal) => {
17
- container.unregister(cp.name);
18
- delete this.processes[cp.name];
19
- clearTimeout(timeout);
20
- resolve(signal);
21
- });
22
- cp.process.kill(2);
13
+ cp.process.stop().then(() => resolve());
23
14
  }
24
15
  else
25
- resolve(null);
16
+ resolve();
26
17
  });
27
18
  })).then(() => {
28
19
  if (name == 'pm' || !name) {
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/stop.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAc,IAAY,EAAE,SAA2B;IAErF,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAE9F,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YAEpC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAC5B,CAAC;gBACG,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EACzC,CAAC;oBACG,IACA,CAAC;wBACG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClC,CAAC;oBACD,OAAO,CAAC,EACR,CAAC;wBACG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,UAAU,CAAC;oBAEvB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC,EAAE,IAAI,CAAC,CAAA;gBACR,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBAEpC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC/B,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;;gBAEG,OAAO,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAEV,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EACzB,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/stop.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAc,IAAY,EAAE,SAA2B;IAErF,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAE9F,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAEjC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAC5B,CAAC;gBACG,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EACzC,CAAC;oBACG,IACA,CAAC;wBACG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClC,CAAC;oBACD,OAAO,CAAC,EACR,CAAC;wBACG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5C,CAAC;;gBAEG,OAAO,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAEV,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EACzB,CAAC;YACG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { SocketAdapter, SocketAdapterEventMap } from "@akala/json-rpc-ws";
2
+ import { MessagePort, Worker } from "worker_threads";
3
+ export declare class MessagePortAdapter implements SocketAdapter {
4
+ private cp;
5
+ private isOpen;
6
+ get open(): boolean;
7
+ close(): void;
8
+ send(data: string): void;
9
+ on<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
10
+ once<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
11
+ constructor(cp: MessagePort | Worker);
12
+ off<K extends keyof SocketAdapterEventMap>(event: K, handler?: (this: unknown, ev: SocketAdapterEventMap[K]) => void): void;
13
+ pipe(socket: SocketAdapter<unknown>): void;
14
+ }
@@ -0,0 +1,53 @@
1
+ import { Worker } from "worker_threads";
2
+ export class MessagePortAdapter {
3
+ cp;
4
+ isOpen = true;
5
+ get open() { return this.isOpen; }
6
+ close() {
7
+ if (this.cp instanceof Worker)
8
+ this.cp.terminate();
9
+ else
10
+ this.cp.close();
11
+ }
12
+ send(data) {
13
+ this.cp.postMessage(data);
14
+ }
15
+ on(event, handler) {
16
+ switch (event) {
17
+ case 'message':
18
+ this.cp.on('message', handler);
19
+ break;
20
+ case 'open':
21
+ handler(null);
22
+ break;
23
+ case 'close':
24
+ this.cp.on('disconnect', handler);
25
+ break;
26
+ }
27
+ }
28
+ once(event, handler) {
29
+ switch (event) {
30
+ case 'message':
31
+ this.cp.once('message', handler);
32
+ break;
33
+ case 'open':
34
+ handler(null);
35
+ break;
36
+ case 'close':
37
+ this.cp.once('close', () => handler(null));
38
+ break;
39
+ }
40
+ }
41
+ constructor(cp) {
42
+ this.cp = cp;
43
+ cp.on('close', () => this.isOpen = false);
44
+ }
45
+ off(event, handler) {
46
+ this.cp.off(event, handler);
47
+ }
48
+ pipe(socket) {
49
+ this.on('message', (message) => socket.send(message));
50
+ this.on('close', () => socket.close());
51
+ }
52
+ }
53
+ //# sourceMappingURL=messageport-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageport-adapter.js","sourceRoot":"","sources":["../../src/messageport-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,OAAO,kBAAkB;IAgDP;IA9CZ,MAAM,GAAY,IAAI,CAAC;IAE/B,IAAI,IAAI,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,KAAK;QAED,IAAI,IAAI,CAAC,EAAE,YAAY,MAAM;YACzB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;;YAEpB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,IAAY;QAEb,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,EAAE,CAAwC,KAAQ,EAAE,OAA+C;QAE/F,QAAQ,KAAK,EACb,CAAC;YACG,KAAK,SAAS;gBACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,MAAM;QACd,CAAC;IACL,CAAC;IAED,IAAI,CAAwC,KAAQ,EAAE,OAA+C;QAEjG,QAAQ,KAAK,EACb,CAAC;YACG,KAAK,SAAS;gBACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACjC,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,MAAM;QACd,CAAC;IACL,CAAC;IAED,YAAoB,EAAwB;QAAxB,OAAE,GAAF,EAAE,CAAsB;QAExC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,GAAG,CAAwC,KAAQ,EAAE,OAA+D;QAEhH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,MAA8B;QAE/B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;CAgBJ"}
@@ -0,0 +1,33 @@
1
+ import { SendHandle, Serializable } from "child_process";
2
+ import { Readable } from "stream";
3
+ import { IpcAdapter } from "../ipc-adapter.js";
4
+ import { RuntimeEventMap, RuntimeInstance } from "./shared.js";
5
+ import { EventEmitter, IEvent } from "@akala/core";
6
+ export type ChildProcessRuntimeEventMap = {
7
+ "close": IEvent<[code: number | null, signal: NodeJS.Signals | null], void>;
8
+ "disconnect": IEvent<[], void>;
9
+ "error": IEvent<[err: Error], void>;
10
+ "exit": IEvent<[code: number | null, signal: NodeJS.Signals | null], void>;
11
+ "message": IEvent<[message: Serializable, sendHandle: SendHandle], void>;
12
+ "spawn": IEvent<[], void>;
13
+ } & RuntimeEventMap;
14
+ export type ChildPRocessRuntimeOptions = {
15
+ new?: boolean;
16
+ name: string;
17
+ keepAttached?: boolean;
18
+ inspect?: boolean;
19
+ verbose?: boolean;
20
+ wait?: boolean;
21
+ inheritStdio?: boolean;
22
+ };
23
+ export default class Runtime extends EventEmitter<ChildProcessRuntimeEventMap> implements RuntimeInstance {
24
+ private readonly cp;
25
+ readonly adapter: IpcAdapter;
26
+ constructor(args: string[], options: ChildPRocessRuntimeOptions);
27
+ stop(timeoutInMs?: number): Promise<number>;
28
+ static build(args: string[], options: ChildPRocessRuntimeOptions): Runtime;
29
+ unref(): void;
30
+ get stderr(): Readable;
31
+ get stdout(): Readable;
32
+ get running(): boolean;
33
+ }
@@ -0,0 +1,44 @@
1
+ import { spawn } from "child_process";
2
+ import { IpcAdapter } from "../ipc-adapter.js";
3
+ import { NewLinePrefixer } from "../new-line-prefixer.js";
4
+ import { EventEmitter } from "@akala/core";
5
+ import { fileURLToPath } from "url";
6
+ export default class Runtime extends EventEmitter {
7
+ cp;
8
+ adapter;
9
+ constructor(args, options) {
10
+ super();
11
+ args.unshift(fileURLToPath(new URL('../fork', import.meta.url)));
12
+ if (options.inspect)
13
+ args.unshift("--inspect-brk");
14
+ this.cp = spawn(process.execPath, [require.resolve('../fork')].concat(args), { cwd: process.cwd(), detached: !options.keepAttached, env: Object.assign({ DEBUG_COLORS: process.stdout.isTTY }, process.env), stdio: ['ignore', options.inheritStdio ? 'inherit' : 'pipe', options.inheritStdio ? 'inherit' : 'pipe', 'ipc'], shell: false, windowsHide: true });
15
+ if (!options.inheritStdio) {
16
+ this.cp.stderr?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stderr);
17
+ this.cp.stdout?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stdout);
18
+ }
19
+ this.adapter = new IpcAdapter(this.cp);
20
+ this.cp.on('close', () => this.emit('exit'));
21
+ if (options.keepAttached)
22
+ this.cp.on('disconnect', () => this.emit('exit'));
23
+ }
24
+ stop(timeoutInMs) {
25
+ return new Promise((resolve) => {
26
+ this.cp.on('exit', (code, signal) => {
27
+ clearTimeout(timeout);
28
+ resolve(code);
29
+ });
30
+ this.cp.kill('SIGINT');
31
+ const timeout = setTimeout(() => { this.cp.kill(); }, timeoutInMs || 5000);
32
+ });
33
+ }
34
+ static build(args, options) {
35
+ return new Runtime(args, options);
36
+ }
37
+ unref() {
38
+ this.cp.unref();
39
+ }
40
+ get stderr() { return this.cp.stderr; }
41
+ get stdout() { return this.cp.stdout; }
42
+ get running() { return this.cp.exitCode === null; }
43
+ }
44
+ //# sourceMappingURL=child_process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child_process.js","sourceRoot":"","sources":["../../../src/runtimes/child_process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Readable, Writable } from "stream";
2
+ import { IpcAdapter } from "../ipc-adapter.js";
3
+ import { RuntimeEventMap, RuntimeInstance } from "./shared.js";
4
+ import { EventEmitter } from "@akala/core";
5
+ export default class Runtime extends EventEmitter<RuntimeEventMap> implements RuntimeInstance {
6
+ readonly adapter: IpcAdapter;
7
+ private stdio;
8
+ constructor(stdio?: {
9
+ stderr: Readable;
10
+ stdout: Readable;
11
+ stdin: Writable;
12
+ });
13
+ stop(timeoutInMs?: number): Promise<number>;
14
+ get stderr(): Readable;
15
+ get stdout(): Readable;
16
+ get running(): boolean;
17
+ }
@@ -0,0 +1,26 @@
1
+ import { IpcAdapter } from "../ipc-adapter.js";
2
+ import { EventEmitter } from "@akala/core";
3
+ export default class Runtime extends EventEmitter {
4
+ adapter;
5
+ stdio;
6
+ constructor(stdio) {
7
+ super();
8
+ this.adapter = new IpcAdapter(process);
9
+ if (!stdio)
10
+ this.stdio = process;
11
+ }
12
+ stop(timeoutInMs) {
13
+ return new Promise((resolve) => {
14
+ process.on('exit', (code, signal) => {
15
+ clearTimeout(timeout);
16
+ resolve(code);
17
+ });
18
+ process.kill(process.pid, 'SIGINT');
19
+ const timeout = setTimeout(() => { process.exit(); }, timeoutInMs || 5000);
20
+ });
21
+ }
22
+ get stderr() { return this.stdio.stderr; }
23
+ get stdout() { return this.stdio.stdout; }
24
+ get running() { return true; }
25
+ }
26
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/runtimes/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAA6B;IAE9C,OAAO,CAAa;IAC5B,KAAK,CAAyD;IACtE,YAAY,KAA+D;QAEvE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YACN,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,WAAoB;QAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAE3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAEhC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;IACN,CAAC;IACD,IAAI,MAAM,KAAe,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,CAAC,CAAC;IACnD,IAAI,MAAM,KAAe,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,CAAC,CAAC;IAEnD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAA,CAAC,CAAC;CAChC"}
@@ -0,0 +1,24 @@
1
+ import { IEvent, EventEmitter } from "@akala/core";
2
+ import { SocketAdapter } from "@akala/json-rpc-ws";
3
+ import { Readable } from "stream";
4
+ export interface Runtime {
5
+ build(args: string[], options: {
6
+ new?: boolean;
7
+ name: string;
8
+ keepAttached?: boolean;
9
+ inspect?: boolean;
10
+ verbose?: boolean;
11
+ wait?: boolean;
12
+ }): RuntimeInstance;
13
+ }
14
+ export type RuntimeEventMap = {
15
+ runningChanged: IEvent<[], void>;
16
+ exit: IEvent<[], void>;
17
+ };
18
+ export interface RuntimeInstance<T extends RuntimeEventMap = RuntimeEventMap> extends EventEmitter<T> {
19
+ stop(): Promise<number>;
20
+ get adapter(): SocketAdapter;
21
+ get stderr(): Readable;
22
+ get stdout(): Readable;
23
+ get running(): boolean;
24
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/runtimes/shared.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { Readable } from "stream";
2
+ import { MessagePortAdapter } from "../messageport-adapter.js";
3
+ import { RuntimeEventMap, RuntimeInstance } from "./shared.js";
4
+ import { EventEmitter } from "@akala/core";
5
+ export default class Runtime extends EventEmitter<RuntimeEventMap> implements RuntimeInstance {
6
+ private readonly cp;
7
+ readonly adapter: MessagePortAdapter;
8
+ private _running;
9
+ constructor(args: string[], options: {
10
+ new?: boolean;
11
+ name: string;
12
+ keepAttached?: boolean;
13
+ inspect?: boolean;
14
+ verbose?: boolean;
15
+ wait?: boolean;
16
+ });
17
+ stop(): Promise<number>;
18
+ static build(args: string[], options: {
19
+ new?: boolean;
20
+ name: string;
21
+ keepAttached?: boolean;
22
+ inspect?: boolean;
23
+ verbose?: boolean;
24
+ wait?: boolean;
25
+ }): Runtime;
26
+ get stderr(): Readable;
27
+ get stdout(): Readable;
28
+ get running(): boolean;
29
+ }
@@ -0,0 +1,29 @@
1
+ import { Worker } from "worker_threads";
2
+ import { NewLinePrefixer } from "../new-line-prefixer.js";
3
+ import { MessagePortAdapter } from "../messageport-adapter.js";
4
+ import module from 'module';
5
+ import { EventEmitter } from "@akala/core";
6
+ const require = module.createRequire(import.meta.url);
7
+ export default class Runtime extends EventEmitter {
8
+ cp;
9
+ adapter;
10
+ _running;
11
+ constructor(args, options) {
12
+ super();
13
+ this.cp = new Worker(require.resolve('../fork'), { argv: args, stderr: true, stdout: true });
14
+ this.cp.stderr?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stderr);
15
+ this.cp.stdout?.pipe(new NewLinePrefixer(options.name + ' ', { useColors: true })).pipe(process.stdout);
16
+ this.adapter = new MessagePortAdapter(this.cp);
17
+ this.cp.on('exit', () => { this._running = false; this.emit('runningChanged'); });
18
+ }
19
+ stop() {
20
+ return this.cp.terminate();
21
+ }
22
+ static build(args, options) {
23
+ return new Runtime(args, options);
24
+ }
25
+ get stderr() { return this.cp.stderr; }
26
+ get stdout() { return this.cp.stdout; }
27
+ get running() { return this._running; }
28
+ }
29
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/runtimes/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAA6B;IAE7C,EAAE,CAAS;IACZ,OAAO,CAAqB;IACpC,QAAQ,CAAU;IAC1B,YAAY,IAAc,EAAE,OAAsH;QAE9I,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5F,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACpF,CAAC;IACD,IAAI;QAEA,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAc,EAAE,OAAsH;QAEtJ,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,KAAe,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAC;IAChD,IAAI,MAAM,KAAe,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAC;IAEhD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC1C"}
@@ -1,8 +1,8 @@
1
1
  import { Container } from "@akala/commands";
2
- import { ChildProcess } from "child_process";
3
2
  import { Event, SerializableObject } from "@akala/core";
4
3
  import { SocketAdapter } from "@akala/json-rpc-ws";
5
4
  import { ProxyConfiguration } from "@akala/config";
5
+ import { RuntimeInstance } from "./runtimes/shared.js";
6
6
  export default interface State {
7
7
  processes: {
8
8
  [key: string]: RunningContainer;
@@ -33,7 +33,7 @@ export interface SidecarMetadata {
33
33
  stateless: boolean;
34
34
  dependencies?: string[];
35
35
  commandable: boolean;
36
- type?: 'nodejs';
36
+ type?: 'nodejs' | 'worker';
37
37
  }
38
38
  export interface SidecarConfiguration<T extends string | SerializableObject = SerializableObject> {
39
39
  cli?: string[];
@@ -44,7 +44,7 @@ export interface SidecarConfiguration<T extends string | SerializableObject = Se
44
44
  autostart?: boolean;
45
45
  }
46
46
  export interface RunningContainer<T extends string | SerializableObject = any> extends Container<unknown>, SidecarConfiguration<T>, SidecarMetadata {
47
- process: ChildProcess;
47
+ process: RuntimeInstance;
48
48
  running?: boolean;
49
49
  stateless: boolean;
50
50
  ready?: Event<[void]>;