@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
73 lines • 5.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NpmPlugin = void 0;
const promises_1 = require("fs/promises");
const fs_1 = require("fs");
const os_1 = require("os");
const path_1 = require("path");
const node_project_1 = require("./node-project");
class NpmPlugin {
application;
name = 'NPM package manager plugin';
ident = 'npm';
get packManager() {
return this;
}
constructor(application) {
this.application = application;
}
static initialize(initialize) {
if ((0, fs_1.existsSync)((0, path_1.join)(initialize.cwd, 'package-lock.json'))) {
return new NpmPlugin(initialize);
}
return null;
}
async pack(workspace, outputFolder) {
if (!(workspace instanceof node_project_1.NodeWorkspace)) {
return null;
}
if (workspace.private) {
return null;
}
let tmpDir;
try {
tmpDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), 'gitversion-npm'));
const result = await this.application.executor.exec(['npm', 'pack', '--pack-destination', tmpDir, '--json'], {
cwd: workspace.cwd,
});
const files = JSON.parse(result);
if (files.length == 1) {
if (files[0].filename) {
const outfile = (0, path_1.join)(tmpDir, files[0].filename);
if ((0, fs_1.existsSync)((0, path_1.join)(outfile))) {
await (0, promises_1.cp)(outfile, (0, path_1.join)(outputFolder, files[0].filename));
return files[0].filename;
}
}
}
throw new Error('Invalid npm output');
}
finally {
try {
if (tmpDir) {
await (0, promises_1.rm)(tmpDir, { recursive: true });
}
}
catch (_e) {
}
}
}
async publish(packedPackage, fileName, releaseTag, dryRun) {
if (dryRun) {
this.application.logger.reportDryrun(`Would be publishing ${packedPackage.packageName} using release tag ${releaseTag}`);
return;
}
else {
await this.application.executor.exec(['npm', 'publish', fileName, '--tag', releaseTag, '--access', 'public', '--verbose'], {
cwd: this.application.packFolder,
});
}
}
}
exports.NpmPlugin = NpmPlugin;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvZW1iZWRkZWQvbm9kZS9ucG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQThDO0FBQzlDLDJCQUFnQztBQUNoQywyQkFBNEI7QUFDNUIsK0JBQTRCO0FBTTVCLGlEQUErQztBQUUvQyxNQUFhLFNBQVM7SUFRUTtJQVA1QixJQUFJLEdBQUcsNEJBQTRCLENBQUM7SUFDcEMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQTRCLFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtJQUFJLENBQUM7SUFFL0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUE2QjtRQUM3QyxJQUFJLElBQUEsZUFBVSxFQUFDLElBQUEsV0FBSSxFQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFxQixFQUFFLFlBQW9CO1FBQ3BELElBQUksQ0FBQyxDQUFDLFNBQVMsWUFBWSw0QkFBYSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLE1BQTBCLENBQUM7UUFDL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLElBQUEsV0FBSSxFQUFDLElBQUEsV0FBTSxHQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzNHLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRzthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBSSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2hELElBQUksSUFBQSxlQUFVLEVBQUMsSUFBQSxXQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixNQUFNLElBQUEsYUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFBLFdBQUksRUFBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ3pELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQkFDM0IsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUM7Z0JBQ0gsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLElBQUEsYUFBRSxFQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQTRCLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQixFQUFFLE1BQWU7UUFDL0YsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsYUFBYSxDQUFDLFdBQVcsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDekgsT0FBTztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3pILEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhFRCw4QkFnRUMifQ==