Path: blob/main/extensions/copilot/src/util/vs/base/common/process.ts
13405 views
//!!! DO NOT modify, this file was COPIED from 'microsoft/vscode'12/*---------------------------------------------------------------------------------------------3* Copyright (c) Microsoft Corporation. All rights reserved.4* Licensed under the MIT License. See License.txt in the project root for license information.5*--------------------------------------------------------------------------------------------*/67import { INodeProcess, isMacintosh, isWindows } from './platform';89let safeProcess: Omit<INodeProcess, 'arch'> & { arch: string | undefined };10declare const process: INodeProcess;1112// Native sandbox environment13const vscodeGlobal = (globalThis as { vscode?: { process?: INodeProcess } }).vscode;14if (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {15const sandboxProcess: INodeProcess = vscodeGlobal.process;16safeProcess = {17get platform() { return sandboxProcess.platform; },18get arch() { return sandboxProcess.arch; },19get env() { return sandboxProcess.env; },20cwd() { return sandboxProcess.cwd(); }21};22}2324// Native node.js environment25else if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') {26safeProcess = {27get platform() { return process.platform; },28get arch() { return process.arch; },29get env() { return process.env; },30cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }31};32}3334// Web environment35else {36safeProcess = {3738// Supported39get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },40get arch() { return undefined; /* arch is undefined in web */ },4142// Unsupported43get env() { return {}; },44cwd() { return '/'; }45};46}4748/**49* Provides safe access to the `cwd` property in node.js, sandboxed or web50* environments.51*52* Note: in web, this property is hardcoded to be `/`.53*54* @skipMangle55*/56export const cwd = safeProcess.cwd;5758/**59* Provides safe access to the `env` property in node.js, sandboxed or web60* environments.61*62* Note: in web, this property is hardcoded to be `{}`.63*/64export const env = safeProcess.env;6566/**67* Provides safe access to the `platform` property in node.js, sandboxed or web68* environments.69*/70export const platform = safeProcess.platform;7172/**73* Provides safe access to the `arch` method in node.js, sandboxed or web74* environments.75* Note: `arch` is `undefined` in web76*/77export const arch = safeProcess.arch;787980