@testring/child-process
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"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,CAmD5B"} |
+28
-13
@@ -99,17 +99,32 @@ "use strict"; | ||
| if (IS_WIN) { | ||
| childProcess = (0, spawn_1.spawn)('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| childProcess = mergedOptions.debug | ||
| ? (0, spawn_1.spawnDebug)('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]) | ||
| : (0, spawn_1.spawn)('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| } | ||
| else { | ||
| childProcess = (0, spawn_1.spawn)(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| childProcess = mergedOptions.debug | ||
| ? (0, spawn_1.spawnDebug)(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]) | ||
| : (0, spawn_1.spawn)(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| } | ||
@@ -116,0 +131,0 @@ const childProcessExtended = childProcess; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFA,oBAwCC;AA1HD,2CAA6B;AAC7B,gEAAmC;AACnC,2CAAiD;AAEjD,qDAA+C;AAC/C,mCAA8B;AAO9B,SAAS,cAAc,CAAC,KAAa,EAAE,GAAW;IAC9C,MAAM,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC;IAE3B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,qBAAqB,GAAkB;IACzC,yBAAyB;IACzB,IAAI;IACJ,IAAI;IACJ,kCAAkC;IAClC,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,GAAG,sBAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC5C,MAAM,gBAAgB,GAAkB,EAAE,CAAC;AAC3C,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAExC,MAAM,oBAAoB,GAA6B;IACnD,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,qBAAqB;CACxC,CAAC;AAEF,SAAS,uBAAuB,CAAC,QAAgB;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,KAAK;YACN,OAAO,gBAAgB,CAAC;QAE5B,KAAK,KAAK;YACN,OAAO,eAAe,CAAC;QAE3B,KAAK,EAAE;YACH,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,gBAAgB,CAAC;QAE3B;YACI,OAAO,gBAAgB,CAAC;IAChC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzC,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,KAAK;YACN,OAAO,sBAAO,CAAC,QAAQ,CAAC;QAE5B,KAAK,KAAK;YACN,OAAO,IAAA,8BAAa,EAAC,SAAS,CAAC,CAAC;QAEpC,KAAK,EAAE;YACH,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,IAAA,8BAAa,EAAC,SAAS,CAAC;gBAC1B,CAAC,CAAC,sBAAO,CAAC,QAAQ,CAAC;QAE3B;YACI,OAAO,sBAAO,CAAC,QAAQ,CAAC;IAChC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,CACnB,OAA0C,EAClB,EAAE,CAAC,CAAC;IAC5B,GAAG,oBAAoB;IACvB,GAAG,OAAO;CACb,CAAC,CAAC;AAEI,KAAK,UAAU,IAAI,CACtB,QAAgB,EAChB,OAAsB,EAAE,EACxB,UAA6C,EAAE;IAE/C,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,yBAAyB,sBAAO,CAAC,GAAG,EAAE,CAAC;IAExD,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,SAAS,GAAG,MAAM,IAAA,wBAAgB,EAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEjE,WAAW,CAAC,IAAI,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,YAA0B,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC;QACT,YAAY,GAAG,IAAA,aAAK,EAAC,MAAM,EAAE;YACzB,GAAG,WAAW;YACd,GAAG,uBAAuB,CAAC,QAAQ,CAAC;YACpC,QAAQ;YACR,QAAQ;YACR,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,YAAY,GAAG,IAAA,aAAK,EAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YACxC,GAAG,WAAW;YACd,QAAQ;YACR,QAAQ;YACR,GAAG,IAAI;SACV,CAAC,CAAC;IACP,CAAC;IAED,MAAM,oBAAoB,GAAG,YAAqC,CAAC;IAEnE,oBAAoB,CAAC,SAAS,GAAG,SAAS,CAAC;IAE3C,OAAO,oBAAoB,CAAC;AAChC,CAAC"} | ||
| {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"} |
+1
-0
| export { spawn } from './spawn'; | ||
| export { spawnDebug } from './spawn'; | ||
| export { spawnWithPipes } from './spawn-with-pipes'; | ||
@@ -3,0 +4,0 @@ export { fork } from './fork'; |
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC"} |
+3
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.isChildProcess = exports.fork = exports.spawnWithPipes = exports.spawn = void 0; | ||
| exports.isChildProcess = exports.fork = exports.spawnWithPipes = exports.spawnDebug = exports.spawn = void 0; | ||
| var spawn_1 = require("./spawn"); | ||
| Object.defineProperty(exports, "spawn", { enumerable: true, get: function () { return spawn_1.spawn; } }); | ||
| var spawn_2 = require("./spawn"); | ||
| Object.defineProperty(exports, "spawnDebug", { enumerable: true, get: function () { return spawn_2.spawnDebug; } }); | ||
| var spawn_with_pipes_1 = require("./spawn-with-pipes"); | ||
@@ -7,0 +9,0 @@ Object.defineProperty(exports, "spawnWithPipes", { enumerable: true, get: function () { return spawn_with_pipes_1.spawnWithPipes; } }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,uDAAkD;AAA1C,kHAAA,cAAc,OAAA;AACtB,+BAA4B;AAApB,4FAAA,IAAI,OAAA;AACZ,iCAAuC;AAA/B,uGAAA,cAAc,OAAA"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAAtB,8FAAA,KAAK,OAAA;AACb,iCAAmC;AAA3B,mGAAA,UAAU,OAAA;AAClB,uDAAkD;AAA1C,kHAAA,cAAc,OAAA;AACtB,+BAA4B;AAApB,4FAAA,IAAI,OAAA;AACZ,iCAAuC;AAA/B,uGAAA,cAAc,OAAA"} |
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"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,CAU3B"} |
@@ -33,3 +33,5 @@ "use strict"; | ||
| function spawnWithPipes(command, args = []) { | ||
| const child = childProcess.spawn(command, args, { | ||
| // Note: child.unref() removed to prevent orphaned processes | ||
| // Node.js will now wait for child process to exit before main process exits | ||
| return childProcess.spawn(command, args, { | ||
| stdio: ['pipe', 'pipe', 'pipe'], // Use pipes for proper control | ||
@@ -40,6 +42,3 @@ cwd: node_process_1.default.cwd(), | ||
| }); | ||
| // Ensure child does not keep the event loop active | ||
| child.unref(); | ||
| return child; | ||
| } | ||
| //# sourceMappingURL=spawn-with-pipes.js.map |
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"version":3,"file":"spawn-with-pipes.js","sourceRoot":"","sources":["../src/spawn-with-pipes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wCAaC;AAhBD,4DAA8C;AAC9C,gEAAmC;AAEnC,SAAgB,cAAc,CAC1B,OAAe,EACf,OAAsB,EAAE;IAExB,4DAA4D;IAC5D,4EAA4E;IAE5E,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACrC,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;AACP,CAAC"} |
+1
-0
| import * as childProcess from 'child_process'; | ||
| export declare function spawn(command: string, args?: Array<string>): childProcess.ChildProcess; | ||
| export declare function spawnDebug(command: string, args?: Array<string>): childProcess.ChildProcess; | ||
| //# sourceMappingURL=spawn.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"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;AAED,wBAAgB,UAAU,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM,GACzB,YAAY,CAAC,YAAY,CAM3B"} |
+9
-1
@@ -30,2 +30,3 @@ "use strict"; | ||
| exports.spawn = spawn; | ||
| exports.spawnDebug = spawnDebug; | ||
| const childProcess = __importStar(require("child_process")); | ||
@@ -37,5 +38,12 @@ const node_process_1 = __importDefault(require("node:process")); | ||
| cwd: node_process_1.default.cwd(), | ||
| detached: true, | ||
| detached: true, // Keep detached: true for normal operation | ||
| }); | ||
| } | ||
| function spawnDebug(command, args = []) { | ||
| return childProcess.spawn(command, args, { | ||
| stdio: [null, null, null, 'ipc'], | ||
| cwd: node_process_1.default.cwd(), | ||
| detached: false, // Not detached in debug mode to prevent orphaned processes | ||
| }); | ||
| } | ||
| //# sourceMappingURL=spawn.js.map |
@@ -1,1 +0,1 @@ | ||
| {"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"} | ||
| {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sBASC;AAED,gCASC;AAvBD,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,EAAE,2CAA2C;KAC9D,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,UAAU,CACtB,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,KAAK,EAAE,2DAA2D;KAC/E,CAAC,CAAC;AACP,CAAC"} |
+3
-3
| { | ||
| "name": "@testring/child-process", | ||
| "version": "0.8.5", | ||
| "version": "0.8.6", | ||
| "main": "./dist/index.js", | ||
@@ -11,4 +11,4 @@ "types": "./src/index.ts", | ||
| "dependencies": { | ||
| "@testring/types": "0.8.5", | ||
| "@testring/utils": "0.8.5" | ||
| "@testring/types": "0.8.6", | ||
| "@testring/utils": "0.8.6" | ||
| }, | ||
@@ -15,0 +15,0 @@ "scripts": { |
+29
-14
@@ -6,3 +6,3 @@ import * as path from 'path'; | ||
| import {resolveBinary} from './resolve-binary'; | ||
| import {spawn} from './spawn'; | ||
| import {spawn, spawnDebug} from './spawn'; | ||
| import {ChildProcess} from 'child_process'; | ||
@@ -103,16 +103,31 @@ | ||
| if (IS_WIN) { | ||
| childProcess = spawn('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| childProcess = mergedOptions.debug | ||
| ? spawnDebug('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]) | ||
| : spawn('node', [ | ||
| ...processArgs, | ||
| ...getAdditionalParameters(filePath), | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| } else { | ||
| childProcess = spawn(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| childProcess = mergedOptions.debug | ||
| ? spawnDebug(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]) | ||
| : spawn(getExecutor(filePath), [ | ||
| ...processArgs, | ||
| filePath, | ||
| childArg, | ||
| ...args, | ||
| ]); | ||
| } | ||
@@ -119,0 +134,0 @@ |
+1
-0
| export {spawn} from './spawn'; | ||
| export {spawnDebug} from './spawn'; | ||
| export {spawnWithPipes} from './spawn-with-pipes'; | ||
| export {fork} from './fork'; | ||
| export {isChildProcess} from './utils'; |
@@ -8,3 +8,6 @@ import * as childProcess from 'child_process'; | ||
| ): childProcess.ChildProcess { | ||
| const child = childProcess.spawn(command, args, { | ||
| // Note: child.unref() removed to prevent orphaned processes | ||
| // Node.js will now wait for child process to exit before main process exits | ||
| return childProcess.spawn(command, args, { | ||
| stdio: ['pipe', 'pipe', 'pipe'], // Use pipes for proper control | ||
@@ -15,7 +18,2 @@ cwd: process.cwd(), | ||
| }); | ||
| // Ensure child does not keep the event loop active | ||
| child.unref(); | ||
| return child; | ||
| } |
+12
-1
@@ -11,4 +11,15 @@ import * as childProcess from 'child_process'; | ||
| cwd: process.cwd(), | ||
| detached: true, | ||
| detached: true, // Keep detached: true for normal operation | ||
| }); | ||
| } | ||
| export function spawnDebug( | ||
| command: string, | ||
| args: Array<string> = [], | ||
| ): childProcess.ChildProcess { | ||
| return childProcess.spawn(command, args, { | ||
| stdio: [null, null, null, 'ipc'], | ||
| cwd: process.cwd(), | ||
| detached: false, // Not detached in debug mode to prevent orphaned processes | ||
| }); | ||
| } |
29404
11.04%544
10.34%+ Added
+ Added
- Removed
- Removed
Updated
Updated