Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@testring/child-process

Package Overview
Dependencies
Maintainers
1
Versions
166
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@testring/child-process - npm Package Compare versions

Comparing version
0.7.6
to
0.8.0
+3
dist/fork.d.ts
import { IChildProcessForkOptions, IChildProcessFork } from '@testring/types';
export declare function fork(filePath: string, args?: Array<string>, options?: Partial<IChildProcessForkOptions>): Promise<IChildProcessFork>;
//# sourceMappingURL=fork.d.ts.map
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,wBAAwB,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AA+E5E,wBAAsB,IAAI,CACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM,EACxB,OAAO,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAChD,OAAO,CAAC,iBAAiB,CAAC,CAoC5B"}
export { spawn } from './spawn';
export { spawnWithPipes } from './spawn-with-pipes';
export { fork } from './fork';
export { isChildProcess } from './utils';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC"}
export declare function resolveBinary(name: string): string;
//# sourceMappingURL=resolve-binary.d.ts.map
{"version":3,"file":"resolve-binary.d.ts","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":"AAmCA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAalD"}
import * as childProcess from 'child_process';
export declare function spawnWithPipes(command: string, args?: Array<string>): childProcess.ChildProcess;
//# sourceMappingURL=spawn-with-pipes.d.ts.map
{"version":3,"file":"spawn-with-pipes.d.ts","sourceRoot":"","sources":["../src/spawn-with-pipes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,wBAAgB,cAAc,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM,GACzB,YAAY,CAAC,YAAY,CAY3B"}
import * as childProcess from 'child_process';
export declare function spawn(command: string, args?: Array<string>): childProcess.ChildProcess;
//# sourceMappingURL=spawn.d.ts.map
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,wBAAgB,KAAK,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM,GACzB,YAAY,CAAC,YAAY,CAM3B"}
export declare function isChildProcess(argv?: string[]): boolean;
//# sourceMappingURL=utils.d.ts.map
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAAM,EAAgB,GAAG,OAAO,CAEpE"}
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"noEmit": false,
"composite": true
},
"exclude": ["test"]
}
+66
-47
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fork = fork;
const path = require("path");
const process = require("process");
const path = __importStar(require("path"));
const node_process_1 = __importDefault(require("node:process"));
const utils_1 = require("@testring/utils");

@@ -20,3 +37,3 @@ const resolve_binary_1 = require("./resolve-binary");

const length = start - end;
return Array.from({ length }, (x, i) => i + start);
return Array.from({ length }, (_, i) => i + start);
}

@@ -30,3 +47,3 @@ const PREFERRED_DEBUG_PORTS = [

];
const IS_WIN = process.platform === 'win32';
const IS_WIN = node_process_1.default.platform === 'win32';
const EMPTY_PARAMETERS = [];

@@ -58,3 +75,3 @@ const REQUIRE_TS_NODE = ['-r', 'ts-node/register'];

case '.js':
return process.execPath;
return node_process_1.default.execPath;
case '.ts':

@@ -65,40 +82,42 @@ return (0, resolve_binary_1.resolveBinary)('ts-node');

