extensions/typescript-language-features/src/tsServer/serverProcess.electron.ts/ChildServerProcess/fork
class ChildServerProcess:	public static fork(
		tsServerPath: string,
		args: readonly string[],
		kind: TsServerProcessKind,
		configuration: TypeScriptServiceConfiguration,
		versionManager: TypeScriptVersionManager,
	): ChildServerProcess {
		if (!fs.existsSync(tsServerPath)) {
			vscode.window.showWarningMessage(localize('noServerFound', 'The path {0} doesn\'t point to a valid tsserver install. Falling back to bundled TypeScript version.', tsServerPath));
			versionManager.reset();
			tsServerPath = versionManager.currentVersion.tsServerPath;
		}

		const childProcess = child_process.fork(tsServerPath, args, {
			silent: true,
			cwd: undefined,
			env: this.generatePatchedEnv(process.env, tsServerPath),
			execArgv: this.getExecArgv(kind, configuration),
		});

		return new ChildServerProcess(childProcess);
	}