@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
110 lines (108 loc) • 3.76 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { SerializedError } from '@sussudio/base/common/errors.mjs';
import { Disposable, IDisposable } from '@sussudio/base/common/lifecycle.mjs';
import { IExtensionHostProcessOptions, IExtensionHostStarter } from '../common/extensionHostStarter.mjs';
import { Emitter, Event } from '@sussudio/base/common/event.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { ILifecycleMainService } from '../../lifecycle/electron-main/lifecycleMainService.mjs';
import { IWindowsMainService } from '../../windows/electron-main/windows.mjs';
export declare class ExtensionHostStarter implements IDisposable, IExtensionHostStarter {
private readonly _logService;
private readonly _windowsMainService;
_serviceBrand: undefined;
private static _lastId;
protected readonly _extHosts: Map<string, ExtensionHostProcess | UtilityExtensionHostProcess>;
private _shutdown;
constructor(
_logService: ILogService,
lifecycleMainService: ILifecycleMainService,
_windowsMainService: IWindowsMainService,
);
dispose(): void;
private _getExtHost;
onDynamicStdout(id: string): Event<string>;
onDynamicStderr(id: string): Event<string>;
onDynamicMessage(id: string): Event<any>;
onDynamicError(id: string): Event<{
error: SerializedError;
}>;
onDynamicExit(id: string): Event<{
code: number;
signal: string;
}>;
canUseUtilityProcess(): Promise<boolean>;
createExtensionHost(useUtilityProcess: boolean): Promise<{
id: string;
}>;
start(id: string, opts: IExtensionHostProcessOptions): Promise<void>;
enableInspectPort(id: string): Promise<boolean>;
kill(id: string): Promise<void>;
_killAllNow(): Promise<void>;
_waitForAllExit(maxWaitTimeMs: number): Promise<void>;
}
declare class ExtensionHostProcess extends Disposable {
readonly id: string;
private readonly _logService;
readonly _onStdout: Emitter<string>;
readonly onStdout: Event<string>;
readonly _onStderr: Emitter<string>;
readonly onStderr: Event<string>;
readonly _onMessage: Emitter<any>;
readonly onMessage: Event<any>;
readonly _onError: Emitter<{
error: SerializedError;
}>;
readonly onError: Event<{
error: SerializedError;
}>;
readonly _onExit: Emitter<{
pid: number;
code: number;
signal: string;
}>;
readonly onExit: Event<{
pid: number;
code: number;
signal: string;
}>;
private _process;
private _hasExited;
constructor(id: string, _logService: ILogService);
start(opts: IExtensionHostProcessOptions): void;
enableInspectPort(): boolean;
kill(): void;
waitForExit(maxWaitTimeMs: number): Promise<void>;
}
declare class UtilityExtensionHostProcess extends Disposable {
readonly id: string;
private readonly _logService;
private readonly _windowsMainService;
readonly onError: Event<any>;
readonly _onStdout: Emitter<string>;
readonly onStdout: Event<string>;
readonly _onStderr: Emitter<string>;
readonly onStderr: Event<string>;
readonly _onMessage: Emitter<any>;
readonly onMessage: Event<any>;
readonly _onExit: Emitter<{
pid: number;
code: number;
signal: string;
}>;
readonly onExit: Event<{
pid: number;
code: number;
signal: string;
}>;
private _process;
private _hasExited;
constructor(id: string, _logService: ILogService, _windowsMainService: IWindowsMainService);
start(opts: IExtensionHostProcessOptions): void;
enableInspectPort(): boolean;
kill(): void;
waitForExit(maxWaitTimeMs: number): Promise<void>;
}
export {};