UNPKG

@sussudio/platform

Version:

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

68 lines (66 loc) 2.47 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { SyncDescriptor0 } from './descriptors.mjs'; import { Graph } from './graph.mjs'; import { GetLeadingNonServiceArgs, IInstantiationService, ServiceIdentifier, ServicesAccessor, } from './instantiation.mjs'; import { ServiceCollection } from './serviceCollection.mjs'; export declare class InstantiationService implements IInstantiationService { private readonly _services; private readonly _strict; private readonly _parent?; private readonly _enableTracing; readonly _serviceBrand: undefined; readonly _globalGraph?: Graph<string>; private _globalGraphImplicitDependency?; constructor( _services?: ServiceCollection, _strict?: boolean, _parent?: InstantiationService | undefined, _enableTracing?: boolean, ); createChild(services: ServiceCollection): IInstantiationService; invokeFunction<R, TS extends any[] = []>(fn: (accessor: ServicesAccessor, ...args: TS) => R, ...args: TS): R; createInstance<T>(descriptor: SyncDescriptor0<T>): T; createInstance<Ctor extends new (...args: any[]) => any, R extends InstanceType<Ctor>>( ctor: Ctor, ...args: GetLeadingNonServiceArgs<ConstructorParameters<Ctor>> ): R; private _createInstance; private _setServiceInstance; private _getServiceInstanceOrDescriptor; protected _getOrCreateServiceInstance<T>(id: ServiceIdentifier<T>, _trace: Trace): T; private readonly _activeInstantiations; private _safeCreateAndCacheServiceInstance; private _createAndCacheServiceInstance; private _createServiceInstanceWithOwner; private _createServiceInstance; private _throwIfStrict; } declare const enum TraceType { None = 0, Creation = 1, Invocation = 2, Branch = 3, } export declare class Trace { readonly type: TraceType; readonly name: string | null; static all: Set<string>; private static readonly _None; static traceInvocation(_enableTracing: boolean, ctor: any): Trace; static traceCreation(_enableTracing: boolean, ctor: any): Trace; private static _totals; private readonly _start; private readonly _dep; private constructor(); branch(id: ServiceIdentifier<any>, first: boolean): Trace; stop(): void; } export {};