@tikkhun/cli-core 0.0.7 → 0.0.9
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.
- package/README.md +6 -3
- package/dist/CommandManager.d.mts +6 -2
- package/dist/CommandManager.d.ts +6 -2
- package/dist/CommandManager.js +8 -6
- package/dist/CommandManager.js.map +1 -1
- package/dist/CommandManager.mjs +5 -3
- package/dist/CommandManager.mjs.map +1 -1
- package/dist/OptionHandler.d.mts +1 -0
- package/dist/OptionHandler.d.ts +1 -0
- package/dist/OptionHandler.js +1 -1
- package/dist/OptionHandler.js.map +1 -1
- package/dist/OptionHandler.mjs +1 -1
- package/dist/OptionHandler.mjs.map +1 -1
- package/dist/command/ArgsCommand.d.mts +7 -0
- package/dist/command/ArgsCommand.d.ts +7 -0
- package/dist/command/ArgsCommand.js +4 -4
- package/dist/command/ArgsCommand.js.map +1 -1
- package/dist/command/ArgsCommand.mjs +3 -3
- package/dist/command/ArgsCommand.mjs.map +1 -1
- package/dist/command/ConfigCommand.d.mts +12 -0
- package/dist/command/ConfigCommand.d.ts +12 -0
- package/dist/command/ConfigCommand.js +19 -0
- package/dist/command/ConfigCommand.js.map +1 -0
- package/dist/command/ConfigCommand.mjs +13 -0
- package/dist/command/ConfigCommand.mjs.map +1 -0
- package/dist/command/PromptsCommand.d.mts +10 -1
- package/dist/command/PromptsCommand.d.ts +10 -1
- package/dist/command/PromptsCommand.js +2 -2
- package/dist/command/PromptsCommand.js.map +1 -1
- package/dist/command/PromptsCommand.mjs +2 -2
- package/dist/command/PromptsCommand.mjs.map +1 -1
- package/dist/command/command.interface.d.mts +3 -0
- package/dist/command/command.interface.d.ts +3 -0
- package/dist/command/command.interface.js +2 -2
- package/dist/command/command.interface.js.map +1 -1
- package/dist/command/command.interface.mjs +2 -2
- package/dist/command/command.interface.mjs.map +1 -1
- package/dist/command/index.d.mts +1 -0
- package/dist/command/index.d.ts +1 -0
- package/dist/command/index.js +9 -6
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +5 -3
- package/dist/command/index.mjs.map +1 -1
- package/dist/command/utils.d.mts +2 -0
- package/dist/command/utils.d.ts +2 -0
- package/dist/command/utils.js +4 -0
- package/dist/command/utils.js.map +1 -0
- package/dist/command/utils.mjs +3 -0
- package/dist/command/utils.mjs.map +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/ArgsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","get","ArgsCommand","createCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","action","jsonOptions","unflatJson","typedOptions"],"mappings":"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","file":"ArgsCommand.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","import _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\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 version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\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","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n this.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 start(action: Action) {\n this.program!.action((stringOptions) => {\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n }).parse(process.argv);\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/ArgsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","get","ArgsCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","createCommand","action","jsonOptions","unflatJson","typedOptions"],"mappings":"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","file":"ArgsCommand.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","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","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"]}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { jsonToList, flatJson, unflatJson } from '@tikkhun/utils-core';
|
2
|
-
import
|
2
|
+
import y from 'lodash';
|
3
3
|
import { createCommand } from 'commander';
|
4
4
|
|
5
5
|
/**
|
6
6
|
@tikkhun/cli-core
|
7
7
|
*/
|
8
|
-
var e={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},
|
8
|
+
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,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,g=class extends p{getOptions(){let t=a.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),r=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||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=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);}};
|
9
9
|
|
10
|
-
export {
|
10
|
+
export { g as ArgsCommand };
|
11
11
|
//# sourceMappingURL=ArgsCommand.mjs.map
|
12
12
|
//# sourceMappingURL=ArgsCommand.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/ArgsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","get","ArgsCommand","createCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","action","jsonOptions","unflatJson","typedOptions"],"mappings":"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","file":"ArgsCommand.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","import _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\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 version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\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","import { flatJson, jsonToList, unflatJson } from '@tikkhun/utils-core';\nimport { OptionHandler } from '../OptionHandler';\nimport { AbstractCommand, Action } from './command.interface';\nimport { Command, createCommand } from 'commander';\nimport _ from 'lodash';\nconst { get } = _;\nexport class ArgsCommand extends AbstractCommand {\n program: Command | undefined;\n init(): void {\n this.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 start(action: Action) {\n this.program!.action((stringOptions) => {\n const jsonOptions = unflatJson({\n delimiter: '.',\n data: stringOptions,\n });\n const typedOptions = OptionHandler.toType(jsonOptions, this.options.optionTypes);\n action(typedOptions);\n }).parse(process.argv);\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/ArgsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","get","ArgsCommand","stringOptions","optionList","jsonToList","optionTypeMap","flatJson","createCommand","action","jsonOptions","unflatJson","typedOptions"],"mappings":"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","file":"ArgsCommand.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","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","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"]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AbstractCommand, Action } from './command.interface.mjs';
|
2
|
+
import { Command } from 'commander';
|
3
|
+
|
4
|
+
declare class ConfigCommand extends AbstractCommand {
|
5
|
+
program: Command | undefined;
|
6
|
+
init(): void;
|
7
|
+
private addOptions;
|
8
|
+
private addAction;
|
9
|
+
start(action: Action): void;
|
10
|
+
}
|
11
|
+
|
12
|
+
export { ConfigCommand };
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AbstractCommand, Action } from './command.interface.js';
|
2
|
+
import { Command } from 'commander';
|
3
|
+
|
4
|
+
declare class ConfigCommand extends AbstractCommand {
|
5
|
+
program: Command | undefined;
|
6
|
+
init(): void;
|
7
|
+
private addOptions;
|
8
|
+
private addAction;
|
9
|
+
start(action: Action): void;
|
10
|
+
}
|
11
|
+
|
12
|
+
export { ConfigCommand };
|
@@ -0,0 +1,19 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var l = require('lodash');
|
4
|
+
var commander = require('commander');
|
5
|
+
var fsExtra = require('fs-extra');
|
6
|
+
var path = require('path');
|
7
|
+
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
9
|
+
|
10
|
+
var l__default = /*#__PURE__*/_interopDefault(l);
|
11
|
+
|
12
|
+
/**
|
13
|
+
@tikkhun/cli-core
|
14
|
+
*/
|
15
|
+
var m=(e,o,t)=>new Promise((c,i)=>{var f=r=>{try{a(t.next(r));}catch(p){i(p);}},g=r=>{try{a(t.throw(r));}catch(p){i(p);}},a=r=>r.done?c(r.value):Promise.resolve(r.value).then(f,g);a((t=t.apply(e,o)).next());});var{merge:O}=l__default.default,s=class s{constructor(o){this.options=O({},s.DEFAULT_OPTIONS,o),this.init();}};s.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var n=s;var d=class extends n{init(){var o;this.program=((o=this.options.program)==null?void 0:o.command("config"))||commander.createCommand(),this.addOptions();}addOptions(){var o;(o=this.program)==null||o.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",path.join(process.cwd(),"release.json"));}addAction(o){this.program.action(c=>m(this,[c],function*({config:t=""}){let i;if(t.endsWith(".js")?i=yield import(t):t.endsWith(".json")&&(i=yield fsExtra.readJson(t)),!i)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${t}`);o(i);}));}start(o){this.addAction(o),this.options.program||this.program.parse(process.argv);}};
|
16
|
+
|
17
|
+
exports.ConfigCommand = d;
|
18
|
+
//# sourceMappingURL=ConfigCommand.js.map
|
19
|
+
//# sourceMappingURL=ConfigCommand.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../lib/command/command.interface.ts","../../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","ConfigCommand","_a","createCommand","join","action","_0","__async","config","readJson"],"mappings":";;;;;;;;;;;;;;AACA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,CACA,GAAM,CAAE,KAAAA,CAAAA,CAAM,EAAIC,kBAcIC,CAAAA,CAAAA,CAAf,MAAeA,CAAgB,CAYpC,WAAYC,CAAAA,CAAAA,CAAmC,CAE7C,IAAK,CAAA,OAAA,CAAUH,EAAM,EAAC,CAAGE,CAAgB,CAAA,eAAA,CAAiBC,CAAO,CACjE,CAAA,IAAA,CAAK,OACP,CAGF,EAnBsBD,CACJ,CAAA,eAAA,CAAkC,CAChD,OAAS,CAAA,KAAA,CAAA,CACT,QAAS,EACT,CAAA,WAAA,CAAa,GACb,cAAgB,CAAA,GAChB,cAAgB,CAAA,EAChB,CAAA,WAAA,CAAa,EACb,CAAA,YAAA,CAAc,EAChB,CAAA,CATK,IAAeE,CAAfF,CAAAA,CAAAA,CCTMG,IAAAA,CAAAA,CAAN,cAA4BD,CAAgB,CAEjD,MAAa,CATf,IAAAE,EAWI,IAAK,CAAA,OAAA,CAAA,CAAA,CAAUA,EAAA,IAAK,CAAA,OAAA,CAAQ,UAAb,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAsB,QAAQ,QAAaC,CAAAA,GAAAA,uBAAAA,GAC1D,IAAK,CAAA,UAAA,GACP,CACQ,YAAa,CAdvB,IAAAD,GAeIA,CAAA,CAAA,IAAA,CAAK,UAAL,IAAAA,EAAAA,CAAAA,CAAc,MAAO,CAAA,sBAAA,CAAwB,2BAAQE,SAAK,CAAA,OAAA,CAAQ,KAAO,CAAA,cAAc,GACzF,CACQ,SAAA,CAAUC,CAAgB,CAAA,CAChC,KAAK,OAAS,CAAA,MAAA,CAAcC,GAAoBC,CAAA,CAAA,IAAA,CAAA,CAApBD,GAAoB,UAApB,CAAE,OAAAE,CAAS,CAAA,EAAG,EAAM,CAC9C,IAAIT,EAMJ,GALIS,CAAAA,CAAO,SAAS,KAAK,CAAA,CACvBT,CAAU,CAAA,MAAM,OAAOS,CACdA,CAAAA,CAAAA,CAAAA,CAAO,SAAS,OAAO,CAAA,GAChCT,EAAU,MAAMU,gBAAAA,CAASD,CAAM,CAE7B,CAAA,CAAA,CAACT,EACH,MAAM,IAAI,MAAM,CAAaS,4DAAAA,EAAAA,CAAM,EAAE,CAGvCH,CAAAA,CAAAA,CAAON,CAAO,EAChB,EAAC,EACH,CACA,MAAMM,CAAgB,CAAA,CACpB,KAAK,SAAUA,CAAAA,CAAM,EAChB,IAAK,CAAA,OAAA,CAAQ,SAChB,IAAK,CAAA,OAAA,CAAS,MAAM,OAAQ,CAAA,IAAI,EAEpC,CACF","file":"ConfigCommand.js","sourcesContent":["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","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"]}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import l from 'lodash';
|
2
|
+
import { createCommand } from 'commander';
|
3
|
+
import { readJson } from 'fs-extra';
|
4
|
+
import { join } from 'path';
|
5
|
+
|
6
|
+
/**
|
7
|
+
@tikkhun/cli-core
|
8
|
+
*/
|
9
|
+
var m=(e,o,t)=>new Promise((c,i)=>{var f=r=>{try{a(t.next(r));}catch(p){i(p);}},g=r=>{try{a(t.throw(r));}catch(p){i(p);}},a=r=>r.done?c(r.value):Promise.resolve(r.value).then(f,g);a((t=t.apply(e,o)).next());});var{merge:O}=l,s=class s{constructor(o){this.options=O({},s.DEFAULT_OPTIONS,o),this.init();}};s.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var n=s;var d=class extends n{init(){var o;this.program=((o=this.options.program)==null?void 0:o.command("config"))||createCommand(),this.addOptions();}addOptions(){var o;(o=this.program)==null||o.option("-c --config <string>","\u914D\u7F6E\u6587\u4EF6",join(process.cwd(),"release.json"));}addAction(o){this.program.action(c=>m(this,[c],function*({config:t=""}){let i;if(t.endsWith(".js")?i=yield import(t):t.endsWith(".json")&&(i=yield readJson(t)),!i)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${t}`);o(i);}));}start(o){this.addAction(o),this.options.program||this.program.parse(process.argv);}};
|
10
|
+
|
11
|
+
export { d as ConfigCommand };
|
12
|
+
//# sourceMappingURL=ConfigCommand.mjs.map
|
13
|
+
//# sourceMappingURL=ConfigCommand.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../lib/command/command.interface.ts","../../lib/command/ConfigCommand.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand","ConfigCommand","_a","createCommand","join","action","_0","__async","config","readJson"],"mappings":";;;;;;;;AACA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,CACA,GAAM,CAAE,KAAAA,CAAAA,CAAM,EAAIC,CAcIC,CAAAA,CAAAA,CAAf,MAAeA,CAAgB,CAYpC,WAAYC,CAAAA,CAAAA,CAAmC,CAE7C,IAAK,CAAA,OAAA,CAAUH,EAAM,EAAC,CAAGE,CAAgB,CAAA,eAAA,CAAiBC,CAAO,CACjE,CAAA,IAAA,CAAK,OACP,CAGF,EAnBsBD,CACJ,CAAA,eAAA,CAAkC,CAChD,OAAS,CAAA,KAAA,CAAA,CACT,QAAS,EACT,CAAA,WAAA,CAAa,GACb,cAAgB,CAAA,GAChB,cAAgB,CAAA,EAChB,CAAA,WAAA,CAAa,EACb,CAAA,YAAA,CAAc,EAChB,CAAA,CATK,IAAeE,CAAfF,CAAAA,CAAAA,CCTMG,IAAAA,CAAAA,CAAN,cAA4BD,CAAgB,CAEjD,MAAa,CATf,IAAAE,EAWI,IAAK,CAAA,OAAA,CAAA,CAAA,CAAUA,EAAA,IAAK,CAAA,OAAA,CAAQ,UAAb,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAsB,QAAQ,QAAaC,CAAAA,GAAAA,aAAAA,GAC1D,IAAK,CAAA,UAAA,GACP,CACQ,YAAa,CAdvB,IAAAD,GAeIA,CAAA,CAAA,IAAA,CAAK,UAAL,IAAAA,EAAAA,CAAAA,CAAc,MAAO,CAAA,sBAAA,CAAwB,2BAAQE,IAAK,CAAA,OAAA,CAAQ,KAAO,CAAA,cAAc,GACzF,CACQ,SAAA,CAAUC,CAAgB,CAAA,CAChC,KAAK,OAAS,CAAA,MAAA,CAAcC,GAAoBC,CAAA,CAAA,IAAA,CAAA,CAApBD,GAAoB,UAApB,CAAE,OAAAE,CAAS,CAAA,EAAG,EAAM,CAC9C,IAAIT,EAMJ,GALIS,CAAAA,CAAO,SAAS,KAAK,CAAA,CACvBT,CAAU,CAAA,MAAM,OAAOS,CACdA,CAAAA,CAAAA,CAAAA,CAAO,SAAS,OAAO,CAAA,GAChCT,EAAU,MAAMU,QAAAA,CAASD,CAAM,CAE7B,CAAA,CAAA,CAACT,EACH,MAAM,IAAI,MAAM,CAAaS,4DAAAA,EAAAA,CAAM,EAAE,CAGvCH,CAAAA,CAAAA,CAAON,CAAO,EAChB,EAAC,EACH,CACA,MAAMM,CAAgB,CAAA,CACpB,KAAK,SAAUA,CAAAA,CAAM,EAChB,IAAK,CAAA,OAAA,CAAQ,SAChB,IAAK,CAAA,OAAA,CAAS,MAAM,OAAQ,CAAA,IAAI,EAEpC,CACF","file":"ConfigCommand.mjs","sourcesContent":["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","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,10 +1,19 @@
|
|
1
1
|
import { TYPES } from '../OptionHandler.mjs';
|
2
2
|
import { AbstractCommand, Action } from './command.interface.mjs';
|
3
|
+
import 'commander';
|
3
4
|
|
4
5
|
declare class PromptsCommand extends AbstractCommand {
|
5
|
-
|
6
|
+
command: any;
|
7
|
+
optionHandler: any;
|
8
|
+
getOptions(): {
|
9
|
+
key: string;
|
10
|
+
defaultValue: any;
|
11
|
+
type: any;
|
12
|
+
title: any;
|
13
|
+
}[];
|
6
14
|
init(): void;
|
7
15
|
private getActionResult;
|
16
|
+
private actionHandler;
|
8
17
|
start(action: Action): Promise<void>;
|
9
18
|
}
|
10
19
|
interface GetActionResultOptions {
|
@@ -1,10 +1,19 @@
|
|
1
1
|
import { TYPES } from '../OptionHandler.js';
|
2
2
|
import { AbstractCommand, Action } from './command.interface.js';
|
3
|
+
import 'commander';
|
3
4
|
|
4
5
|
declare class PromptsCommand extends AbstractCommand {
|
5
|
-
|
6
|
+
command: any;
|
7
|
+
optionHandler: any;
|
8
|
+
getOptions(): {
|
9
|
+
key: string;
|
10
|
+
defaultValue: any;
|
11
|
+
type: any;
|
12
|
+
title: any;
|
13
|
+
}[];
|
6
14
|
init(): void;
|
7
15
|
private getActionResult;
|
16
|
+
private actionHandler;
|
8
17
|
start(action: Action): Promise<void>;
|
9
18
|
}
|
10
19
|
interface GetActionResultOptions {
|
@@ -11,8 +11,8 @@ var S__default = /*#__PURE__*/_interopDefault(S);
|
|
11
11
|
/**
|
12
12
|
@tikkhun/cli-core
|
13
13
|
*/
|
14
|
-
var
|
14
|
+
var m=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var g=(e,t)=>{var o={};for(var n in e)h.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&m)for(var n of m(e))t.indexOf(n)<0&&b.call(e,n)&&(o[n]=e[n]);return o};var c=(e,t,o)=>new Promise((n,i)=>{var r=a=>{try{f(o.next(a));}catch(u){i(u);}},s=a=>{try{f(o.throw(a));}catch(u){i(u);}},f=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,s);f((o=o.apply(e,t)).next());});var p={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},R=["true",!0,"1",1];var d=class e{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===p.array?t.split(","):o===p.object?JSON.parse(t):o===p.keyValueArray?t?t.split(",").map(n=>{if(!n)return;let[i,r]=n.split("=");return {key:i,value:r}}).filter(n=>n):[]:o===p.number?Number(t):o===p.boolean?!!R.includes(t):t}static toType(t,o){let n={};return Object.entries(t).forEach(([i,r])=>{let s=o[i];typeof r=="object"?n[i]=e.toType(r,s):n[i]=e.getTypeValue(r,s);}),n}toType(t){return e.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([n,i])=>{o[n]=e.toStringValue(i);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(n=>`${n.key}=${n.value}`).toString():t.toString()}return typeof t=="object"?e.toString(t):""+t}};var{merge:A}=S__default.default,y=class y{constructor(t){this.options=A({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var l=y;var T=class extends l{getOptions(){let t=d.toString(this.options.defaultOptions),o=utilsCore.jsonToList({delimiter:".",json:t}),n=utilsCore.flatJson({delimiter:".",data:this.options.optionTypes}),i=utilsCore.flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:r,value:s})=>({key:r,defaultValue:s,type:n[r],title:i[r]}))}init(){let t=this.getOptions();this.optionHandler=()=>c(this,null,function*(){let o={};for(let{key:n,defaultValue:i,type:r,title:s}of t)r&&s&&(o[n]=(yield this.getActionResult({type:r,message:s,default:i}))||i);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return c(this,null,function*(){let i=t,n=g(i,["type"]);return yield prompts.input(n)})}actionHandler(t){return c(this,null,function*(){let o=yield this.optionHandler(),n=utilsCore.unflatJson({delimiter:".",data:o}),i=d.toType(n,this.options.optionTypes);t(i);})}start(t){return c(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};
|
15
15
|
|
16
|
-
exports.PromptsCommand =
|
16
|
+
exports.PromptsCommand = T;
|
17
17
|
//# sourceMappingURL=PromptsCommand.js.map
|
18
18
|
//# sourceMappingURL=PromptsCommand.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/PromptsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","PromptsCommand","defaultOptionList","jsonToList","flattedOptionType","flatJson","flattedOptionTitle","__async","result","defaultValue","title","_a","opts","__objRest","input","action","unflattedOptions","unflatJson","typedResults"],"mappings":"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","file":"PromptsCommand.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","import _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\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 version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\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","/**\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';\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 program: 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.program = 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 }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n async start(action: Action) {\n const options = await this.program();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n"]}
|
1
|
+
{"version":3,"sources":["../../lib/command/PromptsCommand.ts","../../lib/OptionHandler.ts","../../lib/command/command.interface.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","jsonToList","flattedOptionTypeList","flatJson","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","action","unflattedOptions","unflatJson","typedResults"],"mappings":"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","file":"PromptsCommand.js","sourcesContent":["/**\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","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 { 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"]}
|
@@ -5,8 +5,8 @@ import S from 'lodash';
|
|
5
5
|
/**
|
6
6
|
@tikkhun/cli-core
|
7
7
|
*/
|
8
|
-
var
|
8
|
+
var m=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var g=(e,t)=>{var o={};for(var n in e)h.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&m)for(var n of m(e))t.indexOf(n)<0&&b.call(e,n)&&(o[n]=e[n]);return o};var c=(e,t,o)=>new Promise((n,i)=>{var r=a=>{try{f(o.next(a));}catch(u){i(u);}},s=a=>{try{f(o.throw(a));}catch(u){i(u);}},f=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,s);f((o=o.apply(e,t)).next());});var p={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},R=["true",!0,"1",1];var d=class e{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===p.array?t.split(","):o===p.object?JSON.parse(t):o===p.keyValueArray?t?t.split(",").map(n=>{if(!n)return;let[i,r]=n.split("=");return {key:i,value:r}}).filter(n=>n):[]:o===p.number?Number(t):o===p.boolean?!!R.includes(t):t}static toType(t,o){let n={};return Object.entries(t).forEach(([i,r])=>{let s=o[i];typeof r=="object"?n[i]=e.toType(r,s):n[i]=e.getTypeValue(r,s);}),n}toType(t){return e.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([n,i])=>{o[n]=e.toStringValue(i);}),o}static toStringValue(t){if(Array.isArray(t)){let o=t[0];return typeof o=="object"&&o.hasOwnProperty("key")&&o.hasOwnProperty("value")?t.map(n=>`${n.key}=${n.value}`).toString():t.toString()}return typeof t=="object"?e.toString(t):""+t}};var{merge:A}=S,y=class y{constructor(t){this.options=A({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var l=y;var T=class extends l{getOptions(){let t=d.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),n=flatJson({delimiter:".",data:this.options.optionTypes}),i=flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:r,value:s})=>({key:r,defaultValue:s,type:n[r],title:i[r]}))}init(){let t=this.getOptions();this.optionHandler=()=>c(this,null,function*(){let o={};for(let{key:n,defaultValue:i,type:r,title:s}of t)r&&s&&(o[n]=(yield this.getActionResult({type:r,message:s,default:i}))||i);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return c(this,null,function*(){let i=t,n=g(i,["type"]);return yield input(n)})}actionHandler(t){return c(this,null,function*(){let o=yield this.optionHandler(),n=unflatJson({delimiter:".",data:o}),i=d.toType(n,this.options.optionTypes);t(i);})}start(t){return c(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};
|
9
9
|
|
10
|
-
export {
|
10
|
+
export { T as PromptsCommand };
|
11
11
|
//# sourceMappingURL=PromptsCommand.mjs.map
|
12
12
|
//# sourceMappingURL=PromptsCommand.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/OptionHandler.ts","../../lib/command/command.interface.ts","../../lib/command/PromptsCommand.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","PromptsCommand","defaultOptionList","jsonToList","flattedOptionType","flatJson","flattedOptionTitle","__async","result","defaultValue","title","_a","opts","__objRest","input","action","unflattedOptions","unflatJson","typedResults"],"mappings":";;;;;;;qeAAO,IAAMA,EAAQ,CACnB,KAAA,CAAO,OACP,CAAA,aAAA,CAAe,eACf,CAAA,OAAA,CAAS,SACT,CAAA,MAAA,CAAQ,QACR,CAAA,MAAA,CAAQ,QACR,CAAA,MAAA,CAAQ,QACR,CAAA,MAAA,CAAQ,QACV,CAEaC,CAAAA,CAAAA,CAAe,CAAC,MAAA,CAAQ,CAAM,CAAA,CAAA,GAAA,CAAK,CAAC,CAAA,CAE1C,IAAMC,CAAAA,CAAN,MAAMC,CAAc,CAEzB,WAAA,CAAYC,EAA6B,CACvC,IAAA,CAAK,MAASA,CAAAA,EAChB,CACA,OAAO,YAAaC,CAAAA,CAAAA,CAAeC,CAAc,CAAA,CAC/C,OAAIA,CAAAA,GAASN,CAAM,CAAA,KAAA,CACVK,EAAM,KAAM,CAAA,GAAG,CAEpBC,CAAAA,CAAAA,GAASN,CAAM,CAAA,MAAA,CACV,KAAK,KAAMK,CAAAA,CAAK,CAErBC,CAAAA,CAAAA,GAASN,CAAM,CAAA,aAAA,CACZK,EACEA,CACJ,CAAA,KAAA,CAAM,GAAG,CAAA,CACT,GAAKE,CAAAA,CAAAA,EAAY,CAChB,GAAI,CAACA,CAAAA,CAAS,OACd,GAAM,CAACC,CAAAA,CAAKH,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,GAASN,CAAM,CAAA,MAAA,CACV,MAAOK,CAAAA,CAAK,CAEjBC,CAAAA,CAAAA,GAASN,CAAM,CAAA,OAAA,CACb,EAAAC,CAAa,CAAA,QAAA,CAASI,CAAK,CAAA,CAG1BA,CACT,CACA,OAAO,MAAOK,CAAAA,CAAAA,CAAsDN,CAA6B,CAAA,CAC/F,IAAMO,CAAAA,CAA4B,EAClC,CAAA,OAAA,MAAA,CAAO,OAAQD,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACF,CAAKH,CAAAA,CAAK,CAAM,GAAA,CAC5C,IAAMC,CAAAA,CAAOF,EAAOI,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,CAAIL,CAAAA,CAAAA,CAAc,YAAaE,CAAAA,CAAAA,CAAiBC,CAAI,EAEhE,CAAC,CAAA,CACMK,CACT,CACA,MAAOD,CAAAA,CAAAA,CAA0B,CAC/B,OAAOP,EAAc,MAAOO,CAAAA,CAAAA,CAAK,IAAK,CAAA,MAAM,CAC9C,CACA,OAAO,QAAA,CAASA,CAA0B,CAAA,CACxC,IAAMC,CAAAA,CAA4B,EAAC,CACnC,cAAO,OAAQD,CAAAA,CAAG,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACF,CAAKH,CAAAA,CAAK,CAAM,GAAA,CAC5CM,CAAKH,CAAAA,CAAG,CAAIL,CAAAA,CAAAA,CAAc,cAAcE,CAAK,EAC/C,CAAC,CAAA,CACMM,CACT,CACA,OAAO,aAAA,CAAcN,CAAY,CAAA,CAC/B,GAAI,KAAA,CAAM,OAAQA,CAAAA,CAAK,EAAG,CACxB,IAAMO,CAAQP,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAErB,OAAI,OAAOO,CAAU,EAAA,QAAA,EAAYA,CAAM,CAAA,cAAA,CAAe,KAAK,CAAA,EAAKA,EAAM,cAAe,CAAA,OAAO,CACnFP,CAAAA,CAAAA,CAAM,GAAKQ,CAAAA,CAAAA,EAAS,GAAGA,CAAK,CAAA,GAAG,CAAIA,CAAAA,EAAAA,CAAAA,CAAK,KAAK,CAAA,CAAE,EAAE,QAAS,EAAA,CAE5DR,CAAM,CAAA,QAAA,EACf,CACA,OAAI,OAAOA,CAAU,EAAA,QAAA,CACZF,CAAc,CAAA,QAAA,CAASE,CAAK,CAAA,CAE9B,GAAKA,CACd,CACF,CChFA,CACA,GAAM,CAAE,KAAAS,CAAAA,CAAM,CAAIC,CAAAA,CAAAA,CAaIC,CAAf,CAAA,MAAeA,CAAgB,CAWpC,WAAA,CAAYC,CAAmC,CAAA,CAC7C,IAAK,CAAA,OAAA,CAAUH,CAAM,CAAA,EAAIE,CAAAA,CAAAA,CAAgB,eAAiBC,CAAAA,CAAO,CACjE,CAAA,IAAA,CAAK,OACP,CAGF,CAjBsBD,CAAAA,CAAAA,CACJ,eAAkC,CAAA,CAChD,QAAS,EACT,CAAA,WAAA,CAAa,EACb,CAAA,cAAA,CAAgB,EAAC,CACjB,eAAgB,EAAC,CACjB,WAAa,CAAA,EACb,CAAA,YAAA,CAAc,EAChB,CARK,CAAA,IAAeE,CAAfF,CAAAA,CAAAA,CCUMG,IAAAA,CAAAA,CAAN,cAA6BD,CAAgB,CAElD,IAAO,EAAA,CACL,IAAME,CAAAA,CAAoBC,UAAW,CAAA,CAAE,SAAW,CAAA,GAAA,CAAK,IAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,cAAe,CAAC,CACpFC,CAAAA,CAAAA,CAAoBC,QAAS,CAAA,CACjC,SAAW,CAAA,GAAA,CACX,IAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,WACrB,CAAC,CAAA,CACKC,CAAqBD,CAAAA,QAAAA,CAAS,CAClC,SAAW,CAAA,GAAA,CACX,IAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,YACrB,CAAC,CACD,CAAA,IAAA,CAAK,OAAU,CAAA,IAAYE,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACzB,IAAMC,CAA8B,CAAA,EACpC,CAAA,IAAA,GAAW,CAAE,GAAA,CAAAlB,CAAK,CAAA,KAAA,CAAOmB,CAAa,CAAA,GAAKP,CAAmB,CAAA,CAC5D,IAAMd,CAAAA,CAAOgB,EAAkBd,CAAG,CAAA,CAClC,GAAI,CAACF,CACH,CAAA,SAEF,IAAMsB,CAAAA,CAAQJ,CAAmBhB,CAAAA,CAAG,CAC/BoB,CAAAA,CAAAA,GAGLF,CAAOlB,CAAAA,CAAG,GAAK,MAAM,IAAA,CAAK,eAAgB,CAAA,CAAE,IAAAF,CAAAA,CAAAA,CAAM,OAASsB,CAAAA,CAAAA,CAAO,OAASD,CAAAA,CAAa,CAAC,CAAA,GAAMA,CACjG,EAAA,CACA,OAAOD,CACT,CAAA,EACF,CACc,eAAA,CAAgBT,CAAiC,CAAA,CAAA,OAAAQ,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACnCI,IAAAA,CAAAA,CAAAZ,CAAlB,CAASa,CAAAC,CAAAA,CAAAA,CAASF,CAAT,CAAA,CAAT,MACR,CAAA,EAAA,OAAO,MAAMG,KAAAA,CAAMF,CAAI,CACzB,CACM,CAAA,CAAA,KAAA,CAAMG,CAAgB,CAAA,CAAA,OAAAR,EAAA,IAC1B,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMR,CAAU,CAAA,MAAM,IAAK,CAAA,OAAA,EACrBiB,CAAAA,CAAAA,CAAmBC,UAAW,CAAA,CAAE,SAAW,CAAA,GAAA,CAAK,IAAMlB,CAAAA,CAAQ,CAAC,CAC/DmB,CAAAA,CAAAA,CAAelC,CAAc,CAAA,MAAA,CAAOgC,CAAkB,CAAA,IAAA,CAAK,OAAQ,CAAA,WAAW,CACpFD,CAAAA,CAAAA,CAAOG,CAAY,EACrB,CACF,CAAA,CAAA","file":"PromptsCommand.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","import _ from 'lodash';\nconst { merge } = _;\nexport interface Action {\n (options: any): void;\n}\nexport interface CommandOptions {\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 version: '',\n description: '',\n defaultOptions: {},\n excludeOptions: [],\n optionTypes: {},\n optionTitles: {},\n };\n\n options: CommandOptions;\n constructor(options?: Partial<CommandOptions>) {\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","/**\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';\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 program: 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.program = 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 }\n private async getActionResult(options: GetActionResultOptions) {\n const { type, ...opts } = options;\n return await input(opts);\n }\n async start(action: Action) {\n const options = await this.program();\n const unflattedOptions = unflatJson({ delimiter: '.', data: options });\n const typedResults = OptionHandler.toType(unflattedOptions, this.options.optionTypes);\n action(typedResults);\n }\n}\n\nexport interface GetActionResultOptions {\n type: TYPES;\n message: string;\n default: any;\n}\n"]}
|
1
|
+
{"version":3,"sources":["../../lib/command/PromptsCommand.ts","../../lib/OptionHandler.ts","../../lib/command/command.interface.ts"],"names":["TYPES","asTrueValues","OptionHandler","_OptionHandler","schema","value","type","strItem","key","i","obj","_obj","item1","item","merge","_","_AbstractCommand","options","AbstractCommand","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","jsonToList","flattedOptionTypeList","flatJson","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","action","unflattedOptions","unflatJson","typedResults"],"mappings":"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","file":"PromptsCommand.mjs","sourcesContent":["/**\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","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 { 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"]}
|
@@ -9,8 +9,8 @@ var n__default = /*#__PURE__*/_interopDefault(n);
|
|
9
9
|
/**
|
10
10
|
@tikkhun/cli-core
|
11
11
|
*/
|
12
|
-
var{merge:s}=n__default.default,
|
12
|
+
var{merge:s}=n__default.default,o=class o{constructor(i){this.options=s({},o.DEFAULT_OPTIONS,i),this.init();}};o.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var t=o;
|
13
13
|
|
14
|
-
exports.AbstractCommand =
|
14
|
+
exports.AbstractCommand = t;
|
15
15
|
//# sourceMappingURL=command.interface.js.map
|
16
16
|
//# sourceMappingURL=command.interface.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/command/command.interface.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand"],"mappings":";;;;;;;;;;;
|
1
|
+
{"version":3,"sources":["../../lib/command/command.interface.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand"],"mappings":";;;;;;;;;;;AAEA,GAAM,CAAE,KAAA,CAAAA,CAAM,CAAIC,CAAAA,kBAAAA,CAcIC,CAAf,CAAA,MAAeA,CAAgB,CAYpC,YAAYC,CAAmC,CAAA,CAE7C,IAAK,CAAA,OAAA,CAAUH,CAAM,CAAA,GAAIE,CAAgB,CAAA,eAAA,CAAiBC,CAAO,CAAA,CACjE,IAAK,CAAA,IAAA,GACP,CAGF,CAAA,CAnBsBD,CACJ,CAAA,eAAA,CAAkC,CAChD,OAAA,CAAS,OACT,OAAS,CAAA,EAAA,CACT,WAAa,CAAA,EAAA,CACb,cAAgB,CAAA,GAChB,cAAgB,CAAA,EAChB,CAAA,WAAA,CAAa,EAAC,CACd,aAAc,EAChB,CATK,CAAA,IAAeE,CAAfF,CAAAA","file":"command.interface.js","sourcesContent":["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"]}
|
@@ -3,8 +3,8 @@ import n from 'lodash';
|
|
3
3
|
/**
|
4
4
|
@tikkhun/cli-core
|
5
5
|
*/
|
6
|
-
var{merge:s}=n,
|
6
|
+
var{merge:s}=n,o=class o{constructor(i){this.options=s({},o.DEFAULT_OPTIONS,i),this.init();}};o.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var t=o;
|
7
7
|
|
8
|
-
export {
|
8
|
+
export { t as AbstractCommand };
|
9
9
|
//# sourceMappingURL=command.interface.mjs.map
|
10
10
|
//# sourceMappingURL=command.interface.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../lib/command/command.interface.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand"],"mappings":";;;;;
|
1
|
+
{"version":3,"sources":["../../lib/command/command.interface.ts"],"names":["merge","_","_AbstractCommand","options","AbstractCommand"],"mappings":";;;;;AAEA,GAAM,CAAE,KAAA,CAAAA,CAAM,CAAIC,CAAAA,CAAAA,CAcIC,CAAf,CAAA,MAAeA,CAAgB,CAYpC,YAAYC,CAAmC,CAAA,CAE7C,IAAK,CAAA,OAAA,CAAUH,CAAM,CAAA,GAAIE,CAAgB,CAAA,eAAA,CAAiBC,CAAO,CAAA,CACjE,IAAK,CAAA,IAAA,GACP,CAGF,CAAA,CAnBsBD,CACJ,CAAA,eAAA,CAAkC,CAChD,OAAA,CAAS,OACT,OAAS,CAAA,EAAA,CACT,WAAa,CAAA,EAAA,CACb,cAAgB,CAAA,GAChB,cAAgB,CAAA,EAChB,CAAA,WAAA,CAAa,EAAC,CACd,aAAc,EAChB,CATK,CAAA,IAAeE,CAAfF,CAAAA","file":"command.interface.mjs","sourcesContent":["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"]}
|
package/dist/command/index.d.mts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
export { ArgsCommand } from './ArgsCommand.mjs';
|
2
2
|
export { GetActionResultOptions, PromptsCommand } from './PromptsCommand.mjs';
|
3
3
|
export { AbstractCommand, Action, CommandOptions } from './command.interface.mjs';
|
4
|
+
export { ConfigCommand } from './ConfigCommand.mjs';
|
4
5
|
import 'commander';
|
5
6
|
import '../OptionHandler.mjs';
|
package/dist/command/index.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
export { ArgsCommand } from './ArgsCommand.js';
|
2
2
|
export { GetActionResultOptions, PromptsCommand } from './PromptsCommand.js';
|
3
3
|
export { AbstractCommand, Action, CommandOptions } from './command.interface.js';
|
4
|
+
export { ConfigCommand } from './ConfigCommand.js';
|
4
5
|
import 'commander';
|
5
6
|
import '../OptionHandler.js';
|