beesbuild
Version:
构建工具链
52 lines (51 loc) • 3.11 kB
JavaScript
import { Argument, Command, Option } from "commander";
import * as scripts from "../scripts/index.mjs";
import { booleanParser } from "../boolean-parser.mjs";
import * as variables from "../variables.mjs";
import { handleOptions, init } from "./utils.mjs";
const publish = (program) => {
if (!(program instanceof Command)) {
program = init(variables).end();
}
program.command("publish").description("\u4E00\u5065\u81EA\u52A8\u53D1\u5305\u5DE5\u5177").addArgument(
new Argument(
"[increment]",
'\u9012\u589E "major", "minor", "patch", \u6216 "pre*" \u7248\u672C\uFF1B\u6216\u6307\u5B9A\u7248\u672C [\u9ED8\u8BA4: "patch"]'
).default("none").choices(variables.VERSION_STEPS)
).addOption(
new Option(
"-i, --increment <increment>",
'\u9012\u589E "major", "minor", "patch", \u6216 "pre*" \u7248\u672C\uFF1B\u6216\u6307\u5B9A\u7248\u672C'
).default("none").choices(variables.VERSION_STEPS)
).addOption(
new Option("--access <access>", "\u544A\u8BC9\u6CE8\u518C\u4E2D\u5FC3\u53D1\u5E03\u7684\u5305\u5E94\u8BE5\u662F\u516C\u5F00\u7684\u8FD8\u662F\u53D7\u9650\u5236\u7684\u3002").default("").choices(["public", "restricted"])
).option(
"--pre-release-id, --preReleaseId <preReleaseId>",
`\u521B\u5EFA\u9884\u53D1\u5E03\uFF1A\u60A8\u60F3\u8981\u63D0\u4F9B\u7684\u8F6F\u4EF6\u7248\u672C\uFF0C\u540C\u65F6 \u5B83\u8FD8\u6CA1\u6709\u5728\u7A33\u5B9A\u7684Semver\u8303\u56F4\u5185\u3002\u901A\u5E38\uFF0C\u201Calpha\u201D\u3001\u201Cbeta\u201D\u548C\u201Crc\u201D\uFF08\u5019\u9009\u7248\u672C\uFF09\u7528\u4F5C \u9884\u53D1\u5E03`
).option(
"--no-git-checks <gitChecks>",
"\u4E0D\u8981\u68C0\u67E5\u5F53\u524D\u5206\u652F\u662F\u5426\u662F\u60A8\u7684\u53D1\u5E03\u5206\u652F\u3001\u5E72\u51C0\u4E14\u6700\u65B0\u7684\u8FDC\u7A0B\u5206\u652F\u3002"
).option("-s, --no-silent <silent>", "\u9759\u9ED8\u663E\u793A\u811A\u672C\u8F93\u51FA").option("--test <test>", "\u6A21\u62DF\u53D1\u5E03").option("--no-build <build>", "\u53D1\u5E03\u524D\u4E0D\u6267\u884CBuild\u811A\u672C").option("-b, --release-branch, --releaseBranch <releaseBranch>", "\u53D1\u5E03Git\u5206\u652F").option("-e, --excludes [...name]", "\u6392\u9664\u4E0D\u53D1\u5E03\u7684\u5305\u5217\u8868", []).option("--auto-git-tag <auto-git-tag>", "\u53D1\u5E03\u6210\u529F\u540E\u6DFB\u52A0Git tag").option("--dist-tag <value>", "dist-tag").action(async (increment, options) => {
var _a;
const { all, force, silent, test, includeDescendants, build, gitChecks } = options;
options.increment = (_a = [options.increment, increment].find((value) => variables.ALL_RELEASE_TYPES.includes(value))) != null ? _a : "";
const opts = handleOptions(
program,
{
...options,
gitChecks: booleanParser(gitChecks),
all: booleanParser(all),
silent: booleanParser(silent),
build: booleanParser(build),
test: booleanParser(test),
force: booleanParser(force),
includeDescendants: booleanParser(includeDescendants)
}
);
await scripts.publish(opts);
});
return program;
};
export {
publish
};