UNPKG

@salesforce/plugin-release-management

Version:
56 lines 2.3 kB
"use strict"; 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