mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-19 01:25:36 -05:00
35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* 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>('IStaticExtensionsService');
|
|
|
|
export interface IStaticExtensionsService {
|
|
_serviceBrand: any;
|
|
getExtensions(): Promise<IExtensionDescription[]>;
|
|
}
|
|
|
|
export class StaticExtensionsService implements IStaticExtensionsService {
|
|
|
|
_serviceBrand: any;
|
|
|
|
private readonly _descriptions: IExtensionDescription[] = [];
|
|
|
|
constructor(staticExtensions: { packageJSON: IExtensionManifest, extensionLocation: UriComponents }[]) {
|
|
this._descriptions = staticExtensions.map(data => <IExtensionDescription>{
|
|
identifier: new ExtensionIdentifier(`${data.packageJSON.publisher}.${data.packageJSON.name}`),
|
|
extensionLocation: URI.revive(data.extensionLocation),
|
|
...data.packageJSON,
|
|
});
|
|
}
|
|
|
|
async getExtensions(): Promise<IExtensionDescription[]> {
|
|
return this._descriptions;
|
|
}
|
|
}
|