@azure-tools/extension
Version:
Yarn-Based extension aquisition (for Azure Open Source Projects)
42 lines • 1.35 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Package = void 0;
/**
* A Package is a representation of a npm package.
*
* Once installed, a Package is an Extension
*/
class Package {
/* @internal */ constructor(resolvedInfo,
/* @internal */ packageMetadata,
/* @internal */ extensionManager) {
this.resolvedInfo = resolvedInfo;
this.packageMetadata = packageMetadata;
this.extensionManager = extensionManager;
}
get id() {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return this.packageMetadata._id;
}
get name() {
return this.packageMetadata.name;
}
get version() {
return this.packageMetadata.version;
}
get source() {
// work around bug that npm doesn't programatically handle exact versions.
if (this.resolvedInfo.type === "version" && this.resolvedInfo.registry === true) {
return this.packageMetadata._spec + "*";
}
return this.packageMetadata._spec;
}
async install(force = false) {
return this.extensionManager.installPackage(this, force);
}
get allVersions() {
return this.extensionManager.getPackageVersions(this.name);
}
}
exports.Package = Package;
//# sourceMappingURL=package.js.map