UNPKG

unbag

Version:

一个专门用来开发npm工具的包

125 lines (124 loc) 5.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.read = void 0; var _commander = require("commander"); var _index = require("../commands/transform/index.cjs"); var _index2 = require("../commands/parallel/index.cjs"); var _wait = require("../commands/parallel/wait.cjs"); var _config = require("./config.cjs"); var _index3 = require("../commands/release/index.cjs"); var _index4 = require("../commands/commit/index.cjs"); var _path = require("./path.cjs"); var _nodePath = _interopRequireDefault(require("node:path")); var _lint = require("./../commands/commit/lint.cjs"); var _userConfig = require("./../core/user-config.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class CustomCliCommand extends _commander.Command { addOptions(options) { for (const option of options) { this.addOption(option); } return this; } } const getCommonOptions = () => { const options = [new _commander.Option("-c,--config <string>", "\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84"), new _commander.Option("-r,--root <string>", "\u6839\u8DEF\u5F84"), new _commander.Option("-l,--local <string>", "\u672C\u5730\u5316\u8BED\u8A00")]; return options; }; const resolveCliUserConfig = async options => { const { config, root, overrides, locale } = options; const defaultConfig = (0, _config.useDefaultConfig)(); const absoluteRoot = new _path.AbsolutePath({ content: _nodePath.default.resolve(root || defaultConfig.root) }); const userConfig = await (0, _config.resolveUserConfig)({ root: absoluteRoot, filePath: config, locale: locale || defaultConfig.locale }); let mergedConfig = (0, _config.mergeDefaultConfig)(userConfig); mergedConfig = (0, _config.mergeConfig)(mergedConfig, { root: absoluteRoot.content }); mergedConfig = (0, _config.mergeConfig)(mergedConfig, { ...overrides }); const freezedConfig = (0, _config.deepFreezeConfig)(mergedConfig); return freezedConfig; }; const read = () => { const program = new CustomCliCommand(); program.name("unbag").description("unbag CLI").version("0.8.0"); program.addCommand(new CustomCliCommand().name("transform").description("\u8F6C\u6362\u6587\u4EF6").addOptions(getCommonOptions()).option("-w,--watch", "\u542F\u7528\u89C2\u5BDF\u6A21\u5F0F").action(async options => { const userConfig = await (0, _userConfig.resolveUserConfigFromCli)({ cliOptions: options, overrides: { transform: { watch: options.watch } } }); const cmd = new _index.TransformCommand(userConfig); await cmd.run(); })).addCommand(new CustomCliCommand().name("commit").description("\u63D0\u4EA4\u6587\u4EF6").addOptions(getCommonOptions()).action(async options => { const userConfig = await (0, _userConfig.resolveUserConfigFromCli)({ cliOptions: options }); const cmd = new _index4.CommitCommand(userConfig); await cmd.run(); }).addCommand(new CustomCliCommand().name("lint").description("\u6821\u9A8C\u63D0\u4EA4\u4FE1\u606F").addOptions(getCommonOptions()).option("-m,--message <string>", "\u4FE1\u606F").action(async options => { const { message } = options; const userConfig = await (0, _userConfig.resolveUserConfigFromCli)({ cliOptions: options }); const cmd = new _lint.CommitLintCommand(userConfig); await cmd.run(message); }))).addCommand(new CustomCliCommand().name("release").description("release").addOptions(getCommonOptions()).option("-d,--dry", "\u542F\u7528\u8BD5\u8FD0\u884C\u6A21\u5F0F").action(async options => { const userConfig = await (0, _userConfig.resolveUserConfigFromCli)({ cliOptions: options, overrides: { release: { dry: options.dry } } }); const cmd = new _index3.ReleaseCommand(userConfig); await cmd.run(); })).addCommand(new CustomCliCommand().name("clean").action(() => { console.log("clean"); }).addCommand(new CustomCliCommand().name("cleansss").action(() => { console.log("cleansss"); }))).addCommand(new CustomCliCommand().name("parallel").description("\u8FD0\u884C\u591A\u4E2Anpm script").option("-c,--config <string>", "\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84").addOptions(getCommonOptions()).action(async options => { const cliUserConfig = await resolveCliUserConfig(options); const finalConfig = (0, _config.mergeConfig)(cliUserConfig, {}); await (0, _index2.parallel)(finalConfig); })).addCommand(new CustomCliCommand().name(_wait.WaitCmdName).description("parallel\u547D\u4EE4\u5229\u7528\u6B64\u547D\u4EE4\u6765\u8FBE\u5230wait\u529F\u80FD").option("-n,--name <string>", "\u7B49\u5F85\u7684\u547D\u4EE4\u540D\u79F0").option("-f,--absoluteFilePath <string>", "\u8981\u8F6E\u8BE2\u68C0\u67E5\u7684\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84").option("-tg,--tag <string>", "\u7B49\u5F85\u7684\u51FD\u6570\u8FD0\u884C\u6807\u5FD7").option("-td,--tempDir <string>", "\u4E34\u65F6\u6587\u4EF6\u5939").option("-i,--interval <string>", "\u68C0\u6D4B\u95F4\u9694").option("-tm,--timeout <string>", "\u8D85\u65F6\u65F6\u95F4").action(async options => { const { name = "", absoluteFilePath = "" } = options; let checkResult = void 0; if (absoluteFilePath && name) { checkResult = await (0, _wait.checkWaitFile)({ name, absoluteFilePath }); } if (checkResult?.content.result) { process.exit(0); } else { process.exit(1); } })); program.parse(); }; exports.read = read;