UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

52 lines (50 loc) 2.26 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IStringDictionary } from '@sussudio/base/common/collections.mjs'; import { Emitter, Event } from '@sussudio/base/common/event.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; export type PolicyName = string; export type PolicyValue = string | number; export type PolicyDefinition = { type: 'string' | 'number'; }; export declare const IPolicyService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IPolicyService>; export interface IPolicyService { readonly _serviceBrand: undefined; readonly onDidChange: Event<readonly PolicyName[]>; updatePolicyDefinitions( policyDefinitions: IStringDictionary<PolicyDefinition>, ): Promise<IStringDictionary<PolicyValue>>; getPolicyValue(name: PolicyName): PolicyValue | undefined; serialize(): | IStringDictionary<{ definition: PolicyDefinition; value: PolicyValue; }> | undefined; } export declare abstract class AbstractPolicyService extends Disposable implements IPolicyService { readonly _serviceBrand: undefined; protected policyDefinitions: IStringDictionary<PolicyDefinition>; protected policies: Map<string, PolicyValue>; protected readonly _onDidChange: Emitter<readonly string[]>; readonly onDidChange: Event<readonly string[]>; updatePolicyDefinitions( policyDefinitions: IStringDictionary<PolicyDefinition>, ): Promise<IStringDictionary<PolicyValue>>; getPolicyValue(name: PolicyName): PolicyValue | undefined; serialize(): IStringDictionary<{ definition: PolicyDefinition; value: PolicyValue; }>; protected abstract _updatePolicyDefinitions(policyDefinitions: IStringDictionary<PolicyDefinition>): Promise<void>; } export declare class NullPolicyService implements IPolicyService { readonly _serviceBrand: undefined; readonly onDidChange: Event<any>; updatePolicyDefinitions(): Promise<{}>; getPolicyValue(): undefined; serialize(): undefined; }