@akala/pm 14.0.20 → 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.
- package/changelog.md +6 -1
- package/dist/esm/commands/$init.js +5 -15
- package/dist/esm/commands/$init.js.map +1 -1
- package/dist/esm/commands/start.d.ts +0 -2
- package/dist/esm/commands/start.js +18 -22
- package/dist/esm/commands/start.js.map +1 -1
- package/dist/esm/commands/stop.js +2 -11
- package/dist/esm/commands/stop.js.map +1 -1
- package/dist/esm/messageport-adapter.d.ts +14 -0
- package/dist/esm/messageport-adapter.js +53 -0
- package/dist/esm/messageport-adapter.js.map +1 -0
- package/dist/esm/runtimes/child_process.d.ts +33 -0
- package/dist/esm/runtimes/child_process.js +44 -0
- package/dist/esm/runtimes/child_process.js.map +1 -0
- package/dist/esm/runtimes/process.d.ts +17 -0
- package/dist/esm/runtimes/process.js +26 -0
- package/dist/esm/runtimes/process.js.map +1 -0
- package/dist/esm/runtimes/shared.d.ts +24 -0
- package/dist/esm/runtimes/shared.js +2 -0
- package/dist/esm/runtimes/shared.js.map +1 -0
- package/dist/esm/runtimes/worker.d.ts +29 -0
- package/dist/esm/runtimes/worker.js +29 -0
- package/dist/esm/runtimes/worker.js.map +1 -0
- package/dist/esm/state.d.ts +3 -3
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/commands/$init.ts +6 -18
- package/src/commands/start.ts +24 -25
- package/src/commands/stop.ts +5 -15
- package/src/messageport-adapter.ts +81 -0
- package/src/runtimes/child_process.ts +71 -0
- package/src/runtimes/process.ts +34 -0
- package/src/runtimes/shared.ts +24 -0
- package/src/runtimes/worker.ts +38 -0
- package/src/state.ts +4 -4
package/changelog.md
CHANGED
@@ -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 =
|
58
|
-
stdout: stdoutPT,
|
59
|
-
|
60
|
-
|
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":"AACA,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
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
|
-
|
68
|
-
|
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('
|
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
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
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(
|
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(),
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
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
|
-
|
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(
|
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,
|
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 @@
|
|
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"}
|
package/dist/esm/state.d.ts
CHANGED
@@ -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:
|
47
|
+
process: RuntimeInstance;
|
48
48
|
running?: boolean;
|
49
49
|
stateless: boolean;
|
50
50
|
ready?: Event<[void]>;
|