@salesforce/plugin-release-management
Version:
A plugin for preparing and publishing npm packages
56 lines • 2.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOwnerAndRepo = exports.maxVersionBumpFlag = exports.meetsVersionCriteria = void 0;
/*
* Copyright (c) 2020, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
const fs = require("fs");
const semver_1 = require("semver");
const command_1 = require("@salesforce/command");
const core_1 = require("@salesforce/core");
const kit_1 = require("@salesforce/kit");
const ts_types_1 = require("@salesforce/ts-types");
core_1.Messages.importMessagesDirectory(__dirname);
const messages = core_1.Messages.load('@salesforce/plugin-release-management', 'dependabot.consolidate', ['maxVersionBump']);
const inclusionMap = {
major: ['major', 'minor', 'patch'],
minor: ['minor', 'patch'],
patch: ['patch'],
};
const meetsVersionCriteria = (title, maxVersionBump) => {
const versionsRegex = /[0-9]+.[0-9]+.[0-9]+/g;
const [from, to] = title.match(versionsRegex);
const bumpType = (0, semver_1.diff)(from, to);
return inclusionMap[maxVersionBump].includes(bumpType);
};
exports.meetsVersionCriteria = meetsVersionCriteria;
exports.maxVersionBumpFlag = command_1.flags.enum({
description: messages.getMessage('maxVersionBump'),
char: 'm',
options: ['major', 'minor', 'patch'],
default: 'minor',
required: true,
});
const getOwnerAndRepo = async (ownerFlag, repoFlag) => {
if (ownerFlag && repoFlag) {
return { owner: ownerFlag, repo: repoFlag };
}
// read it from package.json
const fileData = await fs.promises.readFile('package.json', 'utf8');
const pkgJson = (0, kit_1.parseJson)(fileData, 'package.json', false);
if (pkgJson.repository && (0, ts_types_1.isString)(pkgJson.repository)) {
const [owner, repo] = pkgJson.repository?.split('/');
return { owner, repo };
}
else {
return {
owner: (0, ts_types_1.ensureString)(ownerFlag, 'You must specify an owner'),
repo: (0, ts_types_1.ensureString)(repoFlag, 'You must specify a repository'),
};
}
};
exports.getOwnerAndRepo = getOwnerAndRepo;
//# sourceMappingURL=dependabot.js.map