@tikkhun/cli-core 0.0.13 → 0.0.14
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/dist/CommandManager.js +3 -3
- package/dist/CommandManager.js.map +1 -1
- package/dist/CommandManager.mjs +2 -2
- package/dist/CommandManager.mjs.map +1 -1
- package/dist/OptionHandler.js +2 -2
- package/dist/OptionHandler.js.map +1 -1
- package/dist/OptionHandler.mjs +2 -2
- package/dist/OptionHandler.mjs.map +1 -1
- package/dist/command/ArgsCommand.js +3 -3
- package/dist/command/ArgsCommand.js.map +1 -1
- package/dist/command/ArgsCommand.mjs +2 -2
- package/dist/command/ArgsCommand.mjs.map +1 -1
- package/dist/command/PromptsCommand.js +1 -1
- package/dist/command/PromptsCommand.js.map +1 -1
- package/dist/command/PromptsCommand.mjs +1 -1
- package/dist/command/PromptsCommand.mjs.map +1 -1
- package/dist/command/index.js +3 -3
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +2 -2
- package/dist/command/index.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../lib/command/ArgsCommand.ts","../lib/OptionHandler.ts","../lib/command/command.interface.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts","../lib/CommandManager.ts","../lib/package.ts"],"names":["TYPES","asTrueValues","asFalseValues","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","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","readJson","writeJson","fsExtra","_ConfigCommand","_b","path","Logger","_0","config","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli","echoPackage","packageJson"],"mappings":"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","file":"index.js","sourcesContent":["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","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","/**\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 fsExtra from 'fs-extra';\nconst { readJson, writeJson } = fsExtra;\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","// import { merge } from 'lodash'; // 这个怎么解决\nimport _ from 'lodash';\nconst { merge } = _;\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 { Logger } from '@tikkhun/logger';\n\nexport function echoPackage(packageJson: Record<string, any>) {\n Logger.log(`[欢迎使用] ${packageJson.name}`);\n Logger.log('版本: ' + packageJson.version);\n}\n"]}
|
1
|
+
{"version":3,"sources":["../lib/command/ArgsCommand.ts","../lib/OptionHandler.ts","../lib/command/command.interface.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts","../lib/CommandManager.ts","../lib/package.ts"],"names":["TYPES","asTrueValues","asFalseValues","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","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","readJson","writeJson","fsExtra","_ConfigCommand","_b","path","Logger","_0","config","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli","echoPackage","packageJson"],"mappings":"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","file":"index.js","sourcesContent":["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","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 if (value === 'undefined') {\n return;\n }\n return value && 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 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","/**\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 fsExtra from 'fs-extra';\nconst { readJson, writeJson } = fsExtra;\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","// import { merge } from 'lodash'; // 这个怎么解决\nimport _ from 'lodash';\nconst { merge } = _;\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 { Logger } from '@tikkhun/logger';\n\nexport function echoPackage(packageJson: Record<string, any>) {\n Logger.log(`[欢迎使用] ${packageJson.name}`);\n Logger.log('版本: ' + packageJson.version);\n}\n"]}
|
package/dist/index.mjs
CHANGED
@@ -9,7 +9,7 @@ import { Logger } from '@tikkhun/logger';
|
|
9
9
|
/**
|
10
10
|
@tikkhun/cli-core
|
11
11
|
*/
|
12
|
-
var V=Object.defineProperty,v=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var w=(n,t,o)=>t in n?V(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o,g=(n,t)=>{for(var o in t||(t={}))P.call(t,o)&&w(n,o,t[o]);if(h)for(var o of h(t))R.call(t,o)&&w(n,o,t[o]);return n},f=(n,t)=>v(n,D(t));var u=(n,t)=>{var o={};for(var r in n)P.call(n,r)&&t.indexOf(r)<0&&(o[r]=n[r]);if(n!=null&&h)for(var r of h(n))t.indexOf(r)<0&&R.call(n,r)&&(o[r]=n[r]);return o};var p=(n,t,o)=>new Promise((r,i)=>{var s=c=>{try{x(o.next(c));}catch(b){i(b);}},a=c=>{try{x(o.throw(c));}catch(b){i(b);}},x=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,a);x((o=o.apply(n,t)).next());});var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},F=["true",!0,"1",1],nt=["false",!1,"",0],m=class n{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[i,s]=r.split("=");return {key:i,value:s}}).filter(r=>r):[]:o===l.number?Number(t):o===l.boolean?!!F.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([i,s])=>{let a=o[i];typeof s=="object"?r[i]=n.toType(s,a):r[i]=n.getTypeValue(s,a);}),r}toType(t){return n.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([r,i])=>{o[r]=n.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(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?n.toString(t):""+t}};var{merge:N}=H,y=class y{constructor(t){this.options=N({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var e=y;var {get:I}=H,O=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),r=flatJson({delimiter:".",data:this.options.optionTypes});return o.filter(({key:i})=>!this.options.excludeOptions.includes(i)).map(({key:i,value:s})=>({key:i,value:s,type:r[i]}))}init(){this.program=this.options.program||createCommand();let t=this.getOptions();this.addOptions(t);}addOptions(t){t.forEach(({key:o,value:r,type:i})=>{this.program.option(`--${o} <${i}>`,I(this.options.optionTitles,o),r);});}addAction(t){this.program.action(o=>{let r=unflatJson({delimiter:".",data:o}),i=m.toType(r,this.options.optionTypes);t(i);});}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}),r=flatJson({delimiter:".",data:this.options.optionTypes}),i=flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:s,value:a})=>({key:s,defaultValue:a,type:r[s],title:i[s]}))}init(){let t=this.getOptions();this.optionHandler=()=>p(this,null,function*(){let o={};for(let{key:r,defaultValue:i,type:s,title:a}of t)s&&a&&(o[r]=(yield this.getActionResult({type:s,message:a,default:i}))||i);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return p(this,null,function*(){let i=t,r=u(i,["type"]);return yield input(r)})}actionHandler(t){return p(this,null,function*(){let o=yield this.optionHandler(),r=unflatJson({delimiter:".",data:o}),i=m.toType(r,this.options.optionTypes);t(i);})}start(t){return p(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var{readJson:K,writeJson:Q}=B,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(r=>p(this,null,function*(){let{path:i}=r;i||(i=d.defaultConfigPath),Logger.log("[\u5F00\u59CB] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+i),yield Q(i,this.options.defaultOptions,{spaces:2}),Logger.log("[\u5B8C\u6BD5] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+i);})),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(r=>p(this,[r],function*({config:o=""}){let i;if(o.endsWith(".js")?i=yield import(o):o.endsWith(".json")&&(i=yield K(o)),!i)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(i);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};d.defaultConfigPath=join(process.cwd(),"release.json");var C=d;var {merge:_}=H,rt=(r=>(r.prompts="prompts",r.args="args",r.config="config",r))(rt||{}),A=class A{constructor(t){this.options=_({},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,i,s;(o=this.promptsCommand)==null||o.start(t),(r=this.configCommand)==null||r.start(t),(i=this.argsCommand)==null||i.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},e.DEFAULT_OPTIONS),{types:["args"],name:""});var j=A,Xt=j;function oo(n){Logger.log(`[\u6B22\u8FCE\u4F7F\u7528] ${n.name}`),Logger.log("\u7248\u672C: "+n.version);}
|
12
|
+
var V=Object.defineProperty,v=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var w=(n,t,o)=>t in n?V(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o,g=(n,t)=>{for(var o in t||(t={}))P.call(t,o)&&w(n,o,t[o]);if(h)for(var o of h(t))R.call(t,o)&&w(n,o,t[o]);return n},f=(n,t)=>v(n,D(t));var u=(n,t)=>{var o={};for(var r in n)P.call(n,r)&&t.indexOf(r)<0&&(o[r]=n[r]);if(n!=null&&h)for(var r of h(n))t.indexOf(r)<0&&R.call(n,r)&&(o[r]=n[r]);return o};var p=(n,t,o)=>new Promise((r,i)=>{var s=c=>{try{x(o.next(c));}catch(b){i(b);}},a=c=>{try{x(o.throw(c));}catch(b){i(b);}},x=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,a);x((o=o.apply(n,t)).next());});var l={array:"array",keyValueArray:"keyValueArray",boolean:"boolean",number:"number",object:"object",string:"string",select:"select"},F=["true",!0,"1",1],nt=["false",!1,"",0],m=class n{constructor(t){this.schema=t;}static getTypeValue(t,o){return o===l.array?t.split(","):o===l.object?t==="undefined"?void 0:t&&JSON.parse(t):o===l.keyValueArray?t?t.split(",").map(r=>{if(!r)return;let[i,s]=r.split("=");return {key:i,value:s}}).filter(r=>r):[]:o===l.number?Number(t):o===l.boolean?!!F.includes(t):t}static toType(t,o){let r={};return Object.entries(t).forEach(([i,s])=>{let a=o[i];typeof s=="object"?r[i]=n.toType(s,a):r[i]=n.getTypeValue(s,a);}),r}toType(t){return n.toType(t,this.schema)}static toFlatList(t){}static toString(t){let o={};return Object.entries(t).forEach(([r,i])=>{o[r]=n.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(r=>`${r.key}=${r.value}`).toString():t.toString()}return typeof t=="object"?n.toString(t):""+t}};var{merge:N}=H,y=class y{constructor(t){this.options=N({},y.DEFAULT_OPTIONS,t),this.init();}};y.DEFAULT_OPTIONS={program:void 0,version:"",description:"",defaultOptions:{},excludeOptions:[],optionTypes:{},optionTitles:{}};var e=y;var {get:I}=H,O=class extends e{getOptions(){let t=m.toString(this.options.defaultOptions),o=jsonToList({delimiter:".",json:t}),r=flatJson({delimiter:".",data:this.options.optionTypes});return o.filter(({key:i})=>!this.options.excludeOptions.includes(i)).map(({key:i,value:s})=>({key:i,value:s,type:r[i]}))}init(){this.program=this.options.program||createCommand();let t=this.getOptions();this.addOptions(t);}addOptions(t){t.forEach(({key:o,value:r,type:i})=>{this.program.option(`--${o} <${i}>`,I(this.options.optionTitles,o),r);});}addAction(t){this.program.action(o=>{let r=unflatJson({delimiter:".",data:o}),i=m.toType(r,this.options.optionTypes);t(i);});}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}),r=flatJson({delimiter:".",data:this.options.optionTypes}),i=flatJson({delimiter:".",data:this.options.optionTitles});return o.map(({key:s,value:a})=>({key:s,defaultValue:a,type:r[s],title:i[s]}))}init(){let t=this.getOptions();this.optionHandler=()=>p(this,null,function*(){let o={};for(let{key:r,defaultValue:i,type:s,title:a}of t)s&&a&&(o[r]=(yield this.getActionResult({type:s,message:a,default:i}))||i);return o}),this.options.program&&(this.command=this.options.program.command("prompts"));}getActionResult(t){return p(this,null,function*(){let i=t,r=u(i,["type"]);return yield input(r)})}actionHandler(t){return p(this,null,function*(){let o=yield this.optionHandler(),r=unflatJson({delimiter:".",data:o}),i=m.toType(r,this.options.optionTypes);t(i);})}start(t){return p(this,null,function*(){if(this.command){this.command.action(()=>this.actionHandler(t));return}this.actionHandler(t);})}};var{readJson:K,writeJson:Q}=B,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(r=>p(this,null,function*(){let{path:i}=r;i||(i=d.defaultConfigPath),Logger.log("[\u5F00\u59CB] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+i),yield Q(i,this.options.defaultOptions,{spaces:2}),Logger.log("[\u5B8C\u6BD5] \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6\uFF1A "+i);})),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(r=>p(this,[r],function*({config:o=""}){let i;if(o.endsWith(".js")?i=yield import(o):o.endsWith(".json")&&(i=yield K(o)),!i)throw new Error(`\u914D\u7F6E\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5${o}`);t(i);}));}start(t){this.addAction(t),this.options.program||this.program.parse(process.argv);}};d.defaultConfigPath=join(process.cwd(),"release.json");var C=d;var {merge:_}=H,rt=(r=>(r.prompts="prompts",r.args="args",r.config="config",r))(rt||{}),A=class A{constructor(t){this.options=_({},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,i,s;(o=this.promptsCommand)==null||o.start(t),(r=this.configCommand)==null||r.start(t),(i=this.argsCommand)==null||i.start(t),(s=this.program)==null||s.parse(process.argv);}};A.DEFAULT_OPTIONS=f(g({},e.DEFAULT_OPTIONS),{types:["args"],name:""});var j=A,Xt=j;function oo(n){Logger.log(`[\u6B22\u8FCE\u4F7F\u7528] ${n.name}`),Logger.log("\u7248\u672C: "+n.version);}
|
13
13
|
|
14
14
|
export { e as AbstractCommand, O as ArgsCommand, Xt as Cli, j as CommandManager, rt as CommandTypes, C as ConfigCommand, m as OptionHandler, T as PromptsCommand, l as TYPES, nt as asFalseValues, F as asTrueValues, oo as echoPackage };
|
15
15
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../lib/command/ArgsCommand.ts","../lib/OptionHandler.ts","../lib/command/command.interface.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts","../lib/CommandManager.ts","../lib/package.ts"],"names":["TYPES","asTrueValues","asFalseValues","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","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","readJson","writeJson","fsExtra","_ConfigCommand","_b","path","Logger","_0","config","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli","echoPackage","packageJson"],"mappings":"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","file":"index.mjs","sourcesContent":["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","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","/**\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 fsExtra from 'fs-extra';\nconst { readJson, writeJson } = fsExtra;\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","// import { merge } from 'lodash'; // 这个怎么解决\nimport _ from 'lodash';\nconst { merge } = _;\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 { Logger } from '@tikkhun/logger';\n\nexport function echoPackage(packageJson: Record<string, any>) {\n Logger.log(`[欢迎使用] ${packageJson.name}`);\n Logger.log('版本: ' + packageJson.version);\n}\n"]}
|
1
|
+
{"version":3,"sources":["../lib/command/ArgsCommand.ts","../lib/OptionHandler.ts","../lib/command/command.interface.ts","../lib/command/PromptsCommand.ts","../lib/command/ConfigCommand.ts","../lib/CommandManager.ts","../lib/package.ts"],"names":["TYPES","asTrueValues","asFalseValues","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","PromptsCommand","stringifyDefaultOptions","flattedStringifyDefaultOptionList","flattedOptionTypeList","flattedOptionTitleList","__async","result","defaultValue","title","_a","opts","__objRest","input","unflattedOptions","typedResults","readJson","writeJson","fsExtra","_ConfigCommand","_b","path","Logger","_0","config","join","ConfigCommand","CommandTypes","_CommandManager","types","__spreadProps","__spreadValues","_c","_d","CommandManager","Cli","echoPackage","packageJson"],"mappings":"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","file":"index.mjs","sourcesContent":["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","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 if (value === 'undefined') {\n return;\n }\n return value && 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 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","/**\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 fsExtra from 'fs-extra';\nconst { readJson, writeJson } = fsExtra;\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","// import { merge } from 'lodash'; // 这个怎么解决\nimport _ from 'lodash';\nconst { merge } = _;\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 { Logger } from '@tikkhun/logger';\n\nexport function echoPackage(packageJson: Record<string, any>) {\n Logger.log(`[欢迎使用] ${packageJson.name}`);\n Logger.log('版本: ' + packageJson.version);\n}\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tikkhun/cli-core",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.14",
|
4
4
|
"description": "",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"module": "dist/index.mjs",
|
@@ -31,20 +31,20 @@
|
|
31
31
|
"commander": "^12.1.0",
|
32
32
|
"fs-extra": "^11.2.0",
|
33
33
|
"lodash": "^4.17.21",
|
34
|
-
"@tikkhun/
|
35
|
-
"@tikkhun/
|
34
|
+
"@tikkhun/utils-core": "^0.0.8",
|
35
|
+
"@tikkhun/logger": "^1.0.8"
|
36
36
|
},
|
37
37
|
"devDependencies": {
|
38
38
|
"@types/fs-extra": "^11.0.4",
|
39
39
|
"@types/lodash": "^4.17.7",
|
40
40
|
"@types/node": "^20.3.1",
|
41
|
-
"
|
41
|
+
"tsx": "^4.19.1",
|
42
42
|
"tsup": "^8.3.0",
|
43
43
|
"vitest": "^2.1.1"
|
44
44
|
},
|
45
45
|
"scripts": {
|
46
46
|
"build": "tsup",
|
47
|
-
"dev": "
|
47
|
+
"dev": "tsx ./src/index.ts",
|
48
48
|
"test": "vitest"
|
49
49
|
}
|
50
50
|
}
|