36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
|
/*---------------------------------------------------------------------------------------------
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
|
*--------------------------------------------------------------------------------------------*/
|
||
|
|
||
|
type RunFunction =
|
||
|
| ((debugSession: IDebugSession, context: Context) => IDisposable)
|
||
|
| ((debugSession: IDebugSession, context: Context) => Promise<IDisposable>);
|
||
|
|
||
|
interface IDebugSession {
|
||
|
name: string;
|
||
|
eval(expression: string): Promise<unknown>;
|
||
|
evalJs<T extends any[], TResult>(
|
||
|
bodyFn: (...args: T) => TResult,
|
||
|
...args: T
|
||
|
): Promise<TResult>;
|
||
|
}
|
||
|
|
||
|
interface Context {
|
||
|
vscode: typeof import('vscode');
|
||
|
}
|
||
|
|
||
|
interface IDisposable {
|
||
|
dispose(): void;
|
||
|
}
|
||
|
|
||
|
interface HotReloadConfig {
|
||
|
mode?: 'patch-prototype' | undefined;
|
||
|
}
|
||
|
|
||
|
interface GlobalThisAddition {
|
||
|
$hotReload_applyNewExports?(args: { oldExports: Record<string, unknown>; newSrc: string; config?: HotReloadConfig }): AcceptNewExportsFn | undefined;
|
||
|
}
|
||
|
|
||
|
type AcceptNewExportsFn = (newExports: Record<string, unknown>) => boolean;
|