@node-cli/parser
Advanced tools
+1
-1
@@ -18,3 +18,3 @@ type Flags = { | ||
| message: string | (() => void); | ||
| test: (value: any) => boolean; | ||
| test: (flags: any, parameters: any) => boolean; | ||
| }; | ||
@@ -21,0 +21,0 @@ export type ParserConfiguration = { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/parser.ts"],"sourcesContent":["import { meowOptionsHelper, meowParserHelper } from \"./utilities.js\";\n\nimport { fastMerge } from \"@node-cli/utilities\";\nimport meow from \"meow\";\n\ntype Flags = {\n\t[key: string]: {\n\t\tshortFlag?: string;\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t\ttype: string;\n\t};\n};\ntype Parameters = {\n\t[key: string]: {\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t};\n};\ntype Restriction = {\n\texit: number;\n\tmessage: string | (() => void);\n\ttest: (value: any) => boolean;\n};\n\nexport type ParserConfiguration = {\n\tmeta: any;\n\tflags?: Flags;\n\tparameters?: Parameters;\n\tusage?: boolean | string;\n\texamples?:\n\t\t| string\n\t\t| { command?: string; description?: string; comment?: string }[];\n\tdefaultFlags?: any;\n\tdefaultParameters?: any;\n\trestrictions?: Restriction[];\n};\n\nexport const parser = (configuration: ParserConfiguration) => {\n\tconst {\n\t\tmeta,\n\t\tdefaultFlags = {},\n\t\tdefaultParameters = {},\n\t\trestrictions,\n\t\t...others\n\t} = configuration;\n\tconst { helpText, options } = meowOptionsHelper(others);\n\tconst cli = meow(helpText, {\n\t\t...options,\n\t\timportMeta: meta,\n\t});\n\tmeowParserHelper({ cli, restrictions });\n\n\treturn {\n\t\tshowHelp: cli.showHelp,\n\t\tflags: fastMerge(defaultFlags, cli.flags),\n\t\tparameters: fastMerge(defaultParameters, cli.input),\n\t};\n};\n"],"names":["meowOptionsHelper","meowParserHelper","fastMerge","meow","parser","configuration","meta","defaultFlags","defaultParameters","restrictions","others","helpText","options","cli","importMeta","showHelp","flags","parameters","input"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,gBAAgB,QAAQ,iBAAiB;AAErE,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAOC,UAAU,OAAO;AAmCxB,OAAO,MAAMC,SAAS,CAACC;IACtB,MAAM,EACLC,IAAI,EACJC,eAAe,CAAC,CAAC,EACjBC,oBAAoB,CAAC,CAAC,EACtBC,YAAY,EACZ,GAAGC,QACH,GAAGL;IACJ,MAAM,EAAEM,QAAQ,EAAEC,OAAO,EAAE,GAAGZ,kBAAkBU;IAChD,MAAMG,MAAMV,KAAKQ,UAAU;QAC1B,GAAGC,OAAO;QACVE,YAAYR;IACb;IACAL,iBAAiB;QAAEY;QAAKJ;IAAa;IAErC,OAAO;QACNM,UAAUF,IAAIE,QAAQ;QACtBC,OAAOd,UAAUK,cAAcM,IAAIG,KAAK;QACxCC,YAAYf,UAAUM,mBAAmBK,IAAIK,KAAK;IACnD;AACD,EAAE"} | ||
| {"version":3,"sources":["../src/parser.ts"],"sourcesContent":["import { meowOptionsHelper, meowParserHelper } from \"./utilities.js\";\n\nimport { fastMerge } from \"@node-cli/utilities\";\nimport meow from \"meow\";\n\ntype Flags = {\n\t[key: string]: {\n\t\tshortFlag?: string;\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t\ttype: string;\n\t};\n};\ntype Parameters = {\n\t[key: string]: {\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t};\n};\ntype Restriction = {\n\texit: number;\n\tmessage: string | (() => void);\n\ttest: (flags: any, parameters: any) => boolean;\n};\n\nexport type ParserConfiguration = {\n\tmeta: any;\n\tflags?: Flags;\n\tparameters?: Parameters;\n\tusage?: boolean | string;\n\texamples?:\n\t\t| string\n\t\t| { command?: string; description?: string; comment?: string }[];\n\tdefaultFlags?: any;\n\tdefaultParameters?: any;\n\trestrictions?: Restriction[];\n};\n\nexport const parser = (configuration: ParserConfiguration) => {\n\tconst {\n\t\tmeta,\n\t\tdefaultFlags = {},\n\t\tdefaultParameters = {},\n\t\trestrictions,\n\t\t...others\n\t} = configuration;\n\tconst { helpText, options } = meowOptionsHelper(others);\n\tconst cli = meow(helpText, {\n\t\t...options,\n\t\timportMeta: meta,\n\t});\n\tmeowParserHelper({ cli, restrictions });\n\n\treturn {\n\t\tshowHelp: cli.showHelp,\n\t\tflags: fastMerge(defaultFlags, cli.flags),\n\t\tparameters: fastMerge(defaultParameters, cli.input),\n\t};\n};\n"],"names":["meowOptionsHelper","meowParserHelper","fastMerge","meow","parser","configuration","meta","defaultFlags","defaultParameters","restrictions","others","helpText","options","cli","importMeta","showHelp","flags","parameters","input"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,gBAAgB,QAAQ,iBAAiB;AAErE,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAOC,UAAU,OAAO;AAmCxB,OAAO,MAAMC,SAAS,CAACC;IACtB,MAAM,EACLC,IAAI,EACJC,eAAe,CAAC,CAAC,EACjBC,oBAAoB,CAAC,CAAC,EACtBC,YAAY,EACZ,GAAGC,QACH,GAAGL;IACJ,MAAM,EAAEM,QAAQ,EAAEC,OAAO,EAAE,GAAGZ,kBAAkBU;IAChD,MAAMG,MAAMV,KAAKQ,UAAU;QAC1B,GAAGC,OAAO;QACVE,YAAYR;IACb;IACAL,iBAAiB;QAAEY;QAAKJ;IAAa;IAErC,OAAO;QACNM,UAAUF,IAAIE,QAAQ;QACtBC,OAAOd,UAAUK,cAAcM,IAAIG,KAAK;QACxCC,YAAYf,UAAUM,mBAAmBK,IAAIK,KAAK;IACnD;AACD,EAAE"} |
@@ -131,4 +131,8 @@ /* eslint-disable unicorn/no-process-exit */ import { Logger } from "@node-cli/logger"; | ||
| for (const rule of restrictions){ | ||
| if (rule.test(cli.flags)) { | ||
| logger.error(rule.message(cli.flags)); | ||
| if (rule.test(cli.flags, cli.input)) { | ||
| if (typeof rule.message === "function") { | ||
| logger.error(rule.message(cli.flags, cli.input)); | ||
| } else { | ||
| logger.error(rule.message); | ||
| } | ||
| process.exit(rule.exit); | ||
@@ -135,0 +139,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport kleur from \"kleur\";\nimport path from \"node:path\";\nimport { upperFirst } from \"@node-cli/utilities\";\n\nconst logger = new Logger();\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags)) {\n\t\t\t\tlogger.error(rule.message(cli.flags));\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","kleur","path","upperFirst","logger","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","process","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","error","message"],"mappings":"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"} | ||
| {"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport kleur from \"kleur\";\nimport path from \"node:path\";\nimport { upperFirst } from \"@node-cli/utilities\";\n\nconst logger = new Logger();\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags, cli.input)) {\n\t\t\t\tif (typeof rule.message === \"function\") {\n\t\t\t\t\tlogger.error(rule.message(cli.flags, cli.input));\n\t\t\t\t} else {\n\t\t\t\t\tlogger.error(rule.message);\n\t\t\t\t}\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","kleur","path","upperFirst","logger","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","process","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","input","message","error"],"mappings":"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"} |
+2
-2
| { | ||
| "name": "@node-cli/parser", | ||
| "version": "2.3.0", | ||
| "version": "2.3.1", | ||
| "license": "MIT", | ||
@@ -35,3 +35,3 @@ "author": "Arno Versini", | ||
| }, | ||
| "gitHead": "9fe243cae37a21e50ce133a1fa7045139157e39a" | ||
| "gitHead": "5e2f1401b325fe03525c71f03ecfb047975dc1f0" | ||
| } |
22644
2.23%218
1.87%