mirror of
https://github.com/coder/code-server.git
synced 2026-05-06 04:25:19 +02:00
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { IDisposable } from 'vs/base/common/lifecycle';
|
|
import { URI } from 'vs/base/common/uri';
|
|
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
|
|
|
export const IProtocolMainService = createDecorator<IProtocolMainService>('protocolMainService');
|
|
|
|
export interface IIPCObjectUrl<T> extends IDisposable {
|
|
|
|
/**
|
|
* A `URI` that a renderer can use to retrieve the
|
|
* object via `ipcRenderer.invoke(resource.toString())`
|
|
*/
|
|
resource: URI;
|
|
|
|
/**
|
|
* Allows to update the value of the object after it
|
|
* has been created.
|
|
*
|
|
* @param obj the object to make accessible to the
|
|
* renderer.
|
|
*/
|
|
update(obj: T): void;
|
|
}
|
|
|
|
export interface IProtocolMainService {
|
|
|
|
readonly _serviceBrand: undefined;
|
|
|
|
/**
|
|
* Allows to make an object accessible to a renderer
|
|
* via `ipcRenderer.invoke(resource.toString())`.
|
|
*
|
|
* @param obj the (optional) object to make accessible to the
|
|
* renderer. Can be updated later via the `IObjectUrl#update`
|
|
* method too.
|
|
*/
|
|
createIPCObjectUrl<T>(obj?: T): IIPCObjectUrl<T>;
|
|
|
|
/**
|
|
* Adds a `URI` as root to the list of allowed
|
|
* resources for file access.
|
|
*
|
|
* @param root the URI to allow for file access
|
|
*/
|
|
addValidFileRoot(root: URI): IDisposable;
|
|
}
|