/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IExtensionDescription, IExtensionManifest, ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { UriComponents, URI } from 'vs/base/common/uri'; export const IStaticExtensionsService = createDecorator('IStaticExtensionsService'); export interface IStaticExtensionsService { _serviceBrand: any; getExtensions(): Promise; } export class StaticExtensionsService implements IStaticExtensionsService { _serviceBrand: any; private readonly _descriptions: IExtensionDescription[] = []; constructor(staticExtensions: { packageJSON: IExtensionManifest, extensionLocation: UriComponents }[]) { this._descriptions = staticExtensions.map(data => { identifier: new ExtensionIdentifier(`${data.packageJSON.publisher}.${data.packageJSON.name}`), extensionLocation: URI.revive(data.extensionLocation), ...data.packageJSON, }); } async getExtensions(): Promise { return this._descriptions; } }