@tikkhun/cli-core 0.0.8 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/CommandManager.js +6 -6
  2. package/dist/CommandManager.js.map +1 -1
  3. package/dist/CommandManager.mjs +4 -4
  4. package/dist/CommandManager.mjs.map +1 -1
  5. package/dist/OptionHandler.d.mts +1 -0
  6. package/dist/OptionHandler.d.ts +1 -0
  7. package/dist/OptionHandler.js +1 -1
  8. package/dist/OptionHandler.js.map +1 -1
  9. package/dist/OptionHandler.mjs +1 -1
  10. package/dist/OptionHandler.mjs.map +1 -1
  11. package/dist/command/ArgsCommand.d.mts +6 -0
  12. package/dist/command/ArgsCommand.d.ts +6 -0
  13. package/dist/command/ArgsCommand.js +4 -4
  14. package/dist/command/ArgsCommand.js.map +1 -1
  15. package/dist/command/ArgsCommand.mjs +3 -3
  16. package/dist/command/ArgsCommand.mjs.map +1 -1
  17. package/dist/command/ConfigCommand.d.mts +2 -1
  18. package/dist/command/ConfigCommand.d.ts +2 -1
  19. package/dist/command/ConfigCommand.js +5 -4
  20. package/dist/command/ConfigCommand.js.map +1 -1
  21. package/dist/command/ConfigCommand.mjs +5 -4
  22. package/dist/command/ConfigCommand.mjs.map +1 -1
  23. package/dist/command/PromptsCommand.d.mts +6 -0
  24. package/dist/command/PromptsCommand.d.ts +6 -0
  25. package/dist/command/PromptsCommand.js +4 -4
  26. package/dist/command/PromptsCommand.js.map +1 -1
  27. package/dist/command/PromptsCommand.mjs +3 -3
  28. package/dist/command/PromptsCommand.mjs.map +1 -1
  29. package/dist/command/index.js +8 -7
  30. package/dist/command/index.js.map +1 -1
  31. package/dist/command/index.mjs +5 -4
  32. package/dist/command/index.mjs.map +1 -1
  33. package/dist/command/utils.d.mts +2 -0
  34. package/dist/command/utils.d.ts +2 -0
  35. package/dist/command/utils.js +4 -0
  36. package/dist/command/utils.js.map +1 -0
  37. package/dist/command/utils.mjs +3 -0
  38. package/dist/command/utils.mjs.map +1 -0
  39. package/dist/index.js +9 -9
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +3 -3
  42. package/dist/index.mjs.map +1 -1
  43. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var V = require('lodash');
3
+ var D = require('lodash');
4
4
  var utilsCore = require('@tikkhun/utils-core');
5
5
  var commander = require('commander');
6
6
  var prompts = require('@inquirer/prompts');
@@ -10,15 +10,15 @@ var path = require('path');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
- var V__default = /*#__PURE__*/_interopDefault(V);
13
+ var D__default = /*#__PURE__*/_interopDefault(D);
14
14
 
15
15
  /**
16
16
  @tikkhun/cli-core
17
17
  */
