forked from dotnet/vscode-csharp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspawnNode.ts
31 lines (25 loc) · 1.03 KB
/
spawnNode.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { spawnSync, SpawnSyncOptions } from "child_process";
import { nodePath, rootPath } from "./projectPaths";
export default async function spawnNode(args?: string[], options?: SpawnSyncOptions) {
if (!options) {
options = {
env: {}
};
}
const optionsWithFullEnvironment: SpawnSyncOptions = {
cwd: rootPath,
...options,
env: {
...process.env,
...options.env
},
stdio: "inherit"
};
console.log(`starting ${nodePath} ${args ? args.join(' ') : ''}`);
const buffer = spawnSync(nodePath, args, optionsWithFullEnvironment);
return { code: buffer.status, signal: buffer.signal };
}