5
0
Fork 0
mirror of https://github.com/cycjimmy/semantic-release-action.git synced 2025-11-14 05:53:46 +00:00
semantic-release-action/src/handleOptions.js
heiko.rothe 4a51b9fada
feat: handle versioned extends inputs correctly
In some cases, you may want to provide a version for the config you want
to extend. This change will now pass the correct format for such a case
down to semantic-release.
2022-08-01 12:30:51 +02:00

79 lines
1.9 KiB
JavaScript

const core = require('@actions/core');
const stringToJson = require('@cycjimmy/awesome-js-funcs/cjs/typeConversion/stringToJson.cjs').default;
const inputs = require('./inputs.json');
/**
* Handle Branches Option
* @returns {{}|{branch: string}}
*/
exports.handleBranchesOption = () => {
const branchesOption = {};
const branches = core.getInput(inputs.branches);
const branch = core.getInput(inputs.branch);
core.debug(`branches input: ${branches}`);
core.debug(`branch input: ${branch}`);
const semanticVersion = require('semantic-release/package.json').version;
const semanticMajorVersion = Number(semanticVersion.replace(/\..+/g, ''));
core.debug(`semanticMajorVersion: ${semanticMajorVersion}`);
// older than v16
if (semanticMajorVersion < 16) {
if (!branch) {
return branchesOption;
}
branchesOption.branch = branch;
return branchesOption;
}
// above v16
const strNeedConvertToJson = branches || branch || '';
if (!strNeedConvertToJson) {
return branchesOption;
}
const jsonOrStr = stringToJson('' + strNeedConvertToJson);
core.debug(`Converted branches attribute: ${JSON.stringify(jsonOrStr)}`);
branchesOption.branches = jsonOrStr;
return branchesOption;
};
/**
* Handle DryRun Option
* @returns {{}|{dryRun: boolean}}
*/
exports.handleDryRunOption = () => {
const dryRun = core.getInput(inputs.dry_run);
switch (dryRun) {
case 'true':
return {dryRun: true};
case 'false':
return {dryRun: false};
default:
return {};
}
};
/**
* Handle Extends Option
* @returns {{}|{extends: Array}|{extends: String}}
*/
exports.handleExtends = () => {
const extend = core.getInput(inputs.extends);
if (extend) {
const extendModuleNames = extend.split(/\r?\n/)
.map((name) => name.replace(/(?<!^)@.+/, ''))
return {
extends: extendModuleNames
};
} else {
return {};
}
};