semantic-release-config-gitmoji
Version:
a gitmoji commit style presets for semantic-release
96 lines (94 loc) • 4.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.createConfig = void 0;
var _commitAnalyzer = _interopRequireDefault(require("./plugins/commitAnalyzer"));
var _git = _interopRequireDefault(require("./plugins/git"));
var _github = _interopRequireDefault(require("./plugins/github"));
var _npm = _interopRequireDefault(require("./plugins/npm"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
var createConfig = function createConfig(options) {
var opts = _objectSpread({
changelogTitle: '# Changelog',
changelogFile: 'CHANGELOG.md',
enableNPM: true,
enableGithub: true
}, options);
// npm config
var npmPublish = opts.npmPublish,
pkgRoot = opts.pkgRoot,
tarballDir = opts.tarballDir,
monorepo = opts.monorepo;
var npmConfig = (0, _npm.default)({
npmPublish: npmPublish,
pkgRoot: pkgRoot,
tarballDir: tarballDir,
monorepo: monorepo
});
// github config
var githubUrl = opts.githubUrl,
proxy = opts.proxy,
releasedLabels = opts.releasedLabels,
failTitle = opts.failTitle,
githubApiPathPrefix = opts.githubApiPathPrefix,
labels = opts.labels,
failComment = opts.failComment,
assignees = opts.assignees,
addReleases = opts.addReleases,
githubAssets = opts.githubAssets;
var githubConfig = (0, _github.default)({
githubUrl: githubUrl,
proxy: proxy,
releasedLabels: releasedLabels,
failTitle: failTitle,
githubApiPathPrefix: githubApiPathPrefix,
labels: labels,
failComment: failComment,
assignees: assignees,
addReleases: addReleases,
githubAssets: githubAssets
});
var plugins = [/* 负责解析 commit */
(0, _commitAnalyzer.default)(opts.releaseRules), /* 此处生成 github-release 的日志 */
['@semantic-release/release-notes-generator', {
config: 'conventional-changelog-gitmoji-config'
}], /* 此处会调用上一个插件生成的新增日志,然后合并到原有日志中 */
['@semantic-release/changelog', {
changelogFile: opts.changelogFile,
changelogTitle: opts.changelogTitle
}], /* 自动更新版本号 如果没有 private ,会作为 npm 模块进行发布 */
opts.enableNPM ? npmConfig : '', /* 将生成结果发布到 Github */
opts.enableGithub ? githubConfig : '', /* 推送代码回到 Git */
(0, _git.default)(options)];
return {
plugins: plugins.filter(function (p) {
return !!p;
}),
branches: ['master', 'main', {
name: 'rc-*',
prerelease: 'rc',
channel: 'rc'
}, {
name: 'rc',
prerelease: true
}, {
name: 'alpha',
prerelease: 'alpha',
channel: 'alpha'
}, {
name: 'beta',
prerelease: 'beta',
channel: 'beta'
}]
};
};
exports.createConfig = createConfig;
var _default = createConfig;
exports.default = _default;