1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.callInChild = void 0;
|
4 | const child_process_1 = require("child_process");
|
5 | const url_1 = require("url");
|
6 | const util_1 = require("../util");
|
7 | const argv_payload_1 = require("./argv-payload");
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | function callInChild(state) {
|
15 | if (!(0, util_1.versionGteLt)(process.versions.node, '12.17.0')) {
|
16 | throw new Error('`ts-node-esm` and `ts-node --esm` require node version 12.17.0 or newer.');
|
17 | }
|
18 | const child = (0, child_process_1.spawn)(process.execPath, [
|
19 | '--require',
|
20 | require.resolve('./child-require.js'),
|
21 | '--loader',
|
22 |
|
23 | (0, url_1.pathToFileURL)(require.resolve('../../child-loader.mjs')).toString(),
|
24 | require.resolve('./child-entrypoint.js'),
|
25 | `${argv_payload_1.argPrefix}${(0, argv_payload_1.compress)(state)}`,
|
26 | ...state.parseArgvResult.restArgs,
|
27 | ], {
|
28 | stdio: 'inherit',
|
29 | argv0: process.argv0,
|
30 | });
|
31 | child.on('error', (error) => {
|
32 | console.error(error);
|
33 | process.exit(1);
|
34 | });
|
35 | child.on('exit', (code) => {
|
36 | child.removeAllListeners();
|
37 | process.off('SIGINT', sendSignalToChild);
|
38 | process.off('SIGTERM', sendSignalToChild);
|
39 | process.exitCode = code === null ? 1 : code;
|
40 | });
|
41 |
|
42 | process.on('SIGINT', sendSignalToChild);
|
43 | process.on('SIGTERM', sendSignalToChild);
|
44 | function sendSignalToChild(signal) {
|
45 | process.kill(child.pid, signal);
|
46 | }
|
47 | }
|
48 | exports.callInChild = callInChild;
|
49 |
|
\ | No newline at end of file |