@antelopejs/core 1.13.1 → 1.13.3
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/dist/core/cli/commands/project/dev-action.js +5 -2
- package/dist/core/cli/commands/project/dev-action.js.map +1 -1
- package/dist/core/cli/commands/project/init-action.js +11 -29
- package/dist/core/cli/commands/project/init-action.js.map +1 -1
- package/dist/core/cli/full-cli.js +2 -2
- package/dist/core/cli/full-cli.js.map +1 -1
- package/dist/core/cli/help.d.ts +0 -2
- package/dist/core/cli/help.js +4 -31
- package/dist/core/cli/help.js.map +1 -1
- package/dist/core/cli/index.js +3 -2
- package/dist/core/cli/index.js.map +1 -1
- package/dist/core/cli/output/format.d.ts +2 -0
- package/dist/core/cli/output/format.js +29 -0
- package/dist/core/cli/output/format.js.map +1 -1
- package/dist/core/cli/output/types.d.ts +1 -1
- package/dist/core/cli/output/ui.js +36 -14
- package/dist/core/cli/output/ui.js.map +1 -1
- package/dist/core/cli/plugin-arguments.d.ts +1 -0
- package/dist/core/cli/plugin-arguments.js +17 -2
- package/dist/core/cli/plugin-arguments.js.map +1 -1
- package/dist/core/cli/public.d.ts +2 -2
- package/dist/core/cli/public.js +3 -3
- package/dist/core/cli/public.js.map +1 -1
- package/dist/core/runtime/launch-sequence.js +12 -5
- package/dist/core/runtime/launch-sequence.js.map +1 -1
- package/dist/core/runtime/process-claim.d.ts +7 -0
- package/dist/core/runtime/process-claim.js +111 -0
- package/dist/core/runtime/process-claim.js.map +1 -0
- package/dist/core/runtime/project-launch.js +2 -66
- package/dist/core/runtime/project-launch.js.map +1 -1
- package/dist/core/shutdown/process-tree.d.ts +1 -0
- package/dist/core/shutdown/process-tree.js +9 -0
- package/dist/core/shutdown/process-tree.js.map +1 -1
- package/dist/core/shutdown/shutdown-manager.d.ts +12 -4
- package/dist/core/shutdown/shutdown-manager.js +70 -36
- package/dist/core/shutdown/shutdown-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { CapabilityContext, ChannelFlags, CliProblem, ColorName, DetailEntry, FailureTranslator, MessageLevel, MessageOptions, MissingInput, MultiSelectQuestion, NextStep, OutputCapabilities, OutputChannel, OutputStream, OutputStreams, Palette, PromptChoice, Prompter, PrompterOptions, Question, SelectQuestion, SummaryBlock, SymbolSet, SymbolSetName, TableColumn, TaskHandle, TaskLabels, TaskListOptions, Ui, UiOptions, } from "./output/types";
|
|
2
2
|
export { SYMBOL_SETS, selectSymbols } from "./output/symbols";
|
|
3
3
|
export { detectCapabilities, processCapabilityContext, } from "./output/capabilities";
|
|
4
|
-
export { displayPath, formatDuration, pluralize } from "./output/format";
|
|
4
|
+
export { displayPath, formatDuration, pluralize, unbreakable, wrapText, } from "./output/format";
|
|
5
5
|
export { createUi } from "./output/ui";
|
|
6
6
|
export { TaskList, getProcessPalette, getProcessTasks, getProcessUi, runTask, } from "./output/tasks";
|
|
7
7
|
export { writeData, type DataOutput } from "./output/data";
|
|
@@ -10,5 +10,5 @@ export { isQuietRun, isVerboseRun, type VerbosityContext, } from "./output/verbo
|
|
|
10
10
|
export { runWithErrorBoundary, type BoundaryOptions } from "./output/boundary";
|
|
11
11
|
export { createPrompter, missingFlags, type AnswerFlag } from "./output/prompt";
|
|
12
12
|
export { formatUsageErrors } from "./usage-errors";
|
|
13
|
-
export { applyHelpConventions, formatExamples, formatHelpItem, helpTextWidth, helpWidth,
|
|
13
|
+
export { applyHelpConventions, formatExamples, formatHelpItem, helpTextWidth, helpWidth, withExamples, type HelpExample, type HelpStream, } from "./help";
|
|
14
14
|
export { CANCELLED_EXIT_CODE, FAILURE_EXIT_CODE, SUCCESS_EXIT_CODE, USAGE_EXIT_CODE, } from "./exit-codes";
|
package/dist/core/cli/public.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.USAGE_EXIT_CODE = exports.SUCCESS_EXIT_CODE = exports.FAILURE_EXIT_CODE = exports.CANCELLED_EXIT_CODE = exports.
|
|
3
|
+
exports.USAGE_EXIT_CODE = exports.SUCCESS_EXIT_CODE = exports.FAILURE_EXIT_CODE = exports.CANCELLED_EXIT_CODE = exports.withExamples = exports.helpWidth = exports.helpTextWidth = exports.formatHelpItem = exports.formatExamples = exports.applyHelpConventions = exports.formatUsageErrors = exports.missingFlags = exports.createPrompter = exports.runWithErrorBoundary = exports.isVerboseRun = exports.isQuietRun = exports.NeedsInputError = exports.CliError = exports.CancelledError = exports.writeData = exports.runTask = exports.getProcessUi = exports.getProcessTasks = exports.getProcessPalette = exports.TaskList = exports.createUi = exports.wrapText = exports.unbreakable = exports.pluralize = exports.formatDuration = exports.displayPath = exports.processCapabilityContext = exports.detectCapabilities = exports.selectSymbols = exports.SYMBOL_SETS = void 0;
|
|
4
4
|
var symbols_1 = require("./output/symbols");
|
|
5
5
|
Object.defineProperty(exports, "SYMBOL_SETS", { enumerable: true, get: function () { return symbols_1.SYMBOL_SETS; } });
|
|
6
6
|
Object.defineProperty(exports, "selectSymbols", { enumerable: true, get: function () { return symbols_1.selectSymbols; } });
|
|
@@ -11,6 +11,8 @@ var format_1 = require("./output/format");
|
|
|
11
11
|
Object.defineProperty(exports, "displayPath", { enumerable: true, get: function () { return format_1.displayPath; } });
|
|
12
12
|
Object.defineProperty(exports, "formatDuration", { enumerable: true, get: function () { return format_1.formatDuration; } });
|
|
13
13
|
Object.defineProperty(exports, "pluralize", { enumerable: true, get: function () { return format_1.pluralize; } });
|
|
14
|
+
Object.defineProperty(exports, "unbreakable", { enumerable: true, get: function () { return format_1.unbreakable; } });
|
|
15
|
+
Object.defineProperty(exports, "wrapText", { enumerable: true, get: function () { return format_1.wrapText; } });
|
|
14
16
|
var ui_1 = require("./output/ui");
|
|
15
17
|
Object.defineProperty(exports, "createUi", { enumerable: true, get: function () { return ui_1.createUi; } });
|
|
16
18
|
var tasks_1 = require("./output/tasks");
|
|
@@ -41,9 +43,7 @@ Object.defineProperty(exports, "formatExamples", { enumerable: true, get: functi
|
|
|
41
43
|
Object.defineProperty(exports, "formatHelpItem", { enumerable: true, get: function () { return help_1.formatHelpItem; } });
|
|
42
44
|
Object.defineProperty(exports, "helpTextWidth", { enumerable: true, get: function () { return help_1.helpTextWidth; } });
|
|
43
45
|
Object.defineProperty(exports, "helpWidth", { enumerable: true, get: function () { return help_1.helpWidth; } });
|
|
44
|
-
Object.defineProperty(exports, "unbreakable", { enumerable: true, get: function () { return help_1.unbreakable; } });
|
|
45
46
|
Object.defineProperty(exports, "withExamples", { enumerable: true, get: function () { return help_1.withExamples; } });
|
|
46
|
-
Object.defineProperty(exports, "wrapText", { enumerable: true, get: function () { return help_1.wrapText; } });
|
|
47
47
|
var exit_codes_1 = require("./exit-codes");
|
|
48
48
|
Object.defineProperty(exports, "CANCELLED_EXIT_CODE", { enumerable: true, get: function () { return exit_codes_1.CANCELLED_EXIT_CODE; } });
|
|
49
49
|
Object.defineProperty(exports, "FAILURE_EXIT_CODE", { enumerable: true, get: function () { return exit_codes_1.FAILURE_EXIT_CODE; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/core/cli/public.ts"],"names":[],"mappings":";;;AAwCA,4CAA8D;AAArD,sGAAA,WAAW,OAAA;AAAE,wGAAA,aAAa,OAAA;AACnC,sDAG+B;AAF7B,kHAAA,kBAAkB,OAAA;AAClB,wHAAA,wBAAwB,OAAA;AAE1B,
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/core/cli/public.ts"],"names":[],"mappings":";;;AAwCA,4CAA8D;AAArD,sGAAA,WAAW,OAAA;AAAE,wGAAA,aAAa,OAAA;AACnC,sDAG+B;AAF7B,kHAAA,kBAAkB,OAAA;AAClB,wHAAA,wBAAwB,OAAA;AAE1B,0CAMyB;AALvB,qGAAA,WAAW,OAAA;AACX,wGAAA,cAAc,OAAA;AACd,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,kGAAA,QAAQ,OAAA;AAEV,kCAAuC;AAA9B,8FAAA,QAAQ,OAAA;AACjB,wCAMwB;AALtB,iGAAA,QAAQ,OAAA;AACR,0GAAA,iBAAiB,OAAA;AACjB,wGAAA,eAAe,OAAA;AACf,qGAAA,YAAY,OAAA;AACZ,gGAAA,OAAO,OAAA;AAET,sCAA2D;AAAlD,iGAAA,SAAS,OAAA;AAClB,0CAA4E;AAAnE,wGAAA,cAAc,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,yGAAA,eAAe,OAAA;AAClD,gDAI4B;AAH1B,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AAGd,8CAA+E;AAAtE,gHAAA,oBAAoB,OAAA;AAC7B,0CAAgF;AAAvE,wGAAA,cAAc,OAAA;AAAE,sGAAA,YAAY,OAAA;AACrC,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,+BASgB;AARd,4GAAA,oBAAoB,OAAA;AACpB,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,oGAAA,YAAY,OAAA;AAId,2CAKsB;AAJpB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA"}
|
|
@@ -40,7 +40,6 @@ exports.prepareFromRefreshedArtifact = exports.prepareFromArtifact = exports.pre
|
|
|
40
40
|
exports.memoizeLoaderContext = memoizeLoaderContext;
|
|
41
41
|
exports.runLaunchSequence = runLaunchSequence;
|
|
42
42
|
const node_path_1 = __importDefault(require("node:path"));
|
|
43
|
-
const shutdown_1 = require("../shutdown");
|
|
44
43
|
const filesystem_1 = require("../filesystem");
|
|
45
44
|
const module_manager_1 = require("../module-manager");
|
|
46
45
|
const tasks_1 = require("../cli/output/tasks");
|
|
@@ -50,6 +49,7 @@ const dev_server_registry_1 = require("./dev-server-registry");
|
|
|
50
49
|
const runtime_policy_1 = require("./runtime-policy");
|
|
51
50
|
const build_runtime_1 = require("./build-runtime");
|
|
52
51
|
const runtime_bootstrap_1 = require("./runtime-bootstrap");
|
|
52
|
+
const process_claim_1 = require("./process-claim");
|
|
53
53
|
const module_loading_1 = require("./module-loading");
|
|
54
54
|
function memoizeLoaderContext(create) {
|
|
55
55
|
let pending;
|
|
@@ -114,8 +114,16 @@ const prepareFromRefreshedArtifact = async (projectFolder, env) => {
|
|
|
114
114
|
return prepareFromBuiltArtifact(artifact, projectFolder, fs, () => (0, build_runtime_1.ensureBuildModulesExist)(artifact, fs));
|
|
115
115
|
};
|
|
116
116
|
exports.prepareFromRefreshedArtifact = prepareFromRefreshedArtifact;
|
|
117
|
+
function armShutdown(shutdownManager, manager, policy) {
|
|
118
|
+
const moduleShutdown = (0, process_claim_1.registerModuleShutdownHandler)(shutdownManager, manager);
|
|
119
|
+
if (policy.processHandlers) {
|
|
120
|
+
(0, runtime_bootstrap_1.setupProcessHandlers)(shutdownManager);
|
|
121
|
+
}
|
|
122
|
+
(0, process_claim_1.claimProcess)(shutdownManager, policy);
|
|
123
|
+
return moduleShutdown;
|
|
124
|
+
}
|
|
117
125
|
async function runLaunchSequence(prepare, projectFolder, env, options, policy = runtime_policy_1.DEFAULT_RUNTIME_POLICY) {
|
|
118
|
-
const shutdownManager =
|
|
126
|
+
const shutdownManager = (0, process_claim_1.createShutdownManager)(policy);
|
|
119
127
|
const manager = new module_manager_1.ModuleManager();
|
|
120
128
|
const request = {
|
|
121
129
|
prepare,
|
|
@@ -124,15 +132,14 @@ async function runLaunchSequence(prepare, projectFolder, env, options, policy =
|
|
|
124
132
|
options,
|
|
125
133
|
policy,
|
|
126
134
|
};
|
|
127
|
-
|
|
128
|
-
(0, runtime_bootstrap_1.setupProcessHandlers)(shutdownManager);
|
|
129
|
-
}
|
|
135
|
+
const moduleShutdown = armShutdown(shutdownManager, manager, policy);
|
|
130
136
|
const previouslySilent = tasks_1.terminalDisplay.isSilent();
|
|
131
137
|
tasks_1.terminalDisplay.setSilent(!policy.terminal);
|
|
132
138
|
try {
|
|
133
139
|
return await completeLaunchSequence(request, shutdownManager, manager);
|
|
134
140
|
}
|
|
135
141
|
catch (error) {
|
|
142
|
+
shutdownManager.unregister(moduleShutdown);
|
|
136
143
|
const cleanupErrors = await cleanupFailedLaunch(manager, shutdownManager);
|
|
137
144
|
(0, runtime_bootstrap_1.releaseProcessShutdownManager)(shutdownManager);
|
|
138
145
|
if (cleanupErrors.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-sequence.js","sourceRoot":"","sources":["../../../src/core/runtime/launch-sequence.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"launch-sequence.js","sourceRoot":"","sources":["../../../src/core/runtime/launch-sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ModuleManager } from "../module-manager";
|
|
2
|
+
import type { RuntimePolicy } from "./runtime-policy";
|
|
3
|
+
import { type ShutdownHandler, ShutdownManager } from "../shutdown";
|
|
4
|
+
export declare function getActiveShutdownManager(): ShutdownManager | undefined;
|
|
5
|
+
export declare function createShutdownManager(policy: RuntimePolicy): ShutdownManager;
|
|
6
|
+
export declare function registerModuleShutdownHandler(shutdownManager: ShutdownManager, manager: ModuleManager): ShutdownHandler;
|
|
7
|
+
export declare function claimProcess(shutdownManager: ShutdownManager, policy: RuntimePolicy): void;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getActiveShutdownManager = getActiveShutdownManager;
|
|
4
|
+
exports.createShutdownManager = createShutdownManager;
|
|
5
|
+
exports.registerModuleShutdownHandler = registerModuleShutdownHandler;
|
|
6
|
+
exports.claimProcess = claimProcess;
|
|
7
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
8
|
+
const tasks_1 = require("../cli/output/tasks");
|
|
9
|
+
const runtime_bootstrap_1 = require("./runtime-bootstrap");
|
|
10
|
+
const shutdown_1 = require("../shutdown");
|
|
11
|
+
const Logger = new logging_1.Logging.Channel("loader");
|
|
12
|
+
const SHUTDOWN_PRIORITY_MODULES = 30;
|
|
13
|
+
const SHUTDOWN_PRIORITY_CHILD_PROCESSES = 15;
|
|
14
|
+
const SHUTDOWN_PRIORITY_CLEANUP = 10;
|
|
15
|
+
const STOPPING_LABELS = {
|
|
16
|
+
SIGINT: "Stopping the project (Ctrl+C again to force)",
|
|
17
|
+
SIGTERM: "Stopping the project",
|
|
18
|
+
};
|
|
19
|
+
const STOPPED_LABEL = "Stopped the project";
|
|
20
|
+
const TIMED_OUT_LABEL = "Stopped the project after the shutdown timed out";
|
|
21
|
+
const FORCED_LABEL = "Stopped the project without waiting for its shutdown";
|
|
22
|
+
const activeShutdownManagers = [];
|
|
23
|
+
function getActiveShutdownManager() {
|
|
24
|
+
return activeShutdownManagers.at(-1);
|
|
25
|
+
}
|
|
26
|
+
function setActiveShutdownManager(shutdownManager) {
|
|
27
|
+
releaseActiveShutdownManager(shutdownManager);
|
|
28
|
+
activeShutdownManagers.at(-1)?.removeSignalHandlers();
|
|
29
|
+
activeShutdownManagers.push(shutdownManager);
|
|
30
|
+
shutdownManager.setupSignalHandlers();
|
|
31
|
+
}
|
|
32
|
+
function releaseActiveShutdownManager(shutdownManager) {
|
|
33
|
+
const index = activeShutdownManagers.indexOf(shutdownManager);
|
|
34
|
+
if (index === -1) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const wasActive = index === activeShutdownManagers.length - 1;
|
|
38
|
+
activeShutdownManagers.splice(index, 1);
|
|
39
|
+
shutdownManager.removeSignalHandlers();
|
|
40
|
+
if (wasActive) {
|
|
41
|
+
activeShutdownManagers.at(-1)?.setupSignalHandlers();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function createStopListener(isReported) {
|
|
45
|
+
let task;
|
|
46
|
+
return {
|
|
47
|
+
onStopping: (signal) => {
|
|
48
|
+
task = isReported
|
|
49
|
+
? (0, tasks_1.getProcessTasks)().start(STOPPING_LABELS[signal])
|
|
50
|
+
: undefined;
|
|
51
|
+
},
|
|
52
|
+
onStopped: (hasTimedOut) => {
|
|
53
|
+
if (hasTimedOut) {
|
|
54
|
+
task?.warn(TIMED_OUT_LABEL);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
task?.succeed(STOPPED_LABEL);
|
|
58
|
+
},
|
|
59
|
+
onForced: () => {
|
|
60
|
+
(0, shutdown_1.killProcessTree)();
|
|
61
|
+
task?.warn(FORCED_LABEL);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function createShutdownManager(policy) {
|
|
66
|
+
return new shutdown_1.ShutdownManager(shutdown_1.DEFAULT_SHUTDOWN_TIMEOUT_MS, process, createStopListener(policy.terminal));
|
|
67
|
+
}
|
|
68
|
+
async function shutdownModules(manager) {
|
|
69
|
+
const errors = [];
|
|
70
|
+
try {
|
|
71
|
+
await manager.stopAll();
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
errors.push(error);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
await manager.destroyAll();
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
errors.push(error);
|
|
81
|
+
}
|
|
82
|
+
if (errors.length > 0) {
|
|
83
|
+
throw new AggregateError(errors, "Shutdown failed");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function registerModuleShutdownHandler(shutdownManager, manager) {
|
|
87
|
+
const handler = () => shutdownModules(manager);
|
|
88
|
+
shutdownManager.register(handler, SHUTDOWN_PRIORITY_MODULES);
|
|
89
|
+
return handler;
|
|
90
|
+
}
|
|
91
|
+
function registerChildProcessCleanup(shutdownManager) {
|
|
92
|
+
shutdownManager.register(async () => {
|
|
93
|
+
const terminated = await (0, shutdown_1.terminateProcessTree)();
|
|
94
|
+
if (terminated.length > 0) {
|
|
95
|
+
Logger.Debug(`Terminated ${terminated.length} leftover child process(es): ${terminated.join(", ")}`);
|
|
96
|
+
}
|
|
97
|
+
}, SHUTDOWN_PRIORITY_CHILD_PROCESSES);
|
|
98
|
+
}
|
|
99
|
+
function claimProcess(shutdownManager, policy) {
|
|
100
|
+
if (policy.signals) {
|
|
101
|
+
registerChildProcessCleanup(shutdownManager);
|
|
102
|
+
}
|
|
103
|
+
shutdownManager.register(async () => {
|
|
104
|
+
releaseActiveShutdownManager(shutdownManager);
|
|
105
|
+
(0, runtime_bootstrap_1.releaseProcessShutdownManager)(shutdownManager);
|
|
106
|
+
}, SHUTDOWN_PRIORITY_CLEANUP);
|
|
107
|
+
if (policy.signals) {
|
|
108
|
+
setActiveShutdownManager(shutdownManager);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=process-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-claim.js","sourceRoot":"","sources":["../../../src/core/runtime/process-claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,74 +37,18 @@ exports.startProject = startProject;
|
|
|
37
37
|
exports.launchFromBuild = launchFromBuild;
|
|
38
38
|
const node_stream_1 = require("node:stream");
|
|
39
39
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
40
|
+
const process_claim_1 = require("./process-claim");
|
|
40
41
|
const runtime_bootstrap_1 = require("./runtime-bootstrap");
|
|
41
42
|
const config_paths_1 = require("../config/config-paths");
|
|
42
|
-
const shutdown_1 = require("../shutdown");
|
|
43
43
|
const runtime_policy_1 = require("./runtime-policy");
|
|
44
44
|
const launch_sequence_1 = require("./launch-sequence");
|
|
45
45
|
const Logger = new logging_1.Logging.Channel("loader");
|
|
46
46
|
const MAX_STREAM_LISTENERS = 20;
|
|
47
47
|
const INTERACTIVE_PROMPT = "> ";
|
|
48
|
-
const SHUTDOWN_PRIORITY_MODULES = 30;
|
|
49
48
|
const SHUTDOWN_PRIORITY_RESOURCES = 20;
|
|
50
|
-
const SHUTDOWN_PRIORITY_CHILD_PROCESSES = 15;
|
|
51
49
|
const SHUTDOWN_PRIORITY_CLEANUP = 10;
|
|
52
50
|
const UNSUPPORTED_ARTIFACT_OPTIONS_WARNING = "Watch and interactive modes are only available when launching from configuration; ignoring them for this build artifact launch.";
|
|
53
51
|
node_stream_1.Writable.prototype.setMaxListeners(MAX_STREAM_LISTENERS);
|
|
54
|
-
const activeShutdownManagers = [];
|
|
55
|
-
function setActiveShutdownManager(shutdownManager) {
|
|
56
|
-
releaseActiveShutdownManager(shutdownManager);
|
|
57
|
-
activeShutdownManagers.at(-1)?.removeSignalHandlers();
|
|
58
|
-
activeShutdownManagers.push(shutdownManager);
|
|
59
|
-
shutdownManager.setupSignalHandlers();
|
|
60
|
-
}
|
|
61
|
-
function releaseActiveShutdownManager(shutdownManager) {
|
|
62
|
-
const index = activeShutdownManagers.indexOf(shutdownManager);
|
|
63
|
-
if (index === -1) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const wasActive = index === activeShutdownManagers.length - 1;
|
|
67
|
-
activeShutdownManagers.splice(index, 1);
|
|
68
|
-
shutdownManager.removeSignalHandlers();
|
|
69
|
-
if (wasActive) {
|
|
70
|
-
activeShutdownManagers.at(-1)?.setupSignalHandlers();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
function registerModuleShutdownHandler(shutdownManager, manager) {
|
|
74
|
-
shutdownManager.register(() => shutdownModules(manager), SHUTDOWN_PRIORITY_MODULES);
|
|
75
|
-
}
|
|
76
|
-
async function shutdownModules(manager) {
|
|
77
|
-
const errors = [];
|
|
78
|
-
try {
|
|
79
|
-
await manager.stopAll();
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
errors.push(error);
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
await manager.destroyAll();
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
errors.push(error);
|
|
89
|
-
}
|
|
90
|
-
if (errors.length > 0) {
|
|
91
|
-
throw new AggregateError(errors, "Shutdown failed");
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function registerChildProcessCleanup(shutdownManager) {
|
|
95
|
-
shutdownManager.register(async () => {
|
|
96
|
-
const terminated = await (0, shutdown_1.terminateProcessTree)();
|
|
97
|
-
if (terminated.length > 0) {
|
|
98
|
-
Logger.Debug(`Terminated ${terminated.length} leftover child process(es): ${terminated.join(", ")}`);
|
|
99
|
-
}
|
|
100
|
-
}, SHUTDOWN_PRIORITY_CHILD_PROCESSES);
|
|
101
|
-
}
|
|
102
|
-
function registerShutdownCleanup(shutdownManager) {
|
|
103
|
-
shutdownManager.register(async () => {
|
|
104
|
-
releaseActiveShutdownManager(shutdownManager);
|
|
105
|
-
(0, runtime_bootstrap_1.releaseProcessShutdownManager)(shutdownManager);
|
|
106
|
-
}, SHUTDOWN_PRIORITY_CLEANUP);
|
|
107
|
-
}
|
|
108
52
|
function keepRunningThroughFailedReloads(shutdownManager) {
|
|
109
53
|
const withdraw = (0, runtime_bootstrap_1.tolerateInvalidatedModuleWork)();
|
|
110
54
|
shutdownManager.register(async () => {
|
|
@@ -151,11 +95,6 @@ async function setupWatching(manager, fs, projectFolder, env, options, shutdownM
|
|
|
151
95
|
}
|
|
152
96
|
async function setupPostLaunchFeatures(started, projectFolder, env, options) {
|
|
153
97
|
const { manager, shutdownManager } = started;
|
|
154
|
-
registerModuleShutdownHandler(shutdownManager, manager);
|
|
155
|
-
if (started.policy.signals) {
|
|
156
|
-
registerChildProcessCleanup(shutdownManager);
|
|
157
|
-
}
|
|
158
|
-
registerShutdownCleanup(shutdownManager);
|
|
159
98
|
if (!started.dev && (options.watch || options.interactive)) {
|
|
160
99
|
Logger.Warn(UNSUPPORTED_ARTIFACT_OPTIONS_WARNING);
|
|
161
100
|
}
|
|
@@ -170,9 +109,6 @@ async function setupPostLaunchFeatures(started, projectFolder, env, options) {
|
|
|
170
109
|
}, SHUTDOWN_PRIORITY_RESOURCES);
|
|
171
110
|
repl.start(INTERACTIVE_PROMPT);
|
|
172
111
|
}
|
|
173
|
-
if (started.policy.signals) {
|
|
174
|
-
setActiveShutdownManager(shutdownManager);
|
|
175
|
-
}
|
|
176
112
|
}
|
|
177
113
|
async function startProject(prepare, projectFolder, env, options, policy = runtime_policy_1.DEFAULT_RUNTIME_POLICY) {
|
|
178
114
|
const started = await (0, launch_sequence_1.runLaunchSequence)(prepare, projectFolder, env, options, policy);
|
|
@@ -191,7 +127,7 @@ async function restartProject(projectFolder, env, options) {
|
|
|
191
127
|
return;
|
|
192
128
|
isRestarting = true;
|
|
193
129
|
try {
|
|
194
|
-
const activeShutdownManager =
|
|
130
|
+
const activeShutdownManager = (0, process_claim_1.getActiveShutdownManager)();
|
|
195
131
|
if (activeShutdownManager) {
|
|
196
132
|
await activeShutdownManager.shutdown();
|
|
197
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-launch.js","sourceRoot":"","sources":["../../../src/core/runtime/project-launch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"project-launch.js","sourceRoot":"","sources":["../../../src/core/runtime/project-launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,6 @@ export interface ProcessTreeOptions {
|
|
|
8
8
|
gracePeriodMs?: number;
|
|
9
9
|
}
|
|
10
10
|
export declare function collectDescendants(rootPid: number, options?: ProcessTreeOptions): number[];
|
|
11
|
+
export declare function killProcessTree(rootPid?: number, options?: ProcessTreeOptions): number[];
|
|
11
12
|
export declare function terminateProcessTree(rootPid?: number, options?: ProcessTreeOptions): Promise<number[]>;
|
|
12
13
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.collectDescendants = collectDescendants;
|
|
4
|
+
exports.killProcessTree = killProcessTree;
|
|
4
5
|
exports.terminateProcessTree = terminateProcessTree;
|
|
5
6
|
const node_fs_1 = require("node:fs");
|
|
6
7
|
const PROC_PATH = "/proc";
|
|
@@ -92,6 +93,14 @@ function collectDescendants(rootPid, options = {}) {
|
|
|
92
93
|
}
|
|
93
94
|
return descendants;
|
|
94
95
|
}
|
|
96
|
+
function killProcessTree(rootPid = process.pid, options = {}) {
|
|
97
|
+
const kill = options.kill ?? defaultKill;
|
|
98
|
+
const descendants = collectDescendants(rootPid, options);
|
|
99
|
+
for (const pid of descendants) {
|
|
100
|
+
signal(pid, "SIGKILL", kill);
|
|
101
|
+
}
|
|
102
|
+
return descendants;
|
|
103
|
+
}
|
|
95
104
|
async function terminateProcessTree(rootPid = process.pid, options = {}) {
|
|
96
105
|
const descendants = collectDescendants(rootPid, options);
|
|
97
106
|
if (descendants.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../../../src/core/shutdown/process-tree.ts"],"names":[],"mappings":";;AAqFA,gDAqCC;AAeD,oDA4BC;
|
|
1
|
+
{"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../../../src/core/shutdown/process-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
export type ShutdownHandler = () => Promise<void> | void;
|
|
2
|
-
type ProcessSignal = "SIGINT" | "SIGTERM";
|
|
2
|
+
export type ProcessSignal = "SIGINT" | "SIGTERM";
|
|
3
3
|
export interface ProcessSignalSource {
|
|
4
4
|
on(signal: ProcessSignal, listener: () => void): unknown;
|
|
5
5
|
removeListener(signal: ProcessSignal, listener: () => void): unknown;
|
|
6
6
|
}
|
|
7
|
+
export interface SignalShutdownListener {
|
|
8
|
+
onStopping(signal: ProcessSignal): void;
|
|
9
|
+
onStopped(hasTimedOut: boolean): void;
|
|
10
|
+
onForced(signal: ProcessSignal): void;
|
|
11
|
+
}
|
|
7
12
|
export declare const DEFAULT_SHUTDOWN_TIMEOUT_MS = 10000;
|
|
13
|
+
export declare const SHUTDOWN_CLEANUP_TIMEOUT_MS = 3000;
|
|
8
14
|
export declare class ShutdownManager {
|
|
9
15
|
private timeoutMs;
|
|
10
16
|
private signalSource;
|
|
17
|
+
private signalListener;
|
|
11
18
|
private handlers;
|
|
12
19
|
private isShuttingDown;
|
|
13
20
|
private shutdownPromise?;
|
|
@@ -15,7 +22,7 @@ export declare class ShutdownManager {
|
|
|
15
22
|
private sigintHandler?;
|
|
16
23
|
private sigtermHandler?;
|
|
17
24
|
private seenSignals;
|
|
18
|
-
constructor(timeoutMs?: number, signalSource?: ProcessSignalSource);
|
|
25
|
+
constructor(timeoutMs?: number, signalSource?: ProcessSignalSource, signalListener?: SignalShutdownListener);
|
|
19
26
|
register(handler: ShutdownHandler, priority: number): void;
|
|
20
27
|
unregister(handler: ShutdownHandler): void;
|
|
21
28
|
shutdown(exitCode?: number): Promise<void>;
|
|
@@ -24,9 +31,10 @@ export declare class ShutdownManager {
|
|
|
24
31
|
removeSignalHandlers(): void;
|
|
25
32
|
private detachSignalHandler;
|
|
26
33
|
private handleSignal;
|
|
34
|
+
private handleSignalDuringShutdown;
|
|
27
35
|
private updateRequestedExitCode;
|
|
28
36
|
private executeShutdown;
|
|
29
|
-
private runHandlersWithTimeout;
|
|
30
37
|
private executeHandlers;
|
|
38
|
+
private runHandlersWithin;
|
|
39
|
+
private runHandler;
|
|
31
40
|
}
|
|
32
|
-
export {};
|