? (0, resolve_binary_1.resolveBinary)('ts-node')
: process.execPath;
: node_process_1.default.execPath;
default:
return process.execPath;
return node_process_1.default.execPath;
}
}
const getForkOptions = (options) => (Object.assign(Object.assign({}, DEFAULT_FORK_OPTIONS), options));
function fork(filePath_1) {
return __awaiter(this, arguments, void 0, function* (filePath, args = [], options = {}) {
const mergedOptions = getForkOptions(options);
const childArg = `--testring-parent-pid=${process.pid}`;
const processArgs = [];
let debugPort = null;
if (mergedOptions.debug) {
debugPort = yield (0, utils_1.getAvailablePort)(mergedOptions.debugPortRange);
processArgs.push(`--inspect-brk=${debugPort}`);
}
let childProcess;
if (IS_WIN) {
childProcess = (0, spawn_1.spawn)('node', [
...processArgs,
...getAdditionalParameters(filePath),
filePath,
childArg,
...args,
]);
}
else {
childProcess = (0, spawn_1.spawn)(getExecutor(filePath), [
...processArgs,
filePath,
childArg,
...args,
]);
}
childProcess.debugPort = debugPort;
return childProcess;
});
const getForkOptions = (options) => ({
...DEFAULT_FORK_OPTIONS,
...options,
});
async function fork(filePath, args = [], options = {}) {
const mergedOptions = getForkOptions(options);
const childArg = `--testring-parent-pid=${node_process_1.default.pid}`;
const processArgs = [];
let debugPort = null;
if (mergedOptions.debug) {
debugPort = await (0, utils_1.getAvailablePort)(mergedOptions.debugPortRange);
processArgs.push(`--inspect-brk=${debugPort}`);
}
let childProcess;
if (IS_WIN) {
childProcess = (0, spawn_1.spawn)('node', [
...processArgs,
...getAdditionalParameters(filePath),
filePath,
childArg,
...args,
]);
}
else {
childProcess = (0, spawn_1.spawn)(getExecutor(filePath), [
...processArgs,
filePath,
childArg,
...args,
]);
}
const childProcessExtended = childProcess;
childProcessExtended.debugPort = debugPort;
return childProcessExtended;
}
//# sourceMappingURL=fork.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveBinary = resolveBinary;
const fs = require("fs");
const path = require("path");
const process = require("process");
const IS_WIN = process.platform === 'win32';
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const node_process_1 = __importDefault(require("node:process"));
const IS_WIN = node_process_1.default.platform === 'win32';
function findNodeModulesDir(modulePath) {

@@ -9,0 +35,0 @@ if (modulePath === '/') {

@@ -1,1 +0,1 @@

{"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":";;AAmCA,sCAaC;AAhDD,yBAAyB;AACzB,6BAA6B;AAC7B,mCAAmC;AAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAE5C,SAAS,kBAAkB,CAAC,UAAkB;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,GAAG;IACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IACzB,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,UAAU,GACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CACpB,WAAW,IAAI,uCAAuC,CACzD,CAAC;IACN,CAAC;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
{"version":3,"file":"resolve-binary.js","sourceRoot":"","sources":["../src/resolve-binary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,sCAaC;AAhDD,uCAAyB;AACzB,2CAA6B;AAC7B,gEAAmC;AAEnC,MAAM,MAAM,GAAG,sBAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAE5C,SAAS,kBAAkB,CAAC,UAAkB;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IACzB,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,UAAU,GACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CACpB,WAAW,IAAI,uCAAuC,CACzD,CAAC;IACN,CAAC;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.spawnWithPipes = spawnWithPipes;
const childProcess = require("child_process");
const process = require("process");
const childProcess = __importStar(require("child_process"));
const node_process_1 = __importDefault(require("node:process"));
function spawnWithPipes(command, args = []) {
const child = childProcess.spawn(command, args, {
stdio: ['pipe', 'pipe', 'pipe'], // Use pipes for proper control
cwd: process.cwd(),
cwd: node_process_1.default.cwd(),
detached: false, // Run attached to prevent orphan processes
windowsHide: true, // Hide the console window on Windows
});

@@ -12,0 +39,0 @@ // Ensure child does not keep the event loop active

@@ -1,1 +0,1 @@

{"version":3,"file":"spawn-with-pipes.js","sourceRoot":"","sources":["../src/spawn-with-pipes.ts"],"names":[],"mappings":";;AAGA,wCAcC;AAjBD,8CAA8C;AAC9C,mCAAmC;AAEnC,SAAgB,cAAc,CAC1B,OAAe,EACf,OAAsB,EAAE;IAExB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QAC5C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,+BAA+B;QAChE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,KAAK,EAAE,2CAA2C;KAC/D,CAAC,CAAC;IAEH,mDAAmD;IACnD,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,OAAO,KAAK,CAAC;AACjB,CAAC"}
{"version":3,"file":"spawn-with-pipes.js","sourceRoot":"","sources":["../src/spawn-with-pipes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wCAeC;AAlBD,4DAA8C;AAC9C,gEAAmC;AAEnC,SAAgB,cAAc,CAC1B,OAAe,EACf,OAAsB,EAAE;IAExB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QAC5C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,+BAA+B;QAChE,GAAG,EAAE,sBAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,KAAK,EAAE,2CAA2C;QAC5D,WAAW,EAAE,IAAI,EAAE,qCAAqC;KAC3D,CAAC,CAAC;IAEH,mDAAmD;IACnD,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,OAAO,KAAK,CAAC;AACjB,CAAC"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.spawn = spawn;
const childProcess = require("child_process");
const process = require("process");
const childProcess = __importStar(require("child_process"));
const node_process_1 = __importDefault(require("node:process"));
function spawn(command, args = []) {
return childProcess.spawn(command, args, {
stdio: [null, null, null, 'ipc'],
cwd: process.cwd(),
cwd: node_process_1.default.cwd(),
detached: true,

@@ -11,0 +37,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":";;AAGA,sBASC;AAZD,8CAA8C;AAC9C,mCAAmC;AAEnC,SAAgB,KAAK,CACjB,OAAe,EACf,OAAsB,EAAE;IAExB,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACrC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;AACP,CAAC"}
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sBASC;AAZD,4DAA8C;AAC9C,gEAAmC;AAEnC,SAAgB,KAAK,CACjB,OAAe,EACf,OAAsB,EAAE;IAExB,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACrC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAChC,GAAG,EAAE,sBAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;AACP,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isChildProcess = isChildProcess;
const process_1 = require("process");
const node_process_1 = require("node:process");
function checkArguments(argv) {
return (argv.findIndex((item) => item.startsWith('--testring-parent-pid=')) > -1);
}
const IS_PARENT_ARGV_PASSED = checkArguments(process_1.argv);
function isChildProcess(argv = process_1.argv) {
const IS_PARENT_ARGV_PASSED = checkArguments(node_process_1.argv);
function isChildProcess(argv = node_process_1.argv) {
return argv ? checkArguments(argv) : IS_PARENT_ARGV_PASSED;
}
//# sourceMappingURL=utils.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAUA,wCAEC;AAZD,qCAA4C;AAE5C,SAAS,cAAc,CAAC,IAAc;IAClC,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAC3E,CAAC;AACN,CAAC;AAED,MAAM,qBAAqB,GAAG,cAAc,CAAC,cAAW,CAAC,CAAC;AAE1D,SAAgB,cAAc,CAAC,OAAiB,cAAW;IACvD,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAC/D,CAAC"}
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAUA,wCAEC;AAZD,+CAAiD;AAEjD,SAAS,cAAc,CAAC,IAAc;IAClC,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAC3E,CAAC;AACN,CAAC;AAED,MAAM,qBAAqB,GAAG,cAAc,CAAC,mBAAW,CAAC,CAAC;AAE1D,SAAgB,cAAc,CAAC,OAAiB,mBAAW;IACvD,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAC/D,CAAC"}
{
"name": "@testring/child-process",
"version": "0.7.6",
"version": "0.8.0",
"main": "./dist/index.js",

@@ -11,4 +11,4 @@ "types": "./src/index.ts",

"dependencies": {
"@testring/types": "0.7.6",
"@testring/utils": "0.7.6"
"@testring/types": "0.8.0",
"@testring/utils": "0.8.0"
},

@@ -15,0 +15,0 @@ "author": "RingCentral",

import * as path from 'path';
import * as process from 'process';
import process from 'node:process';
import {getAvailablePort} from '@testring/utils';

@@ -7,7 +7,12 @@ import {IChildProcessForkOptions, IChildProcessFork} from '@testring/types';

import {spawn} from './spawn';
import {ChildProcess} from 'child_process';
interface ChildProcessExtension extends ChildProcess {
debugPort: number | null;
}
function getNumberRange(start: number, end: number): Array<number> {
const length = start - end;
return Array.from({length}, (x, i) => i + start);
return Array.from({length}, (_, i) => i + start);
}

@@ -23,3 +28,3 @@

const IS_WIN = process.platform === 'win32';
const EMPTY_PARAMETERS = [];
const EMPTY_PARAMETERS: Array<string> = [];
const REQUIRE_TS_NODE = ['-r', 'ts-node/register'];

@@ -97,3 +102,3 @@ const Module = require('module').Module;

let childProcess;
let childProcess: ChildProcess;
if (IS_WIN) {

@@ -116,5 +121,7 @@ childProcess = spawn('node', [

childProcess.debugPort = debugPort;
const childProcessExtended = childProcess as ChildProcessExtension;
return childProcess;
childProcessExtended.debugPort = debugPort;
return childProcessExtended;
}
import * as fs from 'fs';
import * as path from 'path';
import * as process from 'process';
import process from 'node:process';

@@ -19,3 +19,3 @@ const IS_WIN = process.platform === 'win32';

function windowsQuotes(str) {
function windowsQuotes(str: string): string {
if (!/ /.test(str)) {

@@ -22,0 +22,0 @@ return str;

import * as childProcess from 'child_process';
import * as process from 'process';
import process from 'node:process';

@@ -12,2 +12,3 @@ export function spawnWithPipes(

detached: false, // Run attached to prevent orphan processes
windowsHide: true, // Hide the console window on Windows
});

@@ -14,0 +15,0 @@

import * as childProcess from 'child_process';
import * as process from 'process';
import process from 'node:process';

@@ -4,0 +4,0 @@ export function spawn(

@@ -1,2 +0,2 @@

import {argv as processArgv} from 'process';
import {argv as processArgv} from 'node:process';

@@ -3,0 +3,0 @@ function checkArguments(argv: string[]) {