@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
30 lines (29 loc) • 1.13 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { createDecorator } from '../../instantiation/common/instantiation.mjs';
export const IExtensionSignatureVerificationService = createDecorator('IExtensionSignatureVerificationService');
export class ExtensionSignatureVerificationService {
moduleLoadingPromise;
vsceSign() {
if (!this.moduleLoadingPromise) {
this.moduleLoadingPromise = new Promise((resolve, reject) =>
require(['node-vsce-sign'], async (obj) => {
const instance = obj;
return resolve(instance);
}, reject),
);
}
return this.moduleLoadingPromise;
}
async verify(vsixFilePath, signatureArchiveFilePath) {
let module;
try {
module = await this.vsceSign();
} catch (error) {
return false;
}
return module.verify(vsixFilePath, signatureArchiveFilePath);
}
}