18
- var E=Object.defineProperty,P=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var j=(i,t,o)=>t in i?E(i,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):i[t]=o,g=(i,t)=>{for(var o in t||(t={}))w.call(t,o)&&j(i,o,t[o]);if(h)for(var o of h(t))R.call(t,o)&&j(i,o,t[o]);return i},f=(i,t)=>P(i,L(t));var u=(i,t)=>{var o={};for(var r in i)w.call(i,r)&&t.indexOf(r)<0&&(o[r]=i[r]);if(i!=null&&h)for(var r of h(i))t.indexOf(r)<0&&R.call(i,r)&&(o[r]=i[r]);return o};var m=(i,t,o)=>new Promise((r,n)=>{var s=e=>{try{d(o.next(e));}catch(x){n(x);}},p=e=>{try{d(o.throw(e));}catch(x){n(x);}},d=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,p);d((o=o.apply(i,t)).next());});var{merge:v}=V__default.default,y=class y{constructor(t){this.options=v({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var a=y;var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},H=["true",!0,"1",1];var c=class i{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===l.array?t.split(","):o===l.object?JSON.parse(t):o===l.keyValueArray?t?t.split(",").map(r=>{if(!r)return;let[n,s]=r.split("=");return {key:n,value:s}}).filter(r=>r):[]:o===l.number?Number(t):o===l.boolean?!!H.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([n,s])=>{let p=o[n];typeof s=="object"?r[n]=i.toType(s,p):r[n]=i.getTypeValue(s,p);}),r}toType(t){return i.toType(t,this.schema)}static toString(t){let o={};return Object.entries(t).forEach(([r,n])=>{o[r]=i.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?i.toString(t):""+t}};var{get:Y}=V__default.default,O=class extends a{init(){this.program=this.options.program||commander.createCommand(),this.addOptions();}addOptions(){let t=c.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),r=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes});o.forEach(({key:n,value:s})=>{if(this.options.excludeOptions.includes(n))return;let p=r[n];this.program.option(`--${n} <${p}>`,Y(this.options.optionTitles,n),s);});}addAction(t){this.program.action(o=>{let r=utilsCore.unflatJson({delimiter:".",data:o}),n=c.toType(r,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var T=class extends a{init(){let t=utilsCore.jsonToList({delimiter:".",json:this.options.defaultOptions}),o=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes}),r=utilsCore.flatJson({delimiter:".",data:this.options.optionTitles});this.optionHandler=()=>m(this,null,function*(){let n={};for(let{key:s,value:p}of t){let d=o[s];if(!d)continue;let e=r[s];e&&(n[s]=(yield this.getActionResult({type:d,message:e,default:p}))||p);}return n}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return m(this,null,function*(){let n=t,r=u(n,["type"]);return yield prompts.input(r)})}actionHandler(t){return m(this,null,function*(){let o=yield this.optionHandler(),r=utilsCore.unflatJson({delimiter:".",data:o}),n=c.toType(r,this.options.optionTypes);t(n);})}start(t){return m(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var C=class extends a{init(){var t;this.program=((t=this.options.program)==null?void 0:t.command("config"))||commander.createCommand(),this.addOptions();}addOptions(){var t;(t=this.program)==null||t.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",path.join(process.cwd(),"release.json"));}addAction(t){this.program.action(r=>m(this,[r],function*({config:o=""}){let n;if(o.endsWith(".js")?n=yield import(o):o.endsWith(".json")&&(n=yield fsExtra.readJson(o)),!n)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(n);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var B=(r=>(r.prompts="prompts",r.args="args",r.config="config",r))(B||{}),A=class A{constructor(t){this.options=V.merge({},A.DEFAULT_OPTIONS,t),this.logger=new logger.Logger(this.options.name),this.welcome(),this.init();}welcome(){this.logger.log("Welcome!"),this.logger.log("version: "+this.options.version),this.logger.log("description: "+this.options.description);}init(){let r=this.options,{types:t}=r,o=u(r,["types"]);if(!t||!t.length)throw new Error("types is undefined");t.length===1&&t[0]==="prompts"||(this.program=commander.createCommand(),t.includes("args")&&(this.argsCommand=new O(f(g({},o),{program:this.program}))),t.includes("config")&&(this.configCommand=new C(f(g({},o),{program:this.program}))),t.includes("prompts")&&(this.promptsCommand=new T(f(g({},o),{program:this.program}))));}start(t){var o,r,n,s;(o=this.promptsCommand)==null||o.start(t),(r=this.configCommand)==null||r.start(t),(n=this.argsCommand)==null||n.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},a.DEFAULT_OPTIONS),{types:["args"],name:""});var b=A,Ft=b;
18
+ var L=Object.defineProperty,V=Object.defineProperties;var v=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var S=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var w=(r,t,o)=>t in r?L(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o,g=(r,t)=>{for(var o in t||(t={}))S.call(t,o)&&w(r,o,t[o]);if(h)for(var o of h(t))P.call(t,o)&&w(r,o,t[o]);return r},f=(r,t)=>V(r,v(t));var u=(r,t)=>{var o={};for(var i in r)S.call(r,i)&&t.indexOf(i)<0&&(o[i]=r[i]);if(r!=null&&h)for(var i of h(r))t.indexOf(i)<0&&P.call(r,i)&&(o[i]=r[i]);return o};var p=(r,t,o)=>new Promise((i,n)=>{var s=c=>{try{b(o.next(c));}catch(x){n(x);}},a=c=>{try{b(o.throw(c));}catch(x){n(x);}},b=c=>c.done?i(c.value):Promise.resolve(c.value).then(s,a);b((o=o.apply(r,t)).next());});var{merge:F}=D__default.default,y=class y{constructor(t){this.options=F({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var e=y;var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},H=["true",!0,"1",1];var m=class r{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===l.array?t.split(","):o===l.object?JSON.parse(t):o===l.keyValueArray?t?t.split(",").map(i=>{if(!i)return;let[n,s]=i.split("=");return {key:n,value:s}}).filter(i=>i):[]:o===l.number?Number(t):o===l.boolean?!!H.includes(t):t}static toType(t,o){let i={};return Object.entries(t).forEach(([n,s])=>{let a=o[n];typeof s=="object"?i[n]=r.toType(s,a):i[n]=r.getTypeValue(s,a);}),i}toType(t){return r.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([i,n])=>{o[i]=r.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(i=>`${i.key}=${i.value}`).toString():t.toString()}return typeof t=="object"?r.toString(t):""+t}};var{get:k}=D__default.default,O=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),i=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes});return o.filter(({key:n})=>!this.options.excludeOptions.includes(n)).map(({key:n,value:s})=>({key:n,value:s,type:i[n]}))}init(){this.program=this.options.program||commander.createCommand();let t=this.getOptions();this.addOptions(t);}addOptions(t){t.forEach(({key:o,value:i,type:n})=>{this.program.option(`--${o} <${n}>`,k(this.options.optionTitles,o),i);});}addAction(t){this.program.action(o=>{let i=utilsCore.unflatJson({delimiter:".",data:o}),n=m.toType(i,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var T=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),i=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes}),n=utilsCore.flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:s,value:a})=>({key:s,defaultValue:a,type:i[s],title:n[s]}))}init(){let t=this.getOptions();this.optionHandler=()=>p(this,null,function*(){let o={};for(let{key:i,defaultValue:n,type:s,title:a}of t)s&&a&&(o[i]=(yield this.getActionResult({type:s,message:a,default:n}))||n);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return p(this,null,function*(){let n=t,i=u(n,["type"]);return yield prompts.input(i)})}actionHandler(t){return p(this,null,function*(){let o=yield this.optionHandler(),i=utilsCore.unflatJson({delimiter:".",data:o}),n=m.toType(i,this.options.optionTypes);t(n);})}start(t){return p(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var d=class d extends e{init(){var t,o;this.program=((t=this.options.program)==null?void 0:t.command("config"))||commander.createCommand(),(o=this.program)==null||o.command("init").option("-p --path <string>","\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84",d.defaultConfigPath).action(i=>p(this,null,function*(){let{path:n}=i;n||(n=d.defaultConfigPath),logger.Logger.log("[\u5F00\u59CB] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+n),yield fsExtra.writeJson(n,this.options.defaultOptions,{spaces:2}),logger.Logger.log("[\u5B8C\u6BD5] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+n);})),this.addOptions();}addOptions(){var t;(t=this.program)==null||t.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",d.defaultConfigPath);}addAction(t){this.program.action(i=>p(this,[i],function*({config:o=""}){let n;if(o.endsWith(".js")?n=yield import(o):o.endsWith(".json")&&(n=yield fsExtra.readJson(o)),!n)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(n);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};d.defaultConfigPath=path.join(process.cwd(),"release.json");var C=d;var _=(i=>(i.prompts="prompts",i.args="args",i.config="config",i))(_||{}),A=class A{constructor(t){this.options=D.merge({},A.DEFAULT_OPTIONS,t),this.logger=new logger.Logger(this.options.name),this.welcome(),this.init();}welcome(){this.logger.log("Welcome!"),this.logger.log("version: "+this.options.version),this.logger.log("description: "+this.options.description);}init(){let i=this.options,{types:t}=i,o=u(i,["types"]);if(!t||!t.length)throw new Error("types is undefined");t.length===1&&t[0]==="prompts"||(this.program=commander.createCommand(),t.includes("args")&&(this.argsCommand=new O(f(g({},o),{program:this.program}))),t.includes("config")&&(this.configCommand=new C(f(g({},o),{program:this.program}))),t.includes("prompts")&&(this.promptsCommand=new T(f(g({},o),{program:this.program}))));}start(t){var o,i,n,s;(o=this.promptsCommand)==null||o.start(t),(i=this.configCommand)==null||i.start(t),(n=this.argsCommand)==null||n.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},e.DEFAULT_OPTIONS),{types:["args"],name:""});var j=A,It=j;
19
19
 
20
- exports.Cli = Ft;
21
- exports.CommandManager = b;
22
- exports.CommandTypes = B;
20
+ exports.Cli = It;
21
+ exports.CommandManager = j;
22
+ exports.CommandTypes = _;
23
23
  //# sourceMappingURL=CommandManager.js.map
24
24
  //# sourceMappingURL=CommandManager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/CommandManager.ts","../lib/command/command.interface.ts","../lib/OptionHandler.ts","../lib/command/ArgsCommand.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","get","ArgsCommand","createCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","action","jsonOptions","unflatJson","typedOptions","PromptsCommand","defaultOptionList","flattedOptionType","flattedOptionTitle","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","ConfigCommand","join","_0","config","readJson","CommandTypes","_CommandManager","Logger","types","__spreadProps","__spreadValues","_b","_c","_d","CommandManager","Cli"],"mappings":"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","file":"CommandManager.js","sourcesContent":["import { merge } from 'lodash';\nimport { AbstractCommand, Action, CommandOptions } from './command/command.interface';\nimport { ArgsCommand } from './command/ArgsCommand';\nimport { PromptsCommand } from './command/PromptsCommand';\nimport { Logger } from '@tikkhun/logger';\nimport { ConfigCommand } from './command/ConfigCommand';\nimport { Command, createCommand } from 'commander';\nexport enum CommandTypes {\n 'prompts' = 'prompts',\n 'args' = 'args',\n 'config' = 'config',\n}\nexport interface CommandManagerOptions extends CommandOptions {\n name: string;\n types: CommandTypes[];\n}\nexport class CommandManager {\n static readonly DEFAULT_OPTIONS: CommandManagerOptions = {\n ...AbstractCommand.DEFAULT_OPTIONS,\n types: [CommandTypes.args],\n name: '',\n };\n logger: Logger;\n options: CommandManagerOptions;\n argsCommand?: ArgsCommand;\n promptsCommand?: PromptsCommand;\n configCommand?: ConfigCommand;\n constructor(options: Partial<CommandManagerOptions>) {\n this.options = merge({}, CommandManager.DEFAULT_OPTIONS, options);\n this.logger = new Logger(this.options.name);\n this.welcome();\n this.init();\n }\n welcome() {\n this.logger.log('Welcome!');\n this.logger.log('version: ' + this.options.version);\n this.logger.log('description: ' + this.options.description);\n }\n program: Command | undefined;\n init() {\n const { types, ...options } = this.options;\n if (!types || !types.length) {\n throw new Error('types is undefined');\n }\n // 特殊处理\n if (types.length === 1 && types[0] === CommandTypes.prompts) {\n return;\n }\n this.program = createCommand();\n if (types.includes(CommandTypes.args)) {\n this.argsCommand = new ArgsCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.config)) {\n this.configCommand = new ConfigCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.prompts)) {\n this.promptsCommand = new PromptsCommand({ ...options, program: this.program });\n }\n }\n start(action: Action) {\n this.promptsCommand?.start(action);\n this.configCommand?.start(action);\n this.argsCommand?.start(action);\n // 当没有的时候就不会parse了\n this.program?.parse(process.argv);\n }\n}\n// alias\nexport const Cli = CommandManager;\n","import { Command } from 'commander';\nimport _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\n program?: Command;\n version: string;\n description: string;\n defaultOptions: Record<string, any>;\n excludeOptions: string[];\n optionTypes: Record<string, any>;\n optionTitles: Record<string, any>;\n}\n\nexport abstract class AbstractCommand {\n static readonly DEFAULT_OPTIONS: CommandOptions = {\n program: undefined,\n version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\n // console.log(`options`, options);\n this.options = merge({}, AbstractCommand.DEFAULT_OPTIONS, options);\n this.init();\n }\n abstract init(): void;\n abstract start(action: (options: any) => any): void;\n}\n","export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n this.program = this.options.program || createCommand();\n this.addOptions();\n }\n private addOptions() {\n const stringOptions = OptionHandler.toString(this.options.defaultOptions);\n const optionList = jsonToList({ delimiter: '.', json: stringOptions });\n const optionTypeMap = flatJson({ delimiter: '.', data: this.options.optionTypes });\n optionList.forEach(({ key, value }) => {\n if (this.options.excludeOptions.includes(key)) {\n return;\n }\n const type = optionTypeMap[key];\n this.program!.option(`--${key} <${type}>`, get(this.options.optionTitles, key), value);\n });\n }\n private addAction(action: Action) {\n this.program!.action((stringOptions) => {\n // 转换一下传入参数\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n });\n }\n start(action: Action) {\n this.addAction(action);\n // 如果传入program 则让外部控制\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n","/**\n * @author\n * @file PromptsCommand.ts\n * @fileBase PromptsCommand\n * @path packages\\cli-core\\lib\\cli\\PromptsCommand.ts\n * @from\n * @desc\n * @todo\n *\n *\n * @done\n * @example\n */\nimport { input } from '@inquirer/prompts';\nimport { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler, TYPES } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { program } from 'commander';\n// const actionMap = {\n// [TYPES.array]: input,\n// [TYPES.keyValueArray]: input,\n// [TYPES.number]: number,\n// [TYPES.string]: input,\n// [TYPES.select]: select,\n// };\nexport class PromptsCommand extends AbstractCommand {\n command: any;\n optionHandler: any;\n init() {\n const defaultOptionList = jsonToList({ delimiter: '.', json: this.options.defaultOptions });\n const flattedOptionType = flatJson({\n delimiter: '.',\n data: this.options.optionTypes,\n });\n const flattedOptionTitle = flatJson({\n delimiter: '.',\n data: this.options.optionTitles,\n });\n this.optionHandler = async () => {\n const result: Record<string, any> = {};\n for (const { key, value: defaultValue } of defaultOptionList) {\n const type = flattedOptionType[key];\n if (!type) {\n continue;\n }\n const title = flattedOptionTitle[key];\n if (!title) {\n continue;\n }\n result[key] = (await this.getActionResult({ type, message: title, default: defaultValue })) || defaultValue;\n }\n return result;\n };\n // 又有 args 又有 prompts\n if (this.options.program) {\n this.command = this.options.program.command('prompts');\n }\n }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n private async actionHandler(action: Action) {\n const options = await this.optionHandler();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n async start(action: Action) {\n if (this.command) {\n this.command.action(() => this.actionHandler(action));\n return;\n }\n this.actionHandler(action);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nimport { readJson } from 'fs-extra';\nimport { join } from 'path';\nexport class ConfigCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n // console.log(`this.options.program`, this.options.program);\n this.program = this.options.program?.command('config') || createCommand();\n this.addOptions();\n }\n private addOptions() {\n this.program?.option('-c --config <string>', '配置文件', join(process.cwd(), 'release.json'));\n }\n private addAction(action: Action) {\n this.program!.action(async ({ config = '' }) => {\n let options;\n if (config.endsWith('.js')) {\n options = await import(config);\n } else if (config.endsWith('.json')) {\n options = await readJson(config);\n }\n if (!options) {\n throw new Error(`配置文件为空,请检查${config}`);\n }\n // 这里传入的是config\n action(options);\n });\n }\n start(action: Action) {\n this.addAction(action);\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../lib/CommandManager.ts","../lib/command/command.interface.ts","../lib/OptionHandler.ts","../lib/command/ArgsCommand.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","obj","_obj","item1","item","get","ArgsCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","createCommand","action","jsonOptions","unflatJson","typedOptions","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","_ConfigCommand","_b","path","Logger","writeJson","_0","config","readJson","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli"],"mappings":"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","file":"CommandManager.js","sourcesContent":["import { merge } from 'lodash';\nimport { AbstractCommand, Action, CommandOptions } from './command/command.interface';\nimport { ArgsCommand } from './command/ArgsCommand';\nimport { PromptsCommand } from './command/PromptsCommand';\nimport { Logger } from '@tikkhun/logger';\nimport { ConfigCommand } from './command/ConfigCommand';\nimport { Command, createCommand } from 'commander';\nexport enum CommandTypes {\n 'prompts' = 'prompts',\n 'args' = 'args',\n 'config' = 'config',\n}\nexport interface CommandManagerOptions extends CommandOptions {\n name: string;\n types: CommandTypes[];\n}\nexport class CommandManager {\n static readonly DEFAULT_OPTIONS: CommandManagerOptions = {\n ...AbstractCommand.DEFAULT_OPTIONS,\n types: [CommandTypes.args],\n name: '',\n };\n logger: Logger;\n options: CommandManagerOptions;\n argsCommand?: ArgsCommand;\n promptsCommand?: PromptsCommand;\n configCommand?: ConfigCommand;\n constructor(options: Partial<CommandManagerOptions>) {\n this.options = merge({}, CommandManager.DEFAULT_OPTIONS, options);\n this.logger = new Logger(this.options.name);\n this.welcome();\n this.init();\n }\n welcome() {\n this.logger.log('Welcome!');\n this.logger.log('version: ' + this.options.version);\n this.logger.log('description: ' + this.options.description);\n }\n program: Command | undefined;\n init() {\n const { types, ...options } = this.options;\n if (!types || !types.length) {\n throw new Error('types is undefined');\n }\n // 特殊处理\n if (types.length === 1 && types[0] === CommandTypes.prompts) {\n return;\n }\n this.program = createCommand();\n if (types.includes(CommandTypes.args)) {\n this.argsCommand = new ArgsCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.config)) {\n this.configCommand = new ConfigCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.prompts)) {\n this.promptsCommand = new PromptsCommand({ ...options, program: this.program });\n }\n }\n start(action: Action) {\n this.promptsCommand?.start(action);\n this.configCommand?.start(action);\n this.argsCommand?.start(action);\n // 当没有的时候就不会parse了\n this.program?.parse(process.argv);\n }\n}\n// alias\nexport const Cli = CommandManager;\n","import { Command } from 'commander';\nimport _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\n program?: Command;\n version: string;\n description: string;\n defaultOptions: Record<string, any>;\n excludeOptions: string[];\n optionTypes: Record<string, any>;\n optionTitles: Record<string, any>;\n}\n\nexport abstract class AbstractCommand {\n static readonly DEFAULT_OPTIONS: CommandOptions = {\n program: undefined,\n version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\n // console.log(`options`, options);\n this.options = merge({}, AbstractCommand.DEFAULT_OPTIONS, options);\n this.init();\n }\n abstract init(): void;\n abstract start(action: (options: any) => any): void;\n}\n","export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n // 单纯就是扁平化\n static toFlatList(obj: Record<string, any>) {\n \n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\ninterface ArgsOption {\n key: string;\n value?: any;\n type?: string;\n}\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n getOptions(): ArgsOption[] {\n const stringOptions = OptionHandler.toString(this.options.defaultOptions);\n const optionList = jsonToList({ delimiter: '.', json: stringOptions });\n // console.log(`optionList`, optionList);\n const optionTypeMap = flatJson({ delimiter: '.', data: this.options.optionTypes });\n return optionList\n .filter(({ key }) => {\n // 排除掉排除的选项\n if (this.options.excludeOptions.includes(key)) {\n return false;\n }\n return true;\n })\n .map(({ key, value }) => {\n return { key, value, type: optionTypeMap[key] };\n });\n }\n init(): void {\n this.program = this.options.program || createCommand();\n const options = this.getOptions();\n this.addOptions(options);\n }\n private addOptions(options: ArgsOption[]) {\n options.forEach(({ key, value, type }) => {\n this.program!.option(`--${key} <${type}>`, get(this.options.optionTitles, key), value);\n });\n }\n private addAction(action: Action) {\n this.program!.action((stringOptions) => {\n // 转换一下传入参数\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n });\n }\n start(action: Action) {\n this.addAction(action);\n // 如果传入program 则让外部控制\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n","/**\n * @author\n * @file PromptsCommand.ts\n * @fileBase PromptsCommand\n * @path packages\\cli-core\\lib\\cli\\PromptsCommand.ts\n * @from\n * @desc\n * @todo\n *\n *\n * @done\n * @example\n */\nimport { input } from '@inquirer/prompts';\nimport { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler, TYPES } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport _ from 'lodash';\nconst { get } = _;\n// const actionMap = {\n// [TYPES.array]: input,\n// [TYPES.keyValueArray]: input,\n// [TYPES.number]: number,\n// [TYPES.string]: input,\n// [TYPES.select]: select,\n// };\n\nexport class PromptsCommand extends AbstractCommand {\n command: any;\n optionHandler: any;\n getOptions() {\n const stringifyDefaultOptions = OptionHandler.toString(this.options.defaultOptions);\n // 默认选项\n const flattedStringifyDefaultOptionList = jsonToList({\n delimiter: '.',\n json: stringifyDefaultOptions,\n });\n const flattedOptionTypeList = flatJson({\n delimiter: '.',\n data: this.options.optionTypes,\n });\n const flattedOptionTitleList = flatJson({\n delimiter: '.',\n data: this.options.optionTitles,\n });\n return flattedStringifyDefaultOptionList.map(({ key, value }) => {\n return {\n key: key,\n defaultValue: value,\n type: flattedOptionTypeList[key],\n title: flattedOptionTitleList[key],\n };\n });\n }\n init() {\n const options = this.getOptions();\n // console.log(`options`, options);\n // console.log(`options`, options);\n this.optionHandler = async () => {\n const result: Record<string, any> = {};\n for (const { key, defaultValue, type, title } of options) {\n if (!type) {\n continue;\n }\n if (!title) {\n continue;\n }\n result[key] = (await this.getActionResult({ type, message: title, default: defaultValue })) || defaultValue;\n }\n return result;\n };\n // 又有 args 又有 prompts\n if (this.options.program) {\n this.command = this.options.program.command('prompts');\n }\n }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n private async actionHandler(action: Action) {\n const options = await this.optionHandler();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n async start(action: Action) {\n if (this.command) {\n this.command.action(() => this.actionHandler(action));\n return;\n }\n this.actionHandler(action);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n","import { Command, createCommand } from 'commander';\nimport { readJson, writeJson } from 'fs-extra';\nimport { join } from 'path';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Logger } from '@tikkhun/logger';\nexport class ConfigCommand extends AbstractCommand {\n static defaultConfigPath = join(process.cwd(), 'release.json');\n program: Command | undefined;\n init(): void {\n // console.log(`this.options.program`, this.options.program);\n this.program = this.options.program?.command('config') || createCommand();\n // 这里要获取默认选项便于处理\n this.program\n ?.command('init')\n .option('-p --path <string>', '配置文件路径', ConfigCommand.defaultConfigPath)\n .action(async (options) => {\n let { path } = options;\n if (!path) {\n path = ConfigCommand.defaultConfigPath;\n }\n Logger.log('[开始] 初始化配置文件: ' + path);\n await writeJson(path, this.options.defaultOptions, { spaces: 2 });\n Logger.log('[完毕] 初始化配置文件: ' + path);\n });\n this.addOptions();\n }\n private addOptions() {\n this.program?.option('-c --config <string>', '配置文件', ConfigCommand.defaultConfigPath);\n }\n private addAction(action: Action) {\n this.program!.action(async ({ config = '' }) => {\n let options;\n if (config.endsWith('.js')) {\n options = await import(config);\n } else if (config.endsWith('.json')) {\n options = await readJson(config);\n }\n if (!options) {\n throw new Error(`配置文件为空,请检查${config}`);\n }\n // 这里传入的是config\n action(options);\n });\n }\n start(action: Action) {\n this.addAction(action);\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n"]}
@@ -1,16 +1,16 @@
1
- import V, { merge } from 'lodash';
1
+ import D, { merge } from 'lodash';
2
2
  import { jsonToList, flatJson, unflatJson } from '@tikkhun/utils-core';
3
3
  import { createCommand } from 'commander';
4
4
  import { input } from '@inquirer/prompts';
5
5
  import { Logger } from '@tikkhun/logger';
6
- import { readJson } from 'fs-extra';
6
+ import { writeJson, readJson } from 'fs-extra';
7
7
  import { join } from 'path';
8
8
 
9
9
  /**
10
10
  @tikkhun/cli-core
11
11
  */
12
- var E=Object.defineProperty,P=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var j=(i,t,o)=>t in i?E(i,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):i[t]=o,g=(i,t)=>{for(var o in t||(t={}))w.call(t,o)&&j(i,o,t[o]);if(h)for(var o of h(t))R.call(t,o)&&j(i,o,t[o]);return i},f=(i,t)=>P(i,L(t));var u=(i,t)=>{var o={};for(var r in i)w.call(i,r)&&t.indexOf(r)<0&&(o[r]=i[r]);if(i!=null&&h)for(var r of h(i))t.indexOf(r)<0&&R.call(i,r)&&(o[r]=i[r]);return o};var m=(i,t,o)=>new Promise((r,n)=>{var s=e=>{try{d(o.next(e));}catch(x){n(x);}},p=e=>{try{d(o.throw(e));}catch(x){n(x);}},d=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,p);d((o=o.apply(i,t)).next());});var{merge:v}=V,y=class y{constructor(t){this.options=v({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var a=y;var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},H=["true",!0,"1",1];var c=class i{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===l.array?t.split(","):o===l.object?JSON.parse(t):o===l.keyValueArray?t?t.split(",").map(r=>{if(!r)return;let[n,s]=r.split("=");return {key:n,value:s}}).filter(r=>r):[]:o===l.number?Number(t):o===l.boolean?!!H.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([n,s])=>{let p=o[n];typeof s=="object"?r[n]=i.toType(s,p):r[n]=i.getTypeValue(s,p);}),r}toType(t){return i.toType(t,this.schema)}static toString(t){let o={};return Object.entries(t).forEach(([r,n])=>{o[r]=i.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?i.toString(t):""+t}};var{get:Y}=V,O=class extends a{init(){this.program=this.options.program||createCommand(),this.addOptions();}addOptions(){let t=c.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),r=flatJson({delimiter:".",data:this.options.optionTypes});o.forEach(({key:n,value:s})=>{if(this.options.excludeOptions.includes(n))return;let p=r[n];this.program.option(`--${n} <${p}>`,Y(this.options.optionTitles,n),s);});}addAction(t){this.program.action(o=>{let r=unflatJson({delimiter:".",data:o}),n=c.toType(r,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var T=class extends a{init(){let t=jsonToList({delimiter:".",json:this.options.defaultOptions}),o=flatJson({delimiter:".",data:this.options.optionTypes}),r=flatJson({delimiter:".",data:this.options.optionTitles});this.optionHandler=()=>m(this,null,function*(){let n={};for(let{key:s,value:p}of t){let d=o[s];if(!d)continue;let e=r[s];e&&(n[s]=(yield this.getActionResult({type:d,message:e,default:p}))||p);}return n}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return m(this,null,function*(){let n=t,r=u(n,["type"]);return yield input(r)})}actionHandler(t){return m(this,null,function*(){let o=yield this.optionHandler(),r=unflatJson({delimiter:".",data:o}),n=c.toType(r,this.options.optionTypes);t(n);})}start(t){return m(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var C=class extends a{init(){var t;this.program=((t=this.options.program)==null?void 0:t.command("config"))||createCommand(),this.addOptions();}addOptions(){var t;(t=this.program)==null||t.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",join(process.cwd(),"release.json"));}addAction(t){this.program.action(r=>m(this,[r],function*({config:o=""}){let n;if(o.endsWith(".js")?n=yield import(o):o.endsWith(".json")&&(n=yield readJson(o)),!n)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(n);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var B=(r=>(r.prompts="prompts",r.args="args",r.config="config",r))(B||{}),A=class A{constructor(t){this.options=merge({},A.DEFAULT_OPTIONS,t),this.logger=new Logger(this.options.name),this.welcome(),this.init();}welcome(){this.logger.log("Welcome!"),this.logger.log("version: "+this.options.version),this.logger.log("description: "+this.options.description);}init(){let r=this.options,{types:t}=r,o=u(r,["types"]);if(!t||!t.length)throw new Error("types is undefined");t.length===1&&t[0]==="prompts"||(this.program=createCommand(),t.includes("args")&&(this.argsCommand=new O(f(g({},o),{program:this.program}))),t.includes("config")&&(this.configCommand=new C(f(g({},o),{program:this.program}))),t.includes("prompts")&&(this.promptsCommand=new T(f(g({},o),{program:this.program}))));}start(t){var o,r,n,s;(o=this.promptsCommand)==null||o.start(t),(r=this.configCommand)==null||r.start(t),(n=this.argsCommand)==null||n.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},a.DEFAULT_OPTIONS),{types:["args"],name:""});var b=A,Ft=b;
12
+ var L=Object.defineProperty,V=Object.defineProperties;var v=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var S=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var w=(r,t,o)=>t in r?L(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o,g=(r,t)=>{for(var o in t||(t={}))S.call(t,o)&&w(r,o,t[o]);if(h)for(var o of h(t))P.call(t,o)&&w(r,o,t[o]);return r},f=(r,t)=>V(r,v(t));var u=(r,t)=>{var o={};for(var i in r)S.call(r,i)&&t.indexOf(i)<0&&(o[i]=r[i]);if(r!=null&&h)for(var i of h(r))t.indexOf(i)<0&&P.call(r,i)&&(o[i]=r[i]);return o};var p=(r,t,o)=>new Promise((i,n)=>{var s=c=>{try{b(o.next(c));}catch(x){n(x);}},a=c=>{try{b(o.throw(c));}catch(x){n(x);}},b=c=>c.done?i(c.value):Promise.resolve(c.value).then(s,a);b((o=o.apply(r,t)).next());});var{merge:F}=D,y=class y{constructor(t){this.options=F({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var e=y;var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},H=["true",!0,"1",1];var m=class r{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===l.array?t.split(","):o===l.object?JSON.parse(t):o===l.keyValueArray?t?t.split(",").map(i=>{if(!i)return;let[n,s]=i.split("=");return {key:n,value:s}}).filter(i=>i):[]:o===l.number?Number(t):o===l.boolean?!!H.includes(t):t}static toType(t,o){let i={};return Object.entries(t).forEach(([n,s])=>{let a=o[n];typeof s=="object"?i[n]=r.toType(s,a):i[n]=r.getTypeValue(s,a);}),i}toType(t){return r.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([i,n])=>{o[i]=r.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(i=>`${i.key}=${i.value}`).toString():t.toString()}return typeof t=="object"?r.toString(t):""+t}};var{get:k}=D,O=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),i=flatJson({delimiter:".",data:this.options.optionTypes});return o.filter(({key:n})=>!this.options.excludeOptions.includes(n)).map(({key:n,value:s})=>({key:n,value:s,type:i[n]}))}init(){this.program=this.options.program||createCommand();let t=this.getOptions();this.addOptions(t);}addOptions(t){t.forEach(({key:o,value:i,type:n})=>{this.program.option(`--${o} <${n}>`,k(this.options.optionTitles,o),i);});}addAction(t){this.program.action(o=>{let i=unflatJson({delimiter:".",data:o}),n=m.toType(i,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};var T=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),i=flatJson({delimiter:".",data:this.options.optionTypes}),n=flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:s,value:a})=>({key:s,defaultValue:a,type:i[s],title:n[s]}))}init(){let t=this.getOptions();this.optionHandler=()=>p(this,null,function*(){let o={};for(let{key:i,defaultValue:n,type:s,title:a}of t)s&&a&&(o[i]=(yield this.getActionResult({type:s,message:a,default:n}))||n);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return p(this,null,function*(){let n=t,i=u(n,["type"]);return yield input(i)})}actionHandler(t){return p(this,null,function*(){let o=yield this.optionHandler(),i=unflatJson({delimiter:".",data:o}),n=m.toType(i,this.options.optionTypes);t(n);})}start(t){return p(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var d=class d extends e{init(){var t,o;this.program=((t=this.options.program)==null?void 0:t.command("config"))||createCommand(),(o=this.program)==null||o.command("init").option("-p --path <string>","\u914D\u7F6E\u6587\u4EF6\u8DEF\u5F84",d.defaultConfigPath).action(i=>p(this,null,function*(){let{path:n}=i;n||(n=d.defaultConfigPath),Logger.log("[\u5F00\u59CB] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+n),yield writeJson(n,this.options.defaultOptions,{spaces:2}),Logger.log("[\u5B8C\u6BD5] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+n);})),this.addOptions();}addOptions(){var t;(t=this.program)==null||t.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",d.defaultConfigPath);}addAction(t){this.program.action(i=>p(this,[i],function*({config:o=""}){let n;if(o.endsWith(".js")?n=yield import(o):o.endsWith(".json")&&(n=yield readJson(o)),!n)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(n);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};d.defaultConfigPath=join(process.cwd(),"release.json");var C=d;var _=(i=>(i.prompts="prompts",i.args="args",i.config="config",i))(_||{}),A=class A{constructor(t){this.options=merge({},A.DEFAULT_OPTIONS,t),this.logger=new Logger(this.options.name),this.welcome(),this.init();}welcome(){this.logger.log("Welcome!"),this.logger.log("version: "+this.options.version),this.logger.log("description: "+this.options.description);}init(){let i=this.options,{types:t}=i,o=u(i,["types"]);if(!t||!t.length)throw new Error("types is undefined");t.length===1&&t[0]==="prompts"||(this.program=createCommand(),t.includes("args")&&(this.argsCommand=new O(f(g({},o),{program:this.program}))),t.includes("config")&&(this.configCommand=new C(f(g({},o),{program:this.program}))),t.includes("prompts")&&(this.promptsCommand=new T(f(g({},o),{program:this.program}))));}start(t){var o,i,n,s;(o=this.promptsCommand)==null||o.start(t),(i=this.configCommand)==null||i.start(t),(n=this.argsCommand)==null||n.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},e.DEFAULT_OPTIONS),{types:["args"],name:""});var j=A,It=j;
13
13
 
14
- export { Ft as Cli, b as CommandManager, B as CommandTypes };
14
+ export { It as Cli, j as CommandManager, _ as CommandTypes };
15
15
  //# sourceMappingURL=CommandManager.mjs.map
16
16
  //# sourceMappingURL=CommandManager.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/CommandManager.ts","../lib/command/command.interface.ts","../lib/OptionHandler.ts","../lib/command/ArgsCommand.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","get","ArgsCommand","createCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","action","jsonOptions","unflatJson","typedOptions","PromptsCommand","defaultOptionList","flattedOptionType","flattedOptionTitle","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","ConfigCommand","join","_0","config","readJson","CommandTypes","_CommandManager","Logger","types","__spreadProps","__spreadValues","_b","_c","_d","CommandManager","Cli"],"mappings":"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","file":"CommandManager.mjs","sourcesContent":["import { merge } from 'lodash';\nimport { AbstractCommand, Action, CommandOptions } from './command/command.interface';\nimport { ArgsCommand } from './command/ArgsCommand';\nimport { PromptsCommand } from './command/PromptsCommand';\nimport { Logger } from '@tikkhun/logger';\nimport { ConfigCommand } from './command/ConfigCommand';\nimport { Command, createCommand } from 'commander';\nexport enum CommandTypes {\n 'prompts' = 'prompts',\n 'args' = 'args',\n 'config' = 'config',\n}\nexport interface CommandManagerOptions extends CommandOptions {\n name: string;\n types: CommandTypes[];\n}\nexport class CommandManager {\n static readonly DEFAULT_OPTIONS: CommandManagerOptions = {\n ...AbstractCommand.DEFAULT_OPTIONS,\n types: [CommandTypes.args],\n name: '',\n };\n logger: Logger;\n options: CommandManagerOptions;\n argsCommand?: ArgsCommand;\n promptsCommand?: PromptsCommand;\n configCommand?: ConfigCommand;\n constructor(options: Partial<CommandManagerOptions>) {\n this.options = merge({}, CommandManager.DEFAULT_OPTIONS, options);\n this.logger = new Logger(this.options.name);\n this.welcome();\n this.init();\n }\n welcome() {\n this.logger.log('Welcome!');\n this.logger.log('version: ' + this.options.version);\n this.logger.log('description: ' + this.options.description);\n }\n program: Command | undefined;\n init() {\n const { types, ...options } = this.options;\n if (!types || !types.length) {\n throw new Error('types is undefined');\n }\n // 特殊处理\n if (types.length === 1 && types[0] === CommandTypes.prompts) {\n return;\n }\n this.program = createCommand();\n if (types.includes(CommandTypes.args)) {\n this.argsCommand = new ArgsCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.config)) {\n this.configCommand = new ConfigCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.prompts)) {\n this.promptsCommand = new PromptsCommand({ ...options, program: this.program });\n }\n }\n start(action: Action) {\n this.promptsCommand?.start(action);\n this.configCommand?.start(action);\n this.argsCommand?.start(action);\n // 当没有的时候就不会parse了\n this.program?.parse(process.argv);\n }\n}\n// alias\nexport const Cli = CommandManager;\n","import { Command } from 'commander';\nimport _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\n program?: Command;\n version: string;\n description: string;\n defaultOptions: Record<string, any>;\n excludeOptions: string[];\n optionTypes: Record<string, any>;\n optionTitles: Record<string, any>;\n}\n\nexport abstract class AbstractCommand {\n static readonly DEFAULT_OPTIONS: CommandOptions = {\n program: undefined,\n version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\n // console.log(`options`, options);\n this.options = merge({}, AbstractCommand.DEFAULT_OPTIONS, options);\n this.init();\n }\n abstract init(): void;\n abstract start(action: (options: any) => any): void;\n}\n","export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n this.program = this.options.program || createCommand();\n this.addOptions();\n }\n private addOptions() {\n const stringOptions = OptionHandler.toString(this.options.defaultOptions);\n const optionList = jsonToList({ delimiter: '.', json: stringOptions });\n const optionTypeMap = flatJson({ delimiter: '.', data: this.options.optionTypes });\n optionList.forEach(({ key, value }) => {\n if (this.options.excludeOptions.includes(key)) {\n return;\n }\n const type = optionTypeMap[key];\n this.program!.option(`--${key} <${type}>`, get(this.options.optionTitles, key), value);\n });\n }\n private addAction(action: Action) {\n this.program!.action((stringOptions) => {\n // 转换一下传入参数\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n });\n }\n start(action: Action) {\n this.addAction(action);\n // 如果传入program 则让外部控制\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n","/**\n * @author\n * @file PromptsCommand.ts\n * @fileBase PromptsCommand\n * @path packages\\cli-core\\lib\\cli\\PromptsCommand.ts\n * @from\n * @desc\n * @todo\n *\n *\n * @done\n * @example\n */\nimport { input } from '@inquirer/prompts';\nimport { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler, TYPES } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { program } from 'commander';\n// const actionMap = {\n// [TYPES.array]: input,\n// [TYPES.keyValueArray]: input,\n// [TYPES.number]: number,\n// [TYPES.string]: input,\n// [TYPES.select]: select,\n// };\nexport class PromptsCommand extends AbstractCommand {\n command: any;\n optionHandler: any;\n init() {\n const defaultOptionList = jsonToList({ delimiter: '.', json: this.options.defaultOptions });\n const flattedOptionType = flatJson({\n delimiter: '.',\n data: this.options.optionTypes,\n });\n const flattedOptionTitle = flatJson({\n delimiter: '.',\n data: this.options.optionTitles,\n });\n this.optionHandler = async () => {\n const result: Record<string, any> = {};\n for (const { key, value: defaultValue } of defaultOptionList) {\n const type = flattedOptionType[key];\n if (!type) {\n continue;\n }\n const title = flattedOptionTitle[key];\n if (!title) {\n continue;\n }\n result[key] = (await this.getActionResult({ type, message: title, default: defaultValue })) || defaultValue;\n }\n return result;\n };\n // 又有 args 又有 prompts\n if (this.options.program) {\n this.command = this.options.program.command('prompts');\n }\n }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n private async actionHandler(action: Action) {\n const options = await this.optionHandler();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n async start(action: Action) {\n if (this.command) {\n this.command.action(() => this.actionHandler(action));\n return;\n }\n this.actionHandler(action);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nimport { readJson } from 'fs-extra';\nimport { join } from 'path';\nexport class ConfigCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n // console.log(`this.options.program`, this.options.program);\n this.program = this.options.program?.command('config') || createCommand();\n this.addOptions();\n }\n private addOptions() {\n this.program?.option('-c --config <string>', '配置文件', join(process.cwd(), 'release.json'));\n }\n private addAction(action: Action) {\n this.program!.action(async ({ config = '' }) => {\n let options;\n if (config.endsWith('.js')) {\n options = await import(config);\n } else if (config.endsWith('.json')) {\n options = await readJson(config);\n }\n if (!options) {\n throw new Error(`配置文件为空,请检查${config}`);\n }\n // 这里传入的是config\n action(options);\n });\n }\n start(action: Action) {\n this.addAction(action);\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../lib/CommandManager.ts","../lib/command/command.interface.ts","../lib/OptionHandler.ts","../lib/command/ArgsCommand.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","obj","_obj","item1","item","get","ArgsCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","createCommand","action","jsonOptions","unflatJson","typedOptions","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","_ConfigCommand","_b","path","Logger","writeJson","_0","config","readJson","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli"],"mappings":"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","file":"CommandManager.mjs","sourcesContent":["import { merge } from 'lodash';\nimport { AbstractCommand, Action, CommandOptions } from './command/command.interface';\nimport { ArgsCommand } from './command/ArgsCommand';\nimport { PromptsCommand } from './command/PromptsCommand';\nimport { Logger } from '@tikkhun/logger';\nimport { ConfigCommand } from './command/ConfigCommand';\nimport { Command, createCommand } from 'commander';\nexport enum CommandTypes {\n 'prompts' = 'prompts',\n 'args' = 'args',\n 'config' = 'config',\n}\nexport interface CommandManagerOptions extends CommandOptions {\n name: string;\n types: CommandTypes[];\n}\nexport class CommandManager {\n static readonly DEFAULT_OPTIONS: CommandManagerOptions = {\n ...AbstractCommand.DEFAULT_OPTIONS,\n types: [CommandTypes.args],\n name: '',\n };\n logger: Logger;\n options: CommandManagerOptions;\n argsCommand?: ArgsCommand;\n promptsCommand?: PromptsCommand;\n configCommand?: ConfigCommand;\n constructor(options: Partial<CommandManagerOptions>) {\n this.options = merge({}, CommandManager.DEFAULT_OPTIONS, options);\n this.logger = new Logger(this.options.name);\n this.welcome();\n this.init();\n }\n welcome() {\n this.logger.log('Welcome!');\n this.logger.log('version: ' + this.options.version);\n this.logger.log('description: ' + this.options.description);\n }\n program: Command | undefined;\n init() {\n const { types, ...options } = this.options;\n if (!types || !types.length) {\n throw new Error('types is undefined');\n }\n // 特殊处理\n if (types.length === 1 && types[0] === CommandTypes.prompts) {\n return;\n }\n this.program = createCommand();\n if (types.includes(CommandTypes.args)) {\n this.argsCommand = new ArgsCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.config)) {\n this.configCommand = new ConfigCommand({ ...options, program: this.program });\n }\n if (types.includes(CommandTypes.prompts)) {\n this.promptsCommand = new PromptsCommand({ ...options, program: this.program });\n }\n }\n start(action: Action) {\n this.promptsCommand?.start(action);\n this.configCommand?.start(action);\n this.argsCommand?.start(action);\n // 当没有的时候就不会parse了\n this.program?.parse(process.argv);\n }\n}\n// alias\nexport const Cli = CommandManager;\n","import { Command } from 'commander';\nimport _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\n program?: Command;\n version: string;\n description: string;\n defaultOptions: Record<string, any>;\n excludeOptions: string[];\n optionTypes: Record<string, any>;\n optionTitles: Record<string, any>;\n}\n\nexport abstract class AbstractCommand {\n static readonly DEFAULT_OPTIONS: CommandOptions = {\n program: undefined,\n version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\n // console.log(`options`, options);\n this.options = merge({}, AbstractCommand.DEFAULT_OPTIONS, options);\n this.init();\n }\n abstract init(): void;\n abstract start(action: (options: any) => any): void;\n}\n","export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n // 单纯就是扁平化\n static toFlatList(obj: Record<string, any>) {\n \n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand, program } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\ninterface ArgsOption {\n key: string;\n value?: any;\n type?: string;\n}\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n getOptions(): ArgsOption[] {\n const stringOptions = OptionHandler.toString(this.options.defaultOptions);\n const optionList = jsonToList({ delimiter: '.', json: stringOptions });\n // console.log(`optionList`, optionList);\n const optionTypeMap = flatJson({ delimiter: '.', data: this.options.optionTypes });\n return optionList\n .filter(({ key }) => {\n // 排除掉排除的选项\n if (this.options.excludeOptions.includes(key)) {\n return false;\n }\n return true;\n })\n .map(({ key, value }) => {\n return { key, value, type: optionTypeMap[key] };\n });\n }\n init(): void {\n this.program = this.options.program || createCommand();\n const options = this.getOptions();\n this.addOptions(options);\n }\n private addOptions(options: ArgsOption[]) {\n options.forEach(({ key, value, type }) => {\n this.program!.option(`--${key} <${type}>`, get(this.options.optionTitles, key), value);\n });\n }\n private addAction(action: Action) {\n this.program!.action((stringOptions) => {\n // 转换一下传入参数\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n });\n }\n start(action: Action) {\n this.addAction(action);\n // 如果传入program 则让外部控制\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n","/**\n * @author\n * @file PromptsCommand.ts\n * @fileBase PromptsCommand\n * @path packages\\cli-core\\lib\\cli\\PromptsCommand.ts\n * @from\n * @desc\n * @todo\n *\n *\n * @done\n * @example\n */\nimport { input } from '@inquirer/prompts';\nimport { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler, TYPES } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport _ from 'lodash';\nconst { get } = _;\n// const actionMap = {\n// [TYPES.array]: input,\n// [TYPES.keyValueArray]: input,\n// [TYPES.number]: number,\n// [TYPES.string]: input,\n// [TYPES.select]: select,\n// };\n\nexport class PromptsCommand extends AbstractCommand {\n command: any;\n optionHandler: any;\n getOptions() {\n const stringifyDefaultOptions = OptionHandler.toString(this.options.defaultOptions);\n // 默认选项\n const flattedStringifyDefaultOptionList = jsonToList({\n delimiter: '.',\n json: stringifyDefaultOptions,\n });\n const flattedOptionTypeList = flatJson({\n delimiter: '.',\n data: this.options.optionTypes,\n });\n const flattedOptionTitleList = flatJson({\n delimiter: '.',\n data: this.options.optionTitles,\n });\n return flattedStringifyDefaultOptionList.map(({ key, value }) => {\n return {\n key: key,\n defaultValue: value,\n type: flattedOptionTypeList[key],\n title: flattedOptionTitleList[key],\n };\n });\n }\n init() {\n const options = this.getOptions();\n // console.log(`options`, options);\n // console.log(`options`, options);\n this.optionHandler = async () => {\n const result: Record<string, any> = {};\n for (const { key, defaultValue, type, title } of options) {\n if (!type) {\n continue;\n }\n if (!title) {\n continue;\n }\n result[key] = (await this.getActionResult({ type, message: title, default: defaultValue })) || defaultValue;\n }\n return result;\n };\n // 又有 args 又有 prompts\n if (this.options.program) {\n this.command = this.options.program.command('prompts');\n }\n }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n private async actionHandler(action: Action) {\n const options = await this.optionHandler();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n async start(action: Action) {\n if (this.command) {\n this.command.action(() => this.actionHandler(action));\n return;\n }\n this.actionHandler(action);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n","import { Command, createCommand } from 'commander';\nimport { readJson, writeJson } from 'fs-extra';\nimport { join } from 'path';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Logger } from '@tikkhun/logger';\nexport class ConfigCommand extends AbstractCommand {\n static defaultConfigPath = join(process.cwd(), 'release.json');\n program: Command | undefined;\n init(): void {\n // console.log(`this.options.program`, this.options.program);\n this.program = this.options.program?.command('config') || createCommand();\n // 这里要获取默认选项便于处理\n this.program\n ?.command('init')\n .option('-p --path <string>', '配置文件路径', ConfigCommand.defaultConfigPath)\n .action(async (options) => {\n let { path } = options;\n if (!path) {\n path = ConfigCommand.defaultConfigPath;\n }\n Logger.log('[开始] 初始化配置文件: ' + path);\n await writeJson(path, this.options.defaultOptions, { spaces: 2 });\n Logger.log('[完毕] 初始化配置文件: ' + path);\n });\n this.addOptions();\n }\n private addOptions() {\n this.program?.option('-c --config <string>', '配置文件', ConfigCommand.defaultConfigPath);\n }\n private addAction(action: Action) {\n this.program!.action(async ({ config = '' }) => {\n let options;\n if (config.endsWith('.js')) {\n options = await import(config);\n } else if (config.endsWith('.json')) {\n options = await readJson(config);\n }\n if (!options) {\n throw new Error(`配置文件为空,请检查${config}`);\n }\n // 这里传入的是config\n action(options);\n });\n }\n start(action: Action) {\n this.addAction(action);\n if (!this.options.program) {\n this.program!.parse(process.argv);\n }\n }\n}\n"]}
@@ -16,6 +16,7 @@ declare class OptionHandler {
16
16
  static getTypeValue(value: string, type: string): any;
17
17
  static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>): Record<string, any>;
18
18
  toType(obj: Record<string, any>): Record<string, any>;
19
+ static toFlatList(obj: Record<string, any>): void;
19
20
  static toString(obj: Record<string, any>): Record<string, any>;
20
21
  static toStringValue(value: any): string | Record<string, any>;
21
22
  }
@@ -16,6 +16,7 @@ declare class OptionHandler {
16
16
  static getTypeValue(value: string, type: string): any;
17
17
  static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>): Record<string, any>;
18
18
  toType(obj: Record<string, any>): Record<string, any>;
19
+ static toFlatList(obj: Record<string, any>): void;
19
20
  static toString(obj: Record<string, any>): Record<string, any>;
20
21
  static toStringValue(value: any): string | Record<string, any>;
21
22
  }
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  @tikkhun/cli-core
5
5
  */
6
- var i={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},y=["true",!0,"1",1],u=["false",!1,"",0],c=class s{constructor(r){this.schema=r;}static getTypeValue(r,t){return t===i.array?r.split(","):t===i.object?JSON.parse(r):t===i.keyValueArray?r?r.split(",").map(e=>{if(!e)return;let[n,o]=e.split("=");return {key:n,value:o}}).filter(e=>e):[]:t===i.number?Number(r):t===i.boolean?!!y.includes(r):r}static toType(r,t){let e={};return Object.entries(r).forEach(([n,o])=>{let a=t[n];typeof o=="object"?e[n]=s.toType(o,a):e[n]=s.getTypeValue(o,a);}),e}toType(r){return s.toType(r,this.schema)}static toString(r){let t={};return Object.entries(r).forEach(([e,n])=>{t[e]=s.toStringValue(n);}),t}static toStringValue(r){if(Array.isArray(r)){let t=r[0];return typeof t=="object"&&t.hasOwnProperty("key")&&t.hasOwnProperty("value")?r.map(e=>`${e.key}=${e.value}`).toString():r.toString()}return typeof r=="object"?s.toString(r):""+r}};
6
+ var i={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},y=["true",!0,"1",1],u=["false",!1,"",0],c=class s{constructor(r){this.schema=r;}static getTypeValue(r,t){return t===i.array?r.split(","):t===i.object?JSON.parse(r):t===i.keyValueArray?r?r.split(",").map(e=>{if(!e)return;let[n,o]=e.split("=");return {key:n,value:o}}).filter(e=>e):[]:t===i.number?Number(r):t===i.boolean?!!y.includes(r):r}static toType(r,t){let e={};return Object.entries(r).forEach(([n,o])=>{let a=t[n];typeof o=="object"?e[n]=s.toType(o,a):e[n]=s.getTypeValue(o,a);}),e}toType(r){return s.toType(r,this.schema)}static toFlatList(r){}static toString(r){let t={};return Object.entries(r).forEach(([e,n])=>{t[e]=s.toStringValue(n);}),t}static toStringValue(r){if(Array.isArray(r)){let t=r[0];return typeof t=="object"&&t.hasOwnProperty("key")&&t.hasOwnProperty("value")?r.map(e=>`${e.key}=${e.value}`).toString():r.toString()}return typeof r=="object"?s.toString(r):""+r}};
7
7
 
8
8
  exports.OptionHandler = c;
9
9
  exports.TYPES = i;
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/OptionHandler.ts"],"names":["TYPES","asTrueValues","asFalseValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item"],"mappings":";;;;;AAAO,IAAMA,CAAQ,CAAA,CACnB,KAAO,CAAA,OAAA,CACP,aAAe,CAAA,eAAA,CACf,OAAS,CAAA,SAAA,CACT,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QACV,CAEaC,CAAAA,CAAAA,CAAe,CAAC,MAAA,CAAQ,CAAM,CAAA,CAAA,GAAA,CAAK,CAAC,CAAA,CACpCC,CAAgB,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA,CAAO,GAAI,CAAC,CAAA,CACtCC,CAAN,CAAA,MAAMC,CAAc,CAEzB,WAAYC,CAAAA,CAAAA,CAA6B,CACvC,IAAA,CAAK,MAASA,CAAAA,EAChB,CACA,OAAO,YAAaC,CAAAA,CAAAA,CAAeC,CAAc,CAAA,CAC/C,OAAIA,CAAAA,GAASP,CAAM,CAAA,KAAA,CACVM,CAAM,CAAA,KAAA,CAAM,GAAG,CAAA,CAEpBC,CAASP,GAAAA,CAAAA,CAAM,MACV,CAAA,IAAA,CAAK,KAAMM,CAAAA,CAAK,EAErBC,CAASP,GAAAA,CAAAA,CAAM,aACZM,CAAAA,CAAAA,CACEA,CACJ,CAAA,KAAA,CAAM,GAAG,CAAA,CACT,GAAKE,CAAAA,CAAAA,EAAY,CAChB,GAAI,CAACA,CAAAA,CAAS,OACd,GAAM,CAACC,CAAAA,CAAKH,CAAK,CAAA,CAAIE,CAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CACtC,OAAO,CAAE,GAAAC,CAAAA,CAAAA,CAAK,KAAAH,CAAAA,CAAM,CACtB,CAAC,EACA,MAAQI,CAAAA,CAAAA,EAAMA,CAAC,CAAA,CARC,EAAC,CAUlBH,CAASP,GAAAA,CAAAA,CAAM,MACV,CAAA,MAAA,CAAOM,CAAK,CAAA,CAEjBC,CAASP,GAAAA,CAAAA,CAAM,OACb,CAAA,CAAA,CAAAC,CAAa,CAAA,QAAA,CAASK,CAAK,CAAA,CAG1BA,CACT,CACA,OAAO,MAAA,CAAOK,CAAsDN,CAAAA,CAAAA,CAA6B,CAC/F,IAAMO,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,QAAQD,CAAG,CAAA,CAAE,OAAQ,CAAA,CAAC,CAACF,CAAAA,CAAKH,CAAK,CAAA,GAAM,CAC5C,IAAMC,CAAOF,CAAAA,CAAAA,CAAOI,CAAG,CAAA,CACnB,OAAOH,CAAAA,EAAU,QACnBM,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,MAAA,CAAOE,CAAOC,CAAAA,CAAI,CAE5CK,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,YAAA,CAAaE,CAAiBC,CAAAA,CAAI,EAEhE,CAAC,CAAA,CACMK,CACT,CACA,MAAOD,CAAAA,CAAAA,CAA0B,CAC/B,OAAOP,CAAc,CAAA,MAAA,CAAOO,CAAK,CAAA,IAAA,CAAK,MAAM,CAC9C,CACA,OAAO,QAASA,CAAAA,CAAAA,CAA0B,CACxC,IAAMC,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,OAAQD,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACF,CAAKH,CAAAA,CAAK,IAAM,CAC5CM,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,aAAA,CAAcE,CAAK,EAC/C,CAAC,CAAA,CACMM,CACT,CACA,OAAO,aAAA,CAAcN,CAAY,CAAA,CAC/B,GAAI,KAAA,CAAM,OAAQA,CAAAA,CAAK,CAAG,CAAA,CACxB,IAAMO,CAAAA,CAAQP,CAAM,CAAA,CAAC,CAErB,CAAA,OAAI,OAAOO,CAAAA,EAAU,QAAYA,EAAAA,CAAAA,CAAM,eAAe,KAAK,CAAA,EAAKA,CAAM,CAAA,cAAA,CAAe,OAAO,CAAA,CACnFP,CAAM,CAAA,GAAA,CAAKQ,CAAS,EAAA,CAAA,EAAGA,CAAK,CAAA,GAAG,CAAIA,CAAAA,EAAAA,CAAAA,CAAK,KAAK,CAAA,CAAE,CAAE,CAAA,QAAA,EAEnDR,CAAAA,CAAAA,CAAM,QAAS,EACxB,CACA,OAAI,OAAOA,CAAAA,EAAU,QACZF,CAAAA,CAAAA,CAAc,QAASE,CAAAA,CAAK,CAE9B,CAAA,EAAA,CAAKA,CACd,CACF","file":"OptionHandler.js","sourcesContent":["export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n"]}
1
+ {"version":3,"sources":["../lib/OptionHandler.ts"],"names":["TYPES","asTrueValues","asFalseValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item"],"mappings":";;;;;AAAO,IAAMA,CAAQ,CAAA,CACnB,KAAO,CAAA,OAAA,CACP,aAAe,CAAA,eAAA,CACf,OAAS,CAAA,SAAA,CACT,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QACV,CAEaC,CAAAA,CAAAA,CAAe,CAAC,MAAA,CAAQ,CAAM,CAAA,CAAA,GAAA,CAAK,CAAC,CAAA,CACpCC,CAAgB,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA,CAAO,GAAI,CAAC,CAAA,CACtCC,CAAN,CAAA,MAAMC,CAAc,CAEzB,WAAYC,CAAAA,CAAAA,CAA6B,CACvC,IAAA,CAAK,MAASA,CAAAA,EAChB,CACA,OAAO,YAAaC,CAAAA,CAAAA,CAAeC,EAAc,CAC/C,OAAIA,CAASP,GAAAA,CAAAA,CAAM,KACVM,CAAAA,CAAAA,CAAM,KAAM,CAAA,GAAG,CAEpBC,CAAAA,CAAAA,GAASP,CAAM,CAAA,MAAA,CACV,IAAK,CAAA,KAAA,CAAMM,CAAK,CAAA,CAErBC,IAASP,CAAM,CAAA,aAAA,CACZM,CACEA,CAAAA,CAAAA,CACJ,KAAM,CAAA,GAAG,CACT,CAAA,GAAA,CAAKE,CAAY,EAAA,CAChB,GAAI,CAACA,CAAS,CAAA,OACd,GAAM,CAACC,CAAKH,CAAAA,CAAK,CAAIE,CAAAA,CAAAA,CAAQ,KAAM,CAAA,GAAG,CACtC,CAAA,OAAO,CAAE,GAAA,CAAAC,CAAK,CAAA,KAAA,CAAAH,CAAM,CACtB,CAAC,CAAA,CACA,OAAQI,CAAMA,EAAAA,CAAC,CARC,CAAA,EAUjBH,CAAAA,CAAAA,GAASP,CAAM,CAAA,MAAA,CACV,MAAOM,CAAAA,CAAK,CAEjBC,CAAAA,CAAAA,GAASP,CAAM,CAAA,OAAA,CACb,CAAAC,CAAAA,CAAAA,CAAa,SAASK,CAAK,CAAA,CAG1BA,CACT,CACA,OAAO,MAAA,CAAOK,CAAsDN,CAAAA,CAAAA,CAA6B,CAC/F,IAAMO,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,OAAQD,CAAAA,CAAG,EAAE,OAAQ,CAAA,CAAC,CAACF,CAAAA,CAAKH,CAAK,CAAA,GAAM,CAC5C,IAAMC,CAAOF,CAAAA,CAAAA,CAAOI,CAAG,CAAA,CACnB,OAAOH,CAAAA,EAAU,QACnBM,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,MAAA,CAAOE,CAAOC,CAAAA,CAAI,CAE5CK,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,YAAA,CAAaE,CAAiBC,CAAAA,CAAI,EAEhE,CAAC,EACMK,CACT,CACA,MAAOD,CAAAA,CAAAA,CAA0B,CAC/B,OAAOP,CAAc,CAAA,MAAA,CAAOO,CAAK,CAAA,IAAA,CAAK,MAAM,CAC9C,CAEA,OAAO,UAAWA,CAAAA,CAAAA,CAA0B,EAG5C,OAAO,QAASA,CAAAA,CAAAA,CAA0B,CACxC,IAAMC,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,OAAQD,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACF,EAAKH,CAAK,CAAA,GAAM,CAC5CM,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,aAAA,CAAcE,CAAK,EAC/C,CAAC,CAAA,CACMM,CACT,CACA,OAAO,aAAA,CAAcN,EAAY,CAC/B,GAAI,KAAM,CAAA,OAAA,CAAQA,CAAK,CAAA,CAAG,CACxB,IAAMO,CAAQP,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAErB,OAAI,OAAOO,CAAU,EAAA,QAAA,EAAYA,EAAM,cAAe,CAAA,KAAK,CAAKA,EAAAA,CAAAA,CAAM,cAAe,CAAA,OAAO,CACnFP,CAAAA,CAAAA,CAAM,GAAKQ,CAAAA,CAAAA,EAAS,CAAGA,EAAAA,CAAAA,CAAK,GAAG,CAAA,CAAA,EAAIA,CAAK,CAAA,KAAK,EAAE,CAAE,CAAA,QAAA,EAEnDR,CAAAA,CAAAA,CAAM,QAAS,EACxB,CACA,OAAI,OAAOA,CAAAA,EAAU,QACZF,CAAAA,CAAAA,CAAc,QAASE,CAAAA,CAAK,CAE9B,CAAA,EAAA,CAAKA,CACd,CACF","file":"OptionHandler.js","sourcesContent":["export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n // 单纯就是扁平化\n static toFlatList(obj: Record<string, any>) {\n \n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  @tikkhun/cli-core
3
3
  */
4
- var i={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},y=["true",!0,"1",1],u=["false",!1,"",0],c=class s{constructor(r){this.schema=r;}static getTypeValue(r,t){return t===i.array?r.split(","):t===i.object?JSON.parse(r):t===i.keyValueArray?r?r.split(",").map(e=>{if(!e)return;let[n,o]=e.split("=");return {key:n,value:o}}).filter(e=>e):[]:t===i.number?Number(r):t===i.boolean?!!y.includes(r):r}static toType(r,t){let e={};return Object.entries(r).forEach(([n,o])=>{let a=t[n];typeof o=="object"?e[n]=s.toType(o,a):e[n]=s.getTypeValue(o,a);}),e}toType(r){return s.toType(r,this.schema)}static toString(r){let t={};return Object.entries(r).forEach(([e,n])=>{t[e]=s.toStringValue(n);}),t}static toStringValue(r){if(Array.isArray(r)){let t=r[0];return typeof t=="object"&&t.hasOwnProperty("key")&&t.hasOwnProperty("value")?r.map(e=>`${e.key}=${e.value}`).toString():r.toString()}return typeof r=="object"?s.toString(r):""+r}};
4
+ var i={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},y=["true",!0,"1",1],u=["false",!1,"",0],c=class s{constructor(r){this.schema=r;}static getTypeValue(r,t){return t===i.array?r.split(","):t===i.object?JSON.parse(r):t===i.keyValueArray?r?r.split(",").map(e=>{if(!e)return;let[n,o]=e.split("=");return {key:n,value:o}}).filter(e=>e):[]:t===i.number?Number(r):t===i.boolean?!!y.includes(r):r}static toType(r,t){let e={};return Object.entries(r).forEach(([n,o])=>{let a=t[n];typeof o=="object"?e[n]=s.toType(o,a):e[n]=s.getTypeValue(o,a);}),e}toType(r){return s.toType(r,this.schema)}static toFlatList(r){}static toString(r){let t={};return Object.entries(r).forEach(([e,n])=>{t[e]=s.toStringValue(n);}),t}static toStringValue(r){if(Array.isArray(r)){let t=r[0];return typeof t=="object"&&t.hasOwnProperty("key")&&t.hasOwnProperty("value")?r.map(e=>`${e.key}=${e.value}`).toString():r.toString()}return typeof r=="object"?s.toString(r):""+r}};
5
5
 
6
6
  export { c as OptionHandler, i as TYPES, u as asFalseValues, y as asTrueValues };
7
7
  //# sourceMappingURL=OptionHandler.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/OptionHandler.ts"],"names":["TYPES","asTrueValues","asFalseValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item"],"mappings":";;;AAAO,IAAMA,CAAQ,CAAA,CACnB,KAAO,CAAA,OAAA,CACP,aAAe,CAAA,eAAA,CACf,OAAS,CAAA,SAAA,CACT,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QAAA,CACR,MAAQ,CAAA,QACV,CAEaC,CAAAA,CAAAA,CAAe,CAAC,MAAA,CAAQ,CAAM,CAAA,CAAA,GAAA,CAAK,CAAC,CAAA,CACpCC,CAAgB,CAAA,CAAC,OAAS,CAAA,CAAA,CAAA,CAAO,GAAI,CAAC,CAAA,CACtCC,CAAN,CAAA,MAAMC,CAAc,CAEzB,WAAYC,CAAAA,CAAAA,CAA6B,CACvC,IAAA,CAAK,MAASA,CAAAA,EAChB,CACA,OAAO,YAAaC,CAAAA,CAAAA,CAAeC,CAAc,CAAA,CAC/C,OAAIA,CAAAA,GAASP,CAAM,CAAA,KAAA,CACVM,CAAM,CAAA,KAAA,CAAM,GAAG,CAAA,CAEpBC,CAASP,GAAAA,CAAAA,CAAM,MACV,CAAA,IAAA,CAAK,KAAMM,CAAAA,CAAK,EAErBC,CAASP,GAAAA,CAAAA,CAAM,aACZM,CAAAA,CAAAA,CACEA,CACJ,CAAA,KAAA,CAAM,GAAG,CAAA,CACT,GAAKE,CAAAA,CAAAA,EAAY,CAChB,GAAI,CAACA,CAAAA,CAAS,OACd,GAAM,CAACC,CAAAA,CAAKH,CAAK,CAAA,CAAIE,CAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CACtC,OAAO,CAAE,GAAAC,CAAAA,CAAAA,CAAK,KAAAH,CAAAA,CAAM,CACtB,CAAC,EACA,MAAQI,CAAAA,CAAAA,EAAMA,CAAC,CAAA,CARC,EAAC,CAUlBH,CAASP,GAAAA,CAAAA,CAAM,MACV,CAAA,MAAA,CAAOM,CAAK,CAAA,CAEjBC,CAASP,GAAAA,CAAAA,CAAM,OACb,CAAA,CAAA,CAAAC,CAAa,CAAA,QAAA,CAASK,CAAK,CAAA,CAG1BA,CACT,CACA,OAAO,MAAA,CAAOK,CAAsDN,CAAAA,CAAAA,CAA6B,CAC/F,IAAMO,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,QAAQD,CAAG,CAAA,CAAE,OAAQ,CAAA,CAAC,CAACF,CAAAA,CAAKH,CAAK,CAAA,GAAM,CAC5C,IAAMC,CAAOF,CAAAA,CAAAA,CAAOI,CAAG,CAAA,CACnB,OAAOH,CAAAA,EAAU,QACnBM,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,MAAA,CAAOE,CAAOC,CAAAA,CAAI,CAE5CK,CAAAA,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,YAAA,CAAaE,CAAiBC,CAAAA,CAAI,EAEhE,CAAC,CAAA,CACMK,CACT,CACA,MAAOD,CAAAA,CAAAA,CAA0B,CAC/B,OAAOP,CAAc,CAAA,MAAA,CAAOO,CAAK,CAAA,IAAA,CAAK,MAAM,CAC9C,CACA,OAAO,QAASA,CAAAA,CAAAA,CAA0B,CACxC,IAAMC,CAA4B,CAAA,EAClC,CAAA,OAAA,MAAA,CAAO,OAAQD,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACF,CAAKH,CAAAA,CAAK,IAAM,CAC5CM,CAAAA,CAAKH,CAAG,CAAA,CAAIL,CAAc,CAAA,aAAA,CAAcE,CAAK,EAC/C,CAAC,CAAA,CACMM,CACT,CACA,OAAO,aAAA,CAAcN,CAAY,CAAA,CAC/B,GAAI,KAAA,CAAM,OAAQA,CAAAA,CAAK,CAAG,CAAA,CACxB,IAAMO,CAAAA,CAAQP,CAAM,CAAA,CAAC,CAErB,CAAA,OAAI,OAAOO,CAAAA,EAAU,QAAYA,EAAAA,CAAAA,CAAM,eAAe,KAAK,CAAA,EAAKA,CAAM,CAAA,cAAA,CAAe,OAAO,CAAA,CACnFP,CAAM,CAAA,GAAA,CAAKQ,CAAS,EAAA,CAAA,EAAGA,CAAK,CAAA,GAAG,CAAIA,CAAAA,EAAAA,CAAAA,CAAK,KAAK,CAAA,CAAE,CAAE,CAAA,QAAA,EAEnDR,CAAAA,CAAAA,CAAM,QAAS,EACxB,CACA,OAAI,OAAOA,CAAAA,EAAU,QACZF,CAAAA,CAAAA,CAAc,QAASE,CAAAA,CAAK,CAE9B,CAAA,EAAA,CAAKA,CACd,CACF","file":"OptionHandler.mjs","sourcesContent":["export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n"]}
1
+ {"version":3,"sources":["../lib/OptionHandler.ts"],"names":["TYPES","asTrueValues","asFalseValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item"],"mappings":"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","file":"OptionHandler.mjs","sourcesContent":["export const TYPES = {\n array: 'array',\n keyValueArray: 'keyValueArray',\n boolean: 'boolean',\n number: 'number',\n object: 'object',\n string: 'string',\n select: 'select', // 几个中进行选择 选择一项\n} as const;\nexport type TYPES = keyof typeof TYPES;\nexport const asTrueValues = ['true', true, '1', 1];\nexport const asFalseValues = ['false', false, '', 0];\nexport class OptionHandler {\n schema: Record<string, any>;\n constructor(schema: Record<string, any>) {\n this.schema = schema;\n }\n static getTypeValue(value: string, type: string) {\n if (type === TYPES.array) {\n return value.split(',');\n }\n if (type === TYPES.object) {\n return JSON.parse(value);\n }\n if (type === TYPES.keyValueArray) {\n if (!value) return [];\n return value\n .split(',')\n .map((strItem) => {\n if (!strItem) return undefined;\n const [key, value] = strItem.split('=');\n return { key, value };\n })\n .filter((i) => i);\n }\n if (type === TYPES.number) {\n return Number(value);\n }\n if (type === TYPES.boolean) {\n if (asTrueValues.includes(value)) return true;\n return false;\n }\n return value;\n }\n static toType(obj: Record<string, string | Record<string, string>>, schema: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n const type = schema[key];\n if (typeof value === 'object') {\n _obj[key] = OptionHandler.toType(value, type);\n } else {\n _obj[key] = OptionHandler.getTypeValue(value as string, type);\n }\n });\n return _obj;\n }\n toType(obj: Record<string, any>) {\n return OptionHandler.toType(obj, this.schema);\n }\n // 单纯就是扁平化\n static toFlatList(obj: Record<string, any>) {\n \n }\n static toString(obj: Record<string, any>) {\n const _obj: Record<string, any> = {};\n Object.entries(obj).forEach(([key, value]) => {\n _obj[key] = OptionHandler.toStringValue(value);\n });\n return _obj;\n }\n static toStringValue(value: any) {\n if (Array.isArray(value)) {\n const item1 = value[0];\n // 有点魔法 key value 的值让他们用=表示\n if (typeof item1 === 'object' && item1.hasOwnProperty('key') && item1.hasOwnProperty('value')) {\n return value.map((item) => `${item.key}=${item.value}`).toString();\n }\n return value.toString();\n }\n if (typeof value === 'object') {\n return OptionHandler.toString(value);\n }\n return '' + value;\n }\n}\n"]}
@@ -1,8 +1,14 @@
1
1
  import { AbstractCommand, Action } from './command.interface.mjs';
2
2
  import { Command } from 'commander';
3
3
 
4
+ interface ArgsOption {
5
+ key: string;
6
+ value?: any;
7
+ type?: string;
8
+ }
4
9
  declare class ArgsCommand extends AbstractCommand {
5
10
  program: Command | undefined;
11
+ getOptions(): ArgsOption[];
6
12
  init(): void;
7
13
  private addOptions;
8
14
  private addAction;
@@ -1,8 +1,14 @@
1
1
  import { AbstractCommand, Action } from './command.interface.js';
2
2
  import { Command } from 'commander';
3
3
 
4
+ interface ArgsOption {
5
+ key: string;
6
+ value?: any;
7
+ type?: string;
8
+ }
4
9
  declare class ArgsCommand extends AbstractCommand {
5
10
  program: Command | undefined;
11
+ getOptions(): ArgsOption[];
6
12
  init(): void;
7
13
  private addOptions;
8
14
  private addAction;
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var utilsCore = require('@tikkhun/utils-core');
4
- var f = require('lodash');
4
+ var y = require('lodash');
5
5
  var commander = require('commander');
6
6
 
7
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
8
 
9
- var f__default = /*#__PURE__*/_interopDefault(f);
9
+ var y__default = /*#__PURE__*/_interopDefault(y);
10
10
 
11
11
  /**
12
12
  @tikkhun/cli-core
13
13
  */
14
- var e={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},g=["true",!0,"1",1];var a=class s{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===e.array?t.split(","):o===e.object?JSON.parse(t):o===e.keyValueArray?t?t.split(",").map(r=>{if(!r)return;let[n,i]=r.split("=");return {key:n,value:i}}).filter(r=>r):[]:o===e.number?Number(t):o===e.boolean?!!g.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([n,i])=>{let p=o[n];typeof i=="object"?r[n]=s.toType(i,p):r[n]=s.getTypeValue(i,p);}),r}toType(t){return s.toType(t,this.schema)}static toString(t){let o={};return Object.entries(t).forEach(([r,n])=>{o[r]=s.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?s.toString(t):""+t}};var{merge:y}=f__default.default,d=class d{constructor(t){this.options=y({},d.DEFAULT_OPTIONS,t),this.init();}};d.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var c=d;var {get:b}=f__default.default,m=class extends c{init(){this.program=this.options.program||commander.createCommand(),this.addOptions();}addOptions(){let t=a.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),r=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes});o.forEach(({key:n,value:i})=>{if(this.options.excludeOptions.includes(n))return;let p=r[n];this.program.option(`--${n} <${p}>`,b(this.options.optionTitles,n),i);});}addAction(t){this.program.action(o=>{let r=utilsCore.unflatJson({delimiter:".",data:o}),n=a.toType(r,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};
14
+ var e={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},m=["true",!0,"1",1];var a=class s{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===e.array?t.split(","):o===e.object?JSON.parse(t):o===e.keyValueArray?t?t.split(",").map(r=>{if(!r)return;let[n,i]=r.split("=");return {key:n,value:i}}).filter(r=>r):[]:o===e.number?Number(t):o===e.boolean?!!m.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([n,i])=>{let d=o[n];typeof i=="object"?r[n]=s.toType(i,d):r[n]=s.getTypeValue(i,d);}),r}toType(t){return s.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([r,n])=>{o[r]=s.toStringValue(n);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?s.toString(t):""+t}};var{merge:f}=y__default.default,c=class c{constructor(t){this.options=f({},c.DEFAULT_OPTIONS,t),this.init();}};c.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var p=c;var {get:b}=y__default.default,g=class extends p{getOptions(){let t=a.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),r=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes});return o.filter(({key:n})=>!this.options.excludeOptions.includes(n)).map(({key:n,value:i})=>({key:n,value:i,type:r[n]}))}init(){this.program=this.options.program||commander.createCommand();let t=this.getOptions();this.addOptions(t);}addOptions(t){t.forEach(({key:o,value:r,type:n})=>{this.program.option(`--${o} <${n}>`,b(this.options.optionTitles,o),r);});}addAction(t){this.program.action(o=>{let r=utilsCore.unflatJson({delimiter:".",data:o}),n=a.toType(r,this.options.optionTypes);t(n);});}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};
15
15
 
16
- exports.ArgsCommand = m;
16
+ exports.ArgsCommand = g;
17
17
  //# sourceMappingURL=ArgsCommand.js.map
18
18
  //# sourceMappingURL=ArgsCommand.js.map