unbag
Version:
一个专门用来开发npm工具的包
98 lines (97 loc) • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.tag = exports.ReleaseTagConfigDefault = void 0;
var _log = require("./../../utils/log.cjs");
var _index = require("./../../utils/message/index.cjs");
var _execa = require("execa");
var _utils = require("./utils.cjs");
const ReleaseTagConfigDefault = exports.ReleaseTagConfigDefault = {
genPrefix: ({
finalUserConfig
}) => {
const {
release: {
scope
}
} = finalUserConfig;
if (scope?.name) {
return `${scope.name}@`;
}
return "v";
},
messageFormat: ({
finalUserConfig,
changelogRes,
bumpRes
}) => {
const {
release
} = finalUserConfig;
const {
scope
} = release;
return `release${scope?.name ? `(${scope.name})` : ``}: ${bumpRes?.version}`;
}
};
const tag = async params => {
const {
finalUserConfig,
bumpRes,
changelogRes
} = params;
const log = (0, _log.useLog)({
finalUserConfig
});
const message = (0, _index.useMessage)({
locale: finalUserConfig.locale
});
log.info(message.release.tag.processing());
const {
release: {
dry,
tag: {
force,
messageFormat,
disable
}
}
} = finalUserConfig;
const prefix = await (0, _utils.useTagPrefix)({
finalUserConfig
});
log.info(message.release.tag.prefix({
prefix
}));
const tagName = `${prefix}${bumpRes.version}`;
log.info(message.release.tag.name({
name: tagName
}));
const tagMessage = await messageFormat({
finalUserConfig,
changelogRes,
bumpRes
});
log.info(message.release.tag.message({
message: tagMessage
}));
let _disable = disable;
if (dry) {
_disable = true;
log.warn(message.release.dry.tag.disable());
}
if (_disable) {
log.warn(message.releaseTagDisable());
return;
}
if (force) {
log.warn(message.release.tag.force());
}
await (0, _execa.$)`git tag -a ${tagName} ${force ? ["-f"] : []} -m ${tagMessage}`;
log.info(message.releaseTagAddSuccess({
tagMessage,
tagName
}));
};
exports.tag = tag;