swagger-typescript-api 13.0.16 → 13.0.18
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/chunk-4S2WGBLV.js +67 -0
- package/dist/chunk-4S2WGBLV.js.map +1 -0
- package/dist/chunk-Z5TA2XXH.cjs +105 -0
- package/dist/chunk-Z5TA2XXH.cjs.map +1 -0
- package/dist/cli.cjs +41 -23
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +22 -22
- package/dist/cli.js.map +1 -1
- package/dist/lib.cjs +4 -4
- package/dist/lib.js +1 -1
- package/dist/types.d.cts +54 -45
- package/dist/types.d.ts +54 -45
- package/package.json +14 -13
- package/dist/chunk-J5EMB2ZI.js +0 -65
- package/dist/chunk-J5EMB2ZI.js.map +0 -1
- package/dist/chunk-ZJJTBDKO.cjs +0 -104
- package/dist/chunk-ZJJTBDKO.cjs.map +0 -1
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../cli/constants.js","../cli/execute.js","../cli/parse-args.js","../cli/operations/display-help.js","../cli/operations/display-version.js","../cli/process-option.js","../cli/index.js","../index.js"],"names":["root_command","skip_command","reservedOptions","parseArgs","args","type","argsCopy","didYouMean","execute","params","commands","instance","resolve","reject","command","usageOptions","error","processArgs","option","operationOptions","processUserOptionData","userOption","data","acc","d","parsedOptionsObject","o","flagValue","internal","walkingOption","allFlagKeys","_","arg","i","tip","existedOption","generateOptionsOutput","options","flags","description","generateOptionsTextOutput","maxLength","spaces","leftStr","leftStrFiller","descriptionLines","line","displayAllHelp","maxOptionLength","commandLabels","maxCommandLength","name","optionsOutput","commandsOutput","commandLabel","optionsTextOutput","outputTest","displayHelp","displayVersion","optionFormatters","str","processFlags","keys","value","isNoFlag","rawValue","variadic","longestKey","a","b","processOption","processedFlags","cli","input","addCommand","addVersion","addHelp","processed","codeGenBaseConfig","CodeGenConfig","templateGenBaseConfig","TemplatesGenConfig","program","package_default","moduleNameIndex","HTTP_CLIENT","v","main","customConfig","customConfigPath","e","generateApi","generateTemplates"],"mappings":"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","file":"cli.js","sourcesContent":["const root_command = Symbol(\"root\");\nconst skip_command = Symbol(\"skip\");\n\nconst reservedOptions = [\"version\", \"help\"];\n\nexport { root_command, skip_command, reservedOptions };\n","import didYouMean from \"didyoumean\";\nimport _ from \"lodash\";\nimport { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\n// eslint-disable-next-line no-unused-vars\nconst execute = (params, commands, instance) => {\n const args = parseArgs(params.args, params.from);\n\n return new Promise((resolve, reject) => {\n const { command, usageOptions, error } = processArgs(commands, args);\n\n if (error) {\n reject(new Error(error));\n return;\n }\n\n if (!usageOptions.length && command.name === root_command) {\n usageOptions.push(\n command.options.find((option) => option.flags.name === \"help\"),\n );\n }\n\n const operationOptions = usageOptions.filter((option) => option.operation);\n if (operationOptions.length) {\n operationOptions[0].operation();\n resolve({\n command: skip_command,\n options: {},\n });\n return;\n } else {\n let error = \"\";\n\n const processUserOptionData = (userOption, option) => {\n if (userOption) {\n const data = userOption.$data;\n if (!data.length && !option.flags.value) {\n return !option.flags.isNoFlag;\n }\n if (option.flags.value) {\n if (option.flags.value.variadic) {\n return data.reduce((acc, d) => {\n acc.push(...d.split(\",\").map(option.flags.value.formatter));\n return acc;\n }, []);\n } else {\n return option.flags.value.formatter(data[0] || option.default);\n }\n }\n }\n\n return option.default;\n };\n\n const parsedOptionsObject = command.options.reduce((acc, option) => {\n if (error) return acc;\n\n const userOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n\n if (!userOption && option.required) {\n error = `required option '${option.flags.raw}' not specified`;\n return acc;\n }\n\n const flagValue = processUserOptionData(userOption, option);\n if (!option.operation) {\n const internal = option.internal || {};\n acc[internal.name || option.flags.name] = internal.formatter\n ? internal.formatter(flagValue)\n : flagValue;\n }\n\n return acc;\n }, {});\n\n if (error) {\n reject(new Error(error));\n } else {\n resolve({\n command: command.name === root_command ? null : command.name,\n options: parsedOptionsObject,\n });\n }\n }\n });\n};\n\nconst processArgs = (commands, args) => {\n let command = null;\n let usageOptions = [];\n let walkingOption = null;\n let error = \"\";\n\n let allFlagKeys = [];\n\n _.forEach(args, (arg, i) => {\n if (error) return;\n\n if (i === 0) {\n command = commands[arg];\n\n if (!command && !arg.startsWith(\"-\")) {\n const tip = didYouMean(arg, _.keys(commands));\n error = `unknown command ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n } else if (!command) {\n command = commands[root_command];\n }\n\n if (command) {\n allFlagKeys = command.options.reduce(\n (acc, option) => [...acc, ...option.flags.keys],\n [],\n );\n }\n }\n\n if (error) return;\n\n if (arg.startsWith(\"-\")) {\n const option = command.options.find((option) =>\n option.flags.keys.includes(arg),\n );\n\n if (!option) {\n const tip = didYouMean(arg, allFlagKeys);\n error = `unknown option ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n }\n\n if (option) {\n if (walkingOption && walkingOption.flags.name === option.flags.name) {\n return;\n }\n const existedOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n if (existedOption) {\n walkingOption = existedOption;\n } else {\n walkingOption = {\n ...option,\n $data: [],\n };\n usageOptions.push(walkingOption);\n }\n }\n\n return;\n }\n\n if (walkingOption) {\n walkingOption.$data.push(arg);\n }\n });\n command = command || commands[root_command];\n\n if (error) {\n return {\n command: null,\n usageOptions: [],\n error,\n };\n }\n\n return {\n command,\n usageOptions,\n error,\n };\n};\n\nexport { execute };\n","const parseArgs = (args, type) => {\n if (args == null || !Array.isArray(args)) {\n throw \"args should be array\";\n }\n const argsCopy = args.slice();\n\n switch (type) {\n case \"electron\": {\n if (process.defaultApp) {\n return argsCopy.slice(2);\n }\n\n return argsCopy.slice(1);\n }\n case \"user\": {\n return argsCopy;\n }\n default: {\n return argsCopy.slice(2);\n }\n }\n};\n\nexport { parseArgs };\n","import _ from \"lodash\";\nimport { root_command } from \"../constants.js\";\n\nconst generateOptionsOutput = (options) =>\n options.reduce(\n (acc, option) => {\n const flags = `${option.flags.keys.join(\", \")}${\n option.flags.value?.raw ? ` ${option.flags.value?.raw}` : \"\"\n }`;\n const description = `${option.description || \"\"}${\n option.default === undefined ||\n (option.flags.isNoFlag && option.default === true)\n ? \"\"\n : ` (default: ${\n typeof option.default === \"string\"\n ? `\"${option.default}\"`\n : option.default\n })`\n }`;\n\n if (flags.length > acc.maxLength) {\n acc.maxLength = flags.length;\n }\n\n acc.options.push({\n flags,\n description,\n });\n return acc;\n },\n {\n options: [],\n maxLength: 0,\n },\n );\n\nconst generateOptionsTextOutput = (options, maxLength, spaces) =>\n options\n .map((option) => {\n const spacesText = Array(spaces).fill(\" \").join(\"\");\n const leftStr = `${spacesText}${option.flags.padEnd(maxLength, \" \")} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = option.description.split(\"\\n\");\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\")\n );\n })\n .join(\"\\n\");\n\nconst displayAllHelp = (commands, instance) => {\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n commands[root_command].options,\n );\n\n const { commands: commandLabels, maxLength: maxCommandLength } = _.filter(\n commands,\n (command) => command.name !== root_command,\n ).reduce(\n (acc, command) => {\n const options = generateOptionsOutput(command.options);\n const name = `${command.name}${options.length ? \" [options]\" : \"\"}`;\n const description = command.description;\n\n const maxLength = Math.max(name.length, options.maxLength);\n if (maxLength > acc.maxLength) {\n acc.maxLength = maxLength;\n }\n\n acc.commands.push({\n description,\n name,\n options,\n });\n return acc;\n },\n {\n commands: [],\n maxLength: maxOptionLength,\n },\n );\n\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const commandsOutput = commandLabels\n .map((commandLabel) => {\n const leftStr = ` ${commandLabel.name.padEnd(\n maxCommandLength,\n \" \",\n )} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = commandLabel.description.split(\"\\n\");\n const optionsTextOutput = generateOptionsTextOutput(\n commandLabel.options.options,\n maxCommandLength,\n 4,\n );\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\") +\n (optionsTextOutput.length ? `\\n${optionsTextOutput}` : \"\")\n );\n })\n .join(\"\\n\");\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n commandsOutput &&\n `Commands:\n${commandsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${[instance.input.name, instance.input.alias]\n .filter(Boolean)\n .join(\"|\")}${optionsOutput ? \" [options]\" : \"\"}${\n commandsOutput ? \" [command]\" : \"\"\n }\n${\n instance.input.description &&\n `\n${instance.input.description}`\n}\n\n${outputTest}`);\n};\n\nconst displayHelp = (commands, instance, command) => {\n if (command.name === root_command) return displayAllHelp(commands, instance);\n\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n command.options,\n );\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${instance.input.name} ${command.name}${\n optionsOutput ? \" [options]\" : \"\"\n }\n${\n command.description &&\n `\n${command.description}`\n}\n\n${outputTest}`);\n};\n\nexport { displayHelp };\n","const displayVersion = (instance) => {\n console.log(instance.input.version);\n};\n\nexport { displayVersion };\n","import _ from \"lodash\";\n\nconst optionFormatters = {\n number: (str) => +str,\n numeric: (str) => +str,\n str: (str) => `${str}`,\n string: (str) => `${str}`,\n bool: (str) => !!str,\n boolean: (str) => !!str,\n};\n\nconst processFlags = (flags) => {\n let name = null;\n const keys = [];\n let value = null;\n const isNoFlag = flags.includes(\"--no-\");\n\n _.compact(_.split(flags, \" \").map((str) => str.replace(/,/g, \"\"))).forEach(\n (str) => {\n if (str.startsWith(\"-\")) {\n keys.push(str);\n } else if (value === null) {\n if (str.startsWith(\"{\") || str.startsWith(\"[\") || str.startsWith(\"<\")) {\n const rawValue = str.replace(/[{[<>}\\].]/g, \"\");\n const variadic = str.includes(\"...\");\n value = {\n raw: str,\n variadic,\n name: rawValue,\n formatter: optionFormatters[rawValue] || optionFormatters.string,\n };\n }\n }\n },\n );\n\n const longestKey = keys.slice().sort((a, b) => b.length - a.length)[0];\n\n if (!_.isEmpty(longestKey)) {\n name = _.camelCase(\n (isNoFlag ? longestKey.replace(\"--no-\", \"\") : longestKey).replace(\n /(--?)/,\n \"\",\n ),\n );\n }\n\n return {\n isNoFlag,\n raw: flags,\n name,\n keys,\n value,\n };\n};\n\nconst processOption = (option) => {\n const processedFlags = processFlags(option.flags);\n\n if (!processedFlags.name) {\n console.warn(\"invalid option\", option);\n return null;\n }\n\n return {\n required: !!option.required,\n description: `${option.description || \"\"}`,\n default: option.default,\n flags: processedFlags,\n operation: option.operation,\n internal: option.internal,\n };\n};\n\nexport { processOption };\n","import _ from \"lodash\";\nimport { reservedOptions, root_command } from \"./constants.js\";\nimport { execute } from \"./execute.js\";\nimport { displayHelp } from \"./operations/display-help.js\";\nimport { displayVersion } from \"./operations/display-version.js\";\nimport { processOption } from \"./process-option.js\";\n\nconst cli = (input) => {\n const commands = {};\n\n const addCommand = (command, { addVersion = false, addHelp = true } = {}) => {\n commands[command.name] = {\n name: command.name,\n description: `${command.description || \"\"}`,\n options: _.compact(_.map(command.options, processOption)),\n };\n\n if (addVersion) {\n commands[command.name].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n }\n\n if (addHelp) {\n commands[command.name].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () =>\n displayHelp(commands, instance, commands[command.name]),\n }),\n );\n }\n\n return instance;\n };\n\n const instance = {\n commands,\n input,\n addCommand,\n execute: (params) => execute(params, commands, instance),\n };\n\n addCommand(\n {\n name: root_command,\n options: [],\n },\n {\n addVersion: false,\n addHelp: false,\n },\n );\n\n _.forEach(input.options, (option) => {\n const processed = processOption(option);\n\n if (!processed) return;\n\n if (reservedOptions.includes(processed.name)) {\n console.warn(\"reserved option\", processed.name);\n return;\n }\n\n commands[root_command].options.push(processed);\n });\n\n commands[root_command].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n\n commands[root_command].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () => displayHelp(commands, instance, commands[root_command]),\n }),\n );\n\n _.forEach(input.commands, addCommand);\n\n return instance;\n};\n\nexport { cli };\n","#!/usr/bin/env node\n\nimport { resolve } from \"node:path\";\nimport { cli } from \"./cli/index.js\";\nimport packageJson from \"./package.json\";\nimport { TemplatesGenConfig } from \"./src/commands/generate-templates/configuration.js\";\nimport { CodeGenConfig } from \"./src/configuration.js\";\nimport { HTTP_CLIENT } from \"./src/constants.js\";\nimport { generateApi, generateTemplates } from \"./src/index.js\";\n\nconst codeGenBaseConfig = new CodeGenConfig({});\nconst templateGenBaseConfig = new TemplatesGenConfig({});\n\nconst program = cli({\n name: packageJson.name,\n alias: \"sta\",\n version: packageJson.version,\n description:\n \"Generate api via swagger scheme.\\nSupports OA 3.0, 2.0, JSON, yaml.\",\n options: [\n {\n flags: \"-p, --path <string>\",\n description: \"path/url to swagger scheme\",\n required: true,\n },\n {\n flags: \"-o, --output <string>\",\n description: \"output path of typescript api file\",\n default: \"./\",\n },\n {\n flags: \"-n, --name <string>\",\n description: \"name of output typescript api file\",\n default: codeGenBaseConfig.fileName,\n },\n {\n flags: \"-t, --templates <string>\",\n description: \"path to folder containing templates\",\n },\n {\n flags: \"-d, --default-as-success\",\n description:\n 'use \"default\" response status code as success response too.\\n' +\n 'some swagger schemas use \"default\" response status code as success response type by default.',\n default: codeGenBaseConfig.defaultResponseAsSuccess,\n internal: { name: \"defaultResponseAsSuccess\" },\n },\n {\n flags: \"-r, --responses\",\n description:\n \"generate additional information about request responses\\n\" +\n \"also add typings for bad responses\",\n default: codeGenBaseConfig.generateResponses,\n internal: { name: \"generateResponses\" },\n },\n {\n flags: \"--union-enums\",\n description: 'generate all \"enum\" types as union types (T1 | T2 | TN)',\n default: codeGenBaseConfig.generateUnionEnums,\n internal: { name: \"generateUnionEnums\" },\n },\n {\n flags: \"--add-readonly\",\n description: \"generate readonly properties\",\n default: codeGenBaseConfig.addReadonly,\n },\n {\n flags: \"--route-types\",\n description: \"generate type definitions for API routes\",\n default: codeGenBaseConfig.generateRouteTypes,\n internal: { name: \"generateRouteTypes\" },\n },\n {\n flags: \"--no-client\",\n description: \"do not generate an API class\",\n default: codeGenBaseConfig.generateClient,\n },\n {\n flags: \"--enum-names-as-values\",\n description:\n \"use values in 'x-enumNames' as enum values (not only as keys)\",\n default: codeGenBaseConfig.enumNamesAsValues,\n },\n {\n flags: \"--extract-request-params\",\n description:\n \"extract request params to data contract (Also combine path params and query params into one object)\",\n default: codeGenBaseConfig.extractRequestParams,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-request-body\",\n description: \"extract request body type to data contract\",\n default: codeGenBaseConfig.extractRequestBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-body\",\n description: \"extract response body type to data contract\",\n default: codeGenBaseConfig.extractResponseBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-error\",\n description: \"extract response error type to data contract\",\n default: codeGenBaseConfig.extractResponseError,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-responses\",\n description: \"extract all responses described in /components/responses\",\n default: codeGenBaseConfig.extractResponses,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--modular\",\n description:\n \"generate separated files for http client, data contracts, and routes\",\n default: codeGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--js\",\n description: \"generate js api module with declaration file\",\n default: codeGenBaseConfig.toJS,\n internal: { formatter: Boolean, name: \"toJS\" },\n },\n {\n flags: \"--module-name-index <number>\",\n description:\n \"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)\",\n default: codeGenBaseConfig.moduleNameIndex,\n internal: { formatter: (moduleNameIndex) => +moduleNameIndex || 0 },\n },\n {\n flags: \"--module-name-first-tag\",\n description: \"splits routes based on the first tag\",\n default: codeGenBaseConfig.moduleNameFirstTag,\n },\n {\n flags: \"--disableStrictSSL\",\n description: \"disabled strict SSL\",\n default: codeGenBaseConfig.disableStrictSSL,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--disableProxy\",\n description: \"disabled proxy\",\n default: codeGenBaseConfig.disableProxy,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--axios\",\n description: \"generate axios http client\",\n default: codeGenBaseConfig.httpClientType === HTTP_CLIENT.AXIOS,\n },\n {\n flags: \"--unwrap-response-data\",\n description: \"unwrap the data item from the response\",\n default: codeGenBaseConfig.unwrapResponseData,\n },\n {\n flags: \"--disable-throw-on-error\",\n description: \"Do not throw an error when response.ok is not true\",\n default: codeGenBaseConfig.disableThrowOnError,\n },\n {\n flags: \"--single-http-client\",\n description: \"Ability to send HttpClient instance to Api constructor\",\n default: codeGenBaseConfig.singleHttpClient,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: codeGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--default-response <type>\",\n description: \"default type for empty response schema\",\n default: codeGenBaseConfig.defaultResponseType,\n internal: { name: \"defaultResponseType\" },\n },\n {\n flags: \"--type-prefix <string>\",\n description: \"data contract name prefix\",\n default: codeGenBaseConfig.typePrefix,\n },\n {\n flags: \"--type-suffix <string>\",\n description: \"data contract name suffix\",\n default: codeGenBaseConfig.typeSuffix,\n },\n {\n flags: \"--clean-output\",\n description:\n \"clean output folder before generate api. WARNING: May cause data loss\",\n default: codeGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--api-class-name <string>\",\n description: \"name of the api class\",\n default: codeGenBaseConfig.apiClassName,\n },\n {\n flags: \"--patch\",\n description: \"fix up small errors in the swagger source definition\",\n default: codeGenBaseConfig.patch,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--debug\",\n description: \"additional information about processes inside this tool\",\n default: codeGenBaseConfig.debug,\n },\n {\n flags: \"--another-array-type\",\n description: \"generate array types as Array<Type> (by default Type[])\",\n default: codeGenBaseConfig.anotherArrayType,\n },\n {\n flags: \"--sort-types\",\n description: \"sort fields and types\",\n default: codeGenBaseConfig.sortTypes,\n },\n {\n flags: \"--extract-enums\",\n description:\n \"extract all enums from inline interface\\\\type content to typescript enum construction\",\n default: codeGenBaseConfig.extractEnums,\n },\n {\n flags: \"--sort-routes\",\n description: \"sort routes in alphabetical order\",\n default: codeGenBaseConfig.sortRoutes,\n },\n {\n flags: \"--custom-config <string>\",\n description: \"custom config: primitiveTypeConstructs, hooks, ... \",\n default: \"\",\n },\n ],\n});\n\nprogram.addCommand({\n name: \"generate-templates\",\n description: `Generate \".ejs\" templates needed for generate api`,\n options: [\n {\n flags: \"-o, --output <string>\",\n description: \"output path of generated templates\",\n default: templateGenBaseConfig.output,\n },\n {\n flags: \"-m, --modular\",\n description:\n \"generate templates needed to separate files for http client, data contracts, and routes\",\n default: templateGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--http-client <string>\",\n description: `http client type (possible values: ${Object.values(\n HTTP_CLIENT,\n )\n .map((v) => `\"${v}\"`)\n .join(\", \")})`,\n default: templateGenBaseConfig.httpClientType,\n internal: { name: \"httpClientType\" },\n },\n {\n flags: \"-c, --clean-output\",\n description:\n \"clean output folder before generate template. WARNING: May cause data loss\",\n default: templateGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"-r, --rewrite\",\n description: \"rewrite content in existing templates\",\n default: templateGenBaseConfig.rewrite,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: templateGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n ],\n});\n\nconst main = async () => {\n const { command, options } = await program.execute({ args: process.argv });\n\n let customConfig = null;\n let customConfigPath;\n\n if (options.customConfig) {\n try {\n customConfigPath = resolve(process.cwd(), options.customConfig);\n customConfig = await import(customConfigPath);\n customConfig = customConfig.default || customConfig;\n } catch (e) {\n console.error(\"Error loading custom config\", e);\n }\n if (customConfig) {\n console.log(`✨ found custom config at: ${customConfigPath}`);\n }\n }\n\n try {\n switch (command) {\n case null: {\n await generateApi({\n ...options,\n name: options.name,\n url: options.path,\n generateRouteTypes: options.generateRouteTypes,\n generateClient: !!(options.axios || options.client),\n httpClientType: options.axios ? HTTP_CLIENT.AXIOS : HTTP_CLIENT.FETCH,\n input: resolve(process.cwd(), options.path),\n output: resolve(process.cwd(), options.output || \".\"),\n ...customConfig,\n });\n break;\n }\n case \"generate-templates\": {\n await generateTemplates(options);\n break;\n }\n default: {\n break;\n }\n }\n } catch (e) {\n console.error(e);\n process.exit(1);\n }\n process.exit(0);\n};\n\nmain();\n"]}
|
|
1
|
+
{"version":3,"sources":["../cli/constants.js","../cli/execute.js","../cli/parse-args.js","../cli/operations/display-help.js","../cli/operations/display-version.js","../cli/process-option.js","../cli/index.js","../index.js"],"names":["root_command","skip_command","reservedOptions","parseArgs","args","type","argsCopy","didYouMean","execute","params","commands","instance","resolve","reject","command","usageOptions","error","processArgs","option","operationOptions","processUserOptionData","userOption","data","acc","d","parsedOptionsObject","o","flagValue","internal","walkingOption","allFlagKeys","arg","i","tip","existedOption","generateOptionsOutput","options","flags","description","generateOptionsTextOutput","maxLength","spaces","leftStr","leftStrFiller","descriptionLines","line","displayAllHelp","maxOptionLength","commandLabels","maxCommandLength","H","name","optionsOutput","commandsOutput","commandLabel","optionsTextOutput","outputTest","displayHelp","displayVersion","optionFormatters","str","processFlags","keys","value","isNoFlag","strArr","rawValue","variadic","longestKey","a","b","processOption","processedFlags","cli","input","addCommand","addVersion","addHelp","W","processed","codeGenBaseConfig","CodeGenConfig","templateGenBaseConfig","TemplatesGenConfig","program","package_default","moduleNameIndex","HTTP_CLIENT","v","main","customConfig","customConfigPath","e","generateApi","generateTemplates"],"mappings":"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","file":"cli.js","sourcesContent":["const root_command = Symbol(\"root\");\nconst skip_command = Symbol(\"skip\");\n\nconst reservedOptions = [\"version\", \"help\"];\n\nexport { root_command, skip_command, reservedOptions };\n","import didYouMean from \"didyoumean\";\nimport * as lodash from \"lodash\";\nimport { root_command, skip_command } from \"./constants.js\";\nimport { parseArgs } from \"./parse-args.js\";\n\ndidYouMean.threshold = 0.5;\n\n// eslint-disable-next-line no-unused-vars\nconst execute = (params, commands, instance) => {\n const args = parseArgs(params.args, params.from);\n\n return new Promise((resolve, reject) => {\n const { command, usageOptions, error } = processArgs(commands, args);\n\n if (error) {\n reject(new Error(error));\n return;\n }\n\n if (!usageOptions.length && command.name === root_command) {\n usageOptions.push(\n command.options.find((option) => option.flags.name === \"help\"),\n );\n }\n\n const operationOptions = usageOptions.filter((option) => option.operation);\n if (operationOptions.length) {\n operationOptions[0].operation();\n resolve({\n command: skip_command,\n options: {},\n });\n return;\n } else {\n let error = \"\";\n\n const processUserOptionData = (userOption, option) => {\n if (userOption) {\n const data = userOption.$data;\n if (!data.length && !option.flags.value) {\n return !option.flags.isNoFlag;\n }\n if (option.flags.value) {\n if (option.flags.value.variadic) {\n return data.reduce((acc, d) => {\n acc.push(...d.split(\",\").map(option.flags.value.formatter));\n return acc;\n }, []);\n } else {\n return option.flags.value.formatter(data[0] || option.default);\n }\n }\n }\n\n return option.default;\n };\n\n const parsedOptionsObject = command.options.reduce((acc, option) => {\n if (error) return acc;\n\n const userOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n\n if (!userOption && option.required) {\n error = `required option '${option.flags.raw}' not specified`;\n return acc;\n }\n\n const flagValue = processUserOptionData(userOption, option);\n if (!option.operation) {\n const internal = option.internal || {};\n acc[internal.name || option.flags.name] = internal.formatter\n ? internal.formatter(flagValue)\n : flagValue;\n }\n\n return acc;\n }, {});\n\n if (error) {\n reject(new Error(error));\n } else {\n resolve({\n command: command.name === root_command ? null : command.name,\n options: parsedOptionsObject,\n });\n }\n }\n });\n};\n\nconst processArgs = (commands, args) => {\n let command = null;\n let usageOptions = [];\n let walkingOption = null;\n let error = \"\";\n\n let allFlagKeys = [];\n\n args.forEach((arg, i) => {\n if (error) return;\n\n if (i === 0) {\n command = commands[arg];\n\n if (!command && !arg.startsWith(\"-\")) {\n const tip = didYouMean(arg, commands.keys());\n error = `unknown command ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n } else if (!command) {\n command = commands[root_command];\n }\n\n if (command) {\n allFlagKeys = command.options.reduce(\n (acc, option) => [...acc, ...option.flags.keys],\n [],\n );\n }\n }\n\n if (error) return;\n\n if (arg.startsWith(\"-\")) {\n const option = command.options.find((option) =>\n option.flags.keys.includes(arg),\n );\n\n if (!option) {\n const tip = didYouMean(arg, allFlagKeys);\n error = `unknown option ${arg}${\n tip ? `\\n(Did you mean ${tip} ?)` : \"\"\n }`;\n }\n\n if (option) {\n if (walkingOption && walkingOption.flags.name === option.flags.name) {\n return;\n }\n const existedOption = usageOptions.find(\n (o) => o.flags.name === option.flags.name,\n );\n if (existedOption) {\n walkingOption = existedOption;\n } else {\n walkingOption = {\n ...option,\n $data: [],\n };\n usageOptions.push(walkingOption);\n }\n }\n\n return;\n }\n\n if (walkingOption) {\n walkingOption.$data.push(arg);\n }\n });\n command = command || commands[root_command];\n\n if (error) {\n return {\n command: null,\n usageOptions: [],\n error,\n };\n }\n\n return {\n command,\n usageOptions,\n error,\n };\n};\n\nexport { execute };\n","const parseArgs = (args, type) => {\n if (args == null || !Array.isArray(args)) {\n throw \"args should be array\";\n }\n const argsCopy = args.slice();\n\n switch (type) {\n case \"electron\": {\n if (process.defaultApp) {\n return argsCopy.slice(2);\n }\n\n return argsCopy.slice(1);\n }\n case \"user\": {\n return argsCopy;\n }\n default: {\n return argsCopy.slice(2);\n }\n }\n};\n\nexport { parseArgs };\n","import * as lodash from \"lodash\";\nimport { root_command } from \"../constants.js\";\n\nconst generateOptionsOutput = (options) =>\n options.reduce(\n (acc, option) => {\n const flags = `${option.flags.keys.join(\", \")}${\n option.flags.value?.raw ? ` ${option.flags.value?.raw}` : \"\"\n }`;\n const description = `${option.description || \"\"}${\n option.default === undefined ||\n (option.flags.isNoFlag && option.default === true)\n ? \"\"\n : ` (default: ${\n typeof option.default === \"string\"\n ? `\"${option.default}\"`\n : option.default\n })`\n }`;\n\n if (flags.length > acc.maxLength) {\n acc.maxLength = flags.length;\n }\n\n acc.options.push({\n flags,\n description,\n });\n return acc;\n },\n {\n options: [],\n maxLength: 0,\n },\n );\n\nconst generateOptionsTextOutput = (options, maxLength, spaces) =>\n options\n .map((option) => {\n const spacesText = Array(spaces).fill(\" \").join(\"\");\n const leftStr = `${spacesText}${option.flags.padEnd(maxLength, \" \")} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = option.description.split(\"\\n\");\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\")\n );\n })\n .join(\"\\n\");\n\nconst displayAllHelp = (commands, instance) => {\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n commands[root_command].options,\n );\n\n const { commands: commandLabels, maxLength: maxCommandLength } = lodash\n .filter(commands, (command) => command.name !== root_command)\n .reduce(\n (acc, command) => {\n const options = generateOptionsOutput(command.options);\n const name = `${command.name}${options.length ? \" [options]\" : \"\"}`;\n const description = command.description;\n\n const maxLength = Math.max(name.length, options.maxLength);\n if (maxLength > acc.maxLength) {\n acc.maxLength = maxLength;\n }\n\n acc.commands.push({\n description,\n name,\n options,\n });\n return acc;\n },\n {\n commands: [],\n maxLength: maxOptionLength,\n },\n );\n\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const commandsOutput = commandLabels\n .map((commandLabel) => {\n const leftStr = ` ${commandLabel.name.padEnd(\n maxCommandLength,\n \" \",\n )} `;\n const leftStrFiller = Array(leftStr.length).fill(\" \").join(\"\");\n const descriptionLines = commandLabel.description.split(\"\\n\");\n const optionsTextOutput = generateOptionsTextOutput(\n commandLabel.options.options,\n maxCommandLength,\n 4,\n );\n\n return (\n leftStr +\n descriptionLines\n .map((line, i) => {\n if (i === 0) {\n return line;\n }\n\n return `\\n${leftStrFiller}${line}`;\n })\n .join(\"\") +\n (optionsTextOutput.length ? `\\n${optionsTextOutput}` : \"\")\n );\n })\n .join(\"\\n\");\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n commandsOutput &&\n `Commands:\n${commandsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${[instance.input.name, instance.input.alias]\n .filter(Boolean)\n .join(\"|\")}${optionsOutput ? \" [options]\" : \"\"}${\n commandsOutput ? \" [command]\" : \"\"\n }\n${\n instance.input.description &&\n `\n${instance.input.description}`\n}\n\n${outputTest}`);\n};\n\nconst displayHelp = (commands, instance, command) => {\n if (command.name === root_command) return displayAllHelp(commands, instance);\n\n const { options, maxLength: maxOptionLength } = generateOptionsOutput(\n command.options,\n );\n const optionsOutput = generateOptionsTextOutput(options, maxOptionLength, 2);\n\n const outputTest = [\n optionsOutput &&\n `Options:\n${optionsOutput}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\");\n\n console.log(`Usage: ${instance.input.name} ${command.name}${\n optionsOutput ? \" [options]\" : \"\"\n }\n${\n command.description &&\n `\n${command.description}`\n}\n\n${outputTest}`);\n};\n\nexport { displayHelp };\n","const displayVersion = (instance) => {\n console.log(instance.input.version);\n};\n\nexport { displayVersion };\n","import * as lodash from \"lodash\";\n\nconst optionFormatters = {\n number: (str) => +str,\n numeric: (str) => +str,\n str: (str) => `${str}`,\n string: (str) => `${str}`,\n bool: (str) => !!str,\n boolean: (str) => !!str,\n};\n\nconst processFlags = (flags) => {\n let name = null;\n const keys = [];\n let value = null;\n const isNoFlag = flags.includes(\"--no-\");\n\n const strArr = lodash.compact(\n flags.split(\" \").map((str) => str.replace(/,/g, \"\")),\n );\n\n for (const str of strArr) {\n if (str.startsWith(\"-\")) {\n keys.push(str);\n } else if (value === null) {\n if (str.startsWith(\"{\") || str.startsWith(\"[\") || str.startsWith(\"<\")) {\n const rawValue = str.replace(/[{[<>}\\].]/g, \"\");\n const variadic = str.includes(\"...\");\n value = {\n raw: str,\n variadic,\n name: rawValue,\n formatter: optionFormatters[rawValue] || optionFormatters.string,\n };\n }\n }\n }\n\n const longestKey = keys.slice().sort((a, b) => b.length - a.length)[0];\n\n if (longestKey !== \"\") {\n name = lodash.camelCase(\n (isNoFlag ? longestKey.replace(\"--no-\", \"\") : longestKey).replace(\n /(--?)/,\n \"\",\n ),\n );\n }\n\n return {\n isNoFlag,\n raw: flags,\n name,\n keys,\n value,\n };\n};\n\nconst processOption = (option) => {\n const processedFlags = processFlags(option.flags);\n\n if (!processedFlags.name) {\n console.warn(\"invalid option\", option);\n return null;\n }\n\n return {\n required: !!option.required,\n description: `${option.description || \"\"}`,\n default: option.default,\n flags: processedFlags,\n operation: option.operation,\n internal: option.internal,\n };\n};\n\nexport { processOption };\n","import * as lodash from \"lodash\";\nimport { reservedOptions, root_command } from \"./constants.js\";\nimport { execute } from \"./execute.js\";\nimport { displayHelp } from \"./operations/display-help.js\";\nimport { displayVersion } from \"./operations/display-version.js\";\nimport { processOption } from \"./process-option.js\";\n\nconst cli = (input) => {\n const commands = {};\n\n const addCommand = (command, { addVersion = false, addHelp = true } = {}) => {\n commands[command.name] = {\n name: command.name,\n description: `${command.description || \"\"}`,\n options: lodash.compact(command.options.map(processOption)),\n };\n\n if (addVersion) {\n commands[command.name].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n }\n\n if (addHelp) {\n commands[command.name].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () =>\n displayHelp(commands, instance, commands[command.name]),\n }),\n );\n }\n\n return instance;\n };\n\n const instance = {\n commands,\n input,\n addCommand,\n execute: (params) => execute(params, commands, instance),\n };\n\n addCommand(\n {\n name: root_command,\n options: [],\n },\n {\n addVersion: false,\n addHelp: false,\n },\n );\n\n for (const option of input.options) {\n const processed = processOption(option);\n\n if (!processed) return;\n\n if (reservedOptions.includes(processed.name)) {\n console.warn(\"reserved option\", processed.name);\n return;\n }\n\n commands[root_command].options.push(processed);\n }\n\n commands[root_command].options.unshift(\n processOption({\n flags: \"-v, --version\",\n description: \"output the current version\",\n operation: () => displayVersion(instance),\n }),\n );\n\n commands[root_command].options.push(\n processOption({\n flags: \"-h, --help\",\n description: \"display help for command\",\n operation: () => displayHelp(commands, instance, commands[root_command]),\n }),\n );\n\n for (const command of input.commands) {\n addCommand(command);\n }\n\n return instance;\n};\n\nexport { cli };\n","#!/usr/bin/env node\n\nimport { resolve } from \"node:path\";\nimport { cli } from \"./cli/index.js\";\nimport packageJson from \"./package.json\";\nimport { TemplatesGenConfig } from \"./src/commands/generate-templates/configuration.js\";\nimport { CodeGenConfig } from \"./src/configuration.js\";\nimport { HTTP_CLIENT } from \"./src/constants.js\";\nimport { generateApi, generateTemplates } from \"./src/index.js\";\n\nconst codeGenBaseConfig = new CodeGenConfig({});\nconst templateGenBaseConfig = new TemplatesGenConfig({});\n\nconst program = cli({\n name: packageJson.name,\n alias: \"sta\",\n version: packageJson.version,\n description:\n \"Generate api via swagger scheme.\\nSupports OA 3.0, 2.0, JSON, yaml.\",\n options: [\n {\n flags: \"-p, --path <string>\",\n description: \"path/url to swagger scheme\",\n required: true,\n },\n {\n flags: \"-o, --output <string>\",\n description: \"output path of typescript api file\",\n default: \"./\",\n },\n {\n flags: \"-n, --name <string>\",\n description: \"name of output typescript api file\",\n default: codeGenBaseConfig.fileName,\n },\n {\n flags: \"-t, --templates <string>\",\n description: \"path to folder containing templates\",\n },\n {\n flags: \"-d, --default-as-success\",\n description:\n 'use \"default\" response status code as success response too.\\n' +\n 'some swagger schemas use \"default\" response status code as success response type by default.',\n default: codeGenBaseConfig.defaultResponseAsSuccess,\n internal: { name: \"defaultResponseAsSuccess\" },\n },\n {\n flags: \"-r, --responses\",\n description:\n \"generate additional information about request responses\\n\" +\n \"also add typings for bad responses\",\n default: codeGenBaseConfig.generateResponses,\n internal: { name: \"generateResponses\" },\n },\n {\n flags: \"--union-enums\",\n description: 'generate all \"enum\" types as union types (T1 | T2 | TN)',\n default: codeGenBaseConfig.generateUnionEnums,\n internal: { name: \"generateUnionEnums\" },\n },\n {\n flags: \"--add-readonly\",\n description: \"generate readonly properties\",\n default: codeGenBaseConfig.addReadonly,\n },\n {\n flags: \"--route-types\",\n description: \"generate type definitions for API routes\",\n default: codeGenBaseConfig.generateRouteTypes,\n internal: { name: \"generateRouteTypes\" },\n },\n {\n flags: \"--no-client\",\n description: \"do not generate an API class\",\n default: codeGenBaseConfig.generateClient,\n },\n {\n flags: \"--enum-names-as-values\",\n description:\n \"use values in 'x-enumNames' as enum values (not only as keys)\",\n default: codeGenBaseConfig.enumNamesAsValues,\n },\n {\n flags: \"--extract-request-params\",\n description:\n \"extract request params to data contract (Also combine path params and query params into one object)\",\n default: codeGenBaseConfig.extractRequestParams,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-request-body\",\n description: \"extract request body type to data contract\",\n default: codeGenBaseConfig.extractRequestBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-body\",\n description: \"extract response body type to data contract\",\n default: codeGenBaseConfig.extractResponseBody,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-response-error\",\n description: \"extract response error type to data contract\",\n default: codeGenBaseConfig.extractResponseError,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--extract-responses\",\n description: \"extract all responses described in /components/responses\",\n default: codeGenBaseConfig.extractResponses,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--modular\",\n description:\n \"generate separated files for http client, data contracts, and routes\",\n default: codeGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--js\",\n description: \"generate js api module with declaration file\",\n default: codeGenBaseConfig.toJS,\n internal: { formatter: Boolean, name: \"toJS\" },\n },\n {\n flags: \"--module-name-index <number>\",\n description:\n \"determines which path index should be used for routes separation (example: GET:/fruits/getFruit -> index:0 -> moduleName -> fruits)\",\n default: codeGenBaseConfig.moduleNameIndex,\n internal: { formatter: (moduleNameIndex) => +moduleNameIndex || 0 },\n },\n {\n flags: \"--module-name-first-tag\",\n description: \"splits routes based on the first tag\",\n default: codeGenBaseConfig.moduleNameFirstTag,\n },\n {\n flags: \"--disableStrictSSL\",\n description: \"disabled strict SSL\",\n default: codeGenBaseConfig.disableStrictSSL,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--disableProxy\",\n description: \"disabled proxy\",\n default: codeGenBaseConfig.disableProxy,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--axios\",\n description: \"generate axios http client\",\n default: codeGenBaseConfig.httpClientType === HTTP_CLIENT.AXIOS,\n },\n {\n flags: \"--unwrap-response-data\",\n description: \"unwrap the data item from the response\",\n default: codeGenBaseConfig.unwrapResponseData,\n },\n {\n flags: \"--disable-throw-on-error\",\n description: \"Do not throw an error when response.ok is not true\",\n default: codeGenBaseConfig.disableThrowOnError,\n },\n {\n flags: \"--single-http-client\",\n description: \"Ability to send HttpClient instance to Api constructor\",\n default: codeGenBaseConfig.singleHttpClient,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: codeGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--default-response <type>\",\n description: \"default type for empty response schema\",\n default: codeGenBaseConfig.defaultResponseType,\n internal: { name: \"defaultResponseType\" },\n },\n {\n flags: \"--type-prefix <string>\",\n description: \"data contract name prefix\",\n default: codeGenBaseConfig.typePrefix,\n },\n {\n flags: \"--type-suffix <string>\",\n description: \"data contract name suffix\",\n default: codeGenBaseConfig.typeSuffix,\n },\n {\n flags: \"--clean-output\",\n description:\n \"clean output folder before generate api. WARNING: May cause data loss\",\n default: codeGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--api-class-name <string>\",\n description: \"name of the api class\",\n default: codeGenBaseConfig.apiClassName,\n },\n {\n flags: \"--patch\",\n description: \"fix up small errors in the swagger source definition\",\n default: codeGenBaseConfig.patch,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--debug\",\n description: \"additional information about processes inside this tool\",\n default: codeGenBaseConfig.debug,\n },\n {\n flags: \"--another-array-type\",\n description: \"generate array types as Array<Type> (by default Type[])\",\n default: codeGenBaseConfig.anotherArrayType,\n },\n {\n flags: \"--sort-types\",\n description: \"sort fields and types\",\n default: codeGenBaseConfig.sortTypes,\n },\n {\n flags: \"--extract-enums\",\n description:\n \"extract all enums from inline interface\\\\type content to typescript enum construction\",\n default: codeGenBaseConfig.extractEnums,\n },\n {\n flags: \"--sort-routes\",\n description: \"sort routes in alphabetical order\",\n default: codeGenBaseConfig.sortRoutes,\n },\n {\n flags: \"--custom-config <string>\",\n description: \"custom config: primitiveTypeConstructs, hooks, ... \",\n default: \"\",\n },\n ],\n});\n\nprogram.addCommand({\n name: \"generate-templates\",\n description: `Generate \".ejs\" templates needed for generate api`,\n options: [\n {\n flags: \"-o, --output <string>\",\n description: \"output path of generated templates\",\n default: templateGenBaseConfig.output,\n },\n {\n flags: \"-m, --modular\",\n description:\n \"generate templates needed to separate files for http client, data contracts, and routes\",\n default: templateGenBaseConfig.modular,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--http-client <string>\",\n description: `http client type (possible values: ${Object.values(\n HTTP_CLIENT,\n )\n .map((v) => `\"${v}\"`)\n .join(\", \")})`,\n default: templateGenBaseConfig.httpClientType,\n internal: { name: \"httpClientType\" },\n },\n {\n flags: \"-c, --clean-output\",\n description:\n \"clean output folder before generate template. WARNING: May cause data loss\",\n default: templateGenBaseConfig.cleanOutput,\n internal: { formatter: Boolean },\n },\n {\n flags: \"-r, --rewrite\",\n description: \"rewrite content in existing templates\",\n default: templateGenBaseConfig.rewrite,\n internal: { formatter: Boolean },\n },\n {\n flags: \"--silent\",\n description: \"Output only errors to console\",\n default: templateGenBaseConfig.silent,\n internal: { formatter: Boolean },\n },\n ],\n});\n\nconst main = async () => {\n const { command, options } = await program.execute({ args: process.argv });\n\n let customConfig = null;\n let customConfigPath;\n\n if (options.customConfig) {\n try {\n customConfigPath = resolve(process.cwd(), options.customConfig);\n customConfig = await import(customConfigPath);\n customConfig = customConfig.default || customConfig;\n } catch (e) {\n console.error(\"Error loading custom config\", e);\n }\n if (customConfig) {\n console.log(`✨ found custom config at: ${customConfigPath}`);\n }\n }\n\n try {\n switch (command) {\n case null: {\n await generateApi({\n ...options,\n name: options.name,\n url: options.path,\n generateRouteTypes: options.generateRouteTypes,\n generateClient: !!(options.axios || options.client),\n httpClientType: options.axios ? HTTP_CLIENT.AXIOS : HTTP_CLIENT.FETCH,\n input: resolve(process.cwd(), options.path),\n output: resolve(process.cwd(), options.output || \".\"),\n ...customConfig,\n });\n break;\n }\n case \"generate-templates\": {\n await generateTemplates(options);\n break;\n }\n default: {\n break;\n }\n }\n } catch (e) {\n console.error(e);\n process.exit(1);\n }\n process.exit(0);\n};\n\nmain();\n"]}
|
package/dist/lib.cjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkZ5TA2XXH_cjs = require('./chunk-Z5TA2XXH.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "constants", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkZ5TA2XXH_cjs.c; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "generateApi", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkZ5TA2XXH_cjs.g; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "generateTemplates", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkZ5TA2XXH_cjs.f; }
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=lib.cjs.map
|
|
21
21
|
//# sourceMappingURL=lib.cjs.map
|
package/dist/lib.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export { c as constants, g as generateApi, f as generateTemplates } from './chunk-
|
|
2
|
+
export { c as constants, g as generateApi, f as generateTemplates } from './chunk-4S2WGBLV.js';
|
|
3
3
|
//# sourceMappingURL=lib.js.map
|
|
4
4
|
//# sourceMappingURL=lib.js.map
|
package/dist/types.d.cts
CHANGED
|
@@ -27,7 +27,7 @@ declare class NameResolver {
|
|
|
27
27
|
* @param {string[]} names
|
|
28
28
|
*/
|
|
29
29
|
reserve(names) {
|
|
30
|
-
const fixedNames =
|
|
30
|
+
const fixedNames = lodash.uniq(lodash.compact(names));
|
|
31
31
|
for (const name of fixedNames) {
|
|
32
32
|
if (this.reservedNames.indexOf(name) === -1) {
|
|
33
33
|
this.reservedNames.push(name);
|
|
@@ -42,7 +42,7 @@ declare class NameResolver {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
isReserved(name) {
|
|
45
|
-
return
|
|
45
|
+
return this.reservedNames.some((reservedName) => reservedName === name);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -72,15 +72,17 @@ declare class NameResolver {
|
|
|
72
72
|
|
|
73
73
|
shouldReserve && this.reserve([usageName]);
|
|
74
74
|
return usageName;
|
|
75
|
-
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (Array.isArray(variants)) {
|
|
76
78
|
let usageName = null;
|
|
77
|
-
const uniqVariants =
|
|
79
|
+
const uniqVariants = lodash.uniq(lodash.compact(variants));
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
for (const variant of uniqVariants) {
|
|
80
82
|
if (!usageName && (!shouldReserve || !this.isReserved(variant))) {
|
|
81
83
|
usageName = variant;
|
|
82
84
|
}
|
|
83
|
-
}
|
|
85
|
+
}
|
|
84
86
|
|
|
85
87
|
if (usageName) {
|
|
86
88
|
shouldReserve && this.reserve([usageName]);
|
|
@@ -398,7 +400,7 @@ declare class SchemaParser {
|
|
|
398
400
|
|
|
399
401
|
this.schemaPath.push(this.typeName);
|
|
400
402
|
|
|
401
|
-
|
|
403
|
+
lodash.merge(
|
|
402
404
|
this.schema,
|
|
403
405
|
this.config.hooks.onPreParseSchema(
|
|
404
406
|
this.schema,
|
|
@@ -450,14 +452,14 @@ declare class SchemaParser {
|
|
|
450
452
|
extractSchemaFromResponseStruct = (responseStruct) => {
|
|
451
453
|
const { content, ...extras } = responseStruct;
|
|
452
454
|
|
|
453
|
-
const firstResponse =
|
|
454
|
-
const firstSchema =
|
|
455
|
+
const firstResponse = lodash.first(lodash.values(content));
|
|
456
|
+
const firstSchema = lodash.get(firstResponse, "schema");
|
|
455
457
|
|
|
456
458
|
if (!firstSchema) return;
|
|
457
459
|
|
|
458
460
|
return {
|
|
459
461
|
...extras,
|
|
460
|
-
...
|
|
462
|
+
...lodash.omit(firstResponse, "schema"),
|
|
461
463
|
...firstSchema,
|
|
462
464
|
};
|
|
463
465
|
};
|
|
@@ -569,8 +571,8 @@ declare class CodeGenProcess {
|
|
|
569
571
|
|
|
570
572
|
this.schemaComponentsMap.clear();
|
|
571
573
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
+
lodash.each(swagger.usageSchema.components, (component, componentName) =>
|
|
575
|
+
lodash.each(component, (rawTypeData, typeName) => {
|
|
574
576
|
this.schemaComponentsMap.createComponent(
|
|
575
577
|
this.schemaComponentsMap.createRef([
|
|
576
578
|
"components",
|
|
@@ -586,7 +588,7 @@ declare class CodeGenProcess {
|
|
|
586
588
|
* @type {SchemaComponent[]}
|
|
587
589
|
*/
|
|
588
590
|
const componentsToParse = this.schemaComponentsMap.filter(
|
|
589
|
-
|
|
591
|
+
lodash.compact(["schemas", this.config.extractResponses && "responses"]),
|
|
590
592
|
);
|
|
591
593
|
|
|
592
594
|
const parsedSchemas = componentsToParse.map((schemaComponent) => {
|
|
@@ -643,7 +645,7 @@ declare class CodeGenProcess {
|
|
|
643
645
|
const isDirPath = this.fileSystem.pathIsDir(this.config.output);
|
|
644
646
|
|
|
645
647
|
if (isDirPath) {
|
|
646
|
-
|
|
648
|
+
for (const file of files) {
|
|
647
649
|
this.fileSystem.createFile({
|
|
648
650
|
path: this.config.output,
|
|
649
651
|
fileName: `${file.fileName}${file.fileExtension}`,
|
|
@@ -656,7 +658,7 @@ declare class CodeGenProcess {
|
|
|
656
658
|
`"${file.fileName}${file.fileExtension}"`,
|
|
657
659
|
`created in ${this.config.output}`,
|
|
658
660
|
);
|
|
659
|
-
}
|
|
661
|
+
}
|
|
660
662
|
}
|
|
661
663
|
|
|
662
664
|
return {
|
|
@@ -694,7 +696,7 @@ declare class CodeGenProcess {
|
|
|
694
696
|
return ` * ${line}${eol ? "\n" : ""}`;
|
|
695
697
|
},
|
|
696
698
|
NameResolver: NameResolver,
|
|
697
|
-
_,
|
|
699
|
+
_: lodash,
|
|
698
700
|
require: this.templatesWorker.requireFnFromTemplate,
|
|
699
701
|
},
|
|
700
702
|
config: this.config,
|
|
@@ -705,7 +707,7 @@ declare class CodeGenProcess {
|
|
|
705
707
|
const components = this.schemaComponentsMap.getComponents();
|
|
706
708
|
let modelTypes = [];
|
|
707
709
|
|
|
708
|
-
const modelTypeComponents =
|
|
710
|
+
const modelTypeComponents = lodash.compact([
|
|
709
711
|
"schemas",
|
|
710
712
|
this.config.extractResponses && "responses",
|
|
711
713
|
]);
|
|
@@ -755,7 +757,12 @@ declare class CodeGenProcess {
|
|
|
755
757
|
rawTypeData,
|
|
756
758
|
)
|
|
757
759
|
: rawTypeData;
|
|
758
|
-
|
|
760
|
+
const {
|
|
761
|
+
typeIdentifier,
|
|
762
|
+
name: originalName,
|
|
763
|
+
content,
|
|
764
|
+
description,
|
|
765
|
+
} = typeData;
|
|
759
766
|
const name = this.typeNameFormatter.format(originalName);
|
|
760
767
|
|
|
761
768
|
if (name === null) return null;
|
|
@@ -788,7 +795,7 @@ declare class CodeGenProcess {
|
|
|
788
795
|
? await this.createMultipleFileInfos(templatesToRender, configuration)
|
|
789
796
|
: await this.createSingleFileInfo(templatesToRender, configuration);
|
|
790
797
|
|
|
791
|
-
if (!
|
|
798
|
+
if (!lodash.isEmpty(configuration.extraTemplates)) {
|
|
792
799
|
for (const extraTemplate of configuration.extraTemplates) {
|
|
793
800
|
const content = this.templatesWorker.renderTemplate(
|
|
794
801
|
this.fileSystem.getFileContent(extraTemplate.path),
|
|
@@ -933,27 +940,29 @@ declare class CodeGenProcess {
|
|
|
933
940
|
return await this.createOutputFileInfo(
|
|
934
941
|
configuration,
|
|
935
942
|
configuration.fileName,
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
templatesToRender.dataContracts,
|
|
939
|
-
configuration,
|
|
940
|
-
),
|
|
941
|
-
generateRouteTypes &&
|
|
942
|
-
this.templatesWorker.renderTemplate(
|
|
943
|
-
templatesToRender.routeTypes,
|
|
944
|
-
configuration,
|
|
945
|
-
),
|
|
946
|
-
generateClient &&
|
|
943
|
+
lodash
|
|
944
|
+
.compact([
|
|
947
945
|
this.templatesWorker.renderTemplate(
|
|
948
|
-
templatesToRender.
|
|
946
|
+
templatesToRender.dataContracts,
|
|
949
947
|
configuration,
|
|
950
948
|
),
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
949
|
+
generateRouteTypes &&
|
|
950
|
+
this.templatesWorker.renderTemplate(
|
|
951
|
+
templatesToRender.routeTypes,
|
|
952
|
+
configuration,
|
|
953
|
+
),
|
|
954
|
+
generateClient &&
|
|
955
|
+
this.templatesWorker.renderTemplate(
|
|
956
|
+
templatesToRender.httpClient,
|
|
957
|
+
configuration,
|
|
958
|
+
),
|
|
959
|
+
generateClient &&
|
|
960
|
+
this.templatesWorker.renderTemplate(
|
|
961
|
+
templatesToRender.api,
|
|
962
|
+
configuration,
|
|
963
|
+
),
|
|
964
|
+
])
|
|
965
|
+
.join("\n"),
|
|
957
966
|
);
|
|
958
967
|
};
|
|
959
968
|
|
|
@@ -966,7 +975,7 @@ declare class CodeGenProcess {
|
|
|
966
975
|
*/
|
|
967
976
|
createOutputFileInfo = async (configuration, fileNameFull, content) => {
|
|
968
977
|
const fileName = this.fileSystem.cropExtension(fileNameFull);
|
|
969
|
-
const fileExtension =
|
|
978
|
+
const fileExtension = typescript.Extension.Ts;
|
|
970
979
|
|
|
971
980
|
if (configuration.translateToJavaScript) {
|
|
972
981
|
this.logger.debug("using js translator for", fileName);
|
|
@@ -1008,14 +1017,14 @@ declare class CodeGenProcess {
|
|
|
1008
1017
|
servers: servers || [],
|
|
1009
1018
|
basePath,
|
|
1010
1019
|
host,
|
|
1011
|
-
externalDocs:
|
|
1020
|
+
externalDocs: lodash.merge(
|
|
1012
1021
|
{
|
|
1013
1022
|
url: "",
|
|
1014
1023
|
description: "",
|
|
1015
1024
|
},
|
|
1016
1025
|
externalDocs,
|
|
1017
1026
|
),
|
|
1018
|
-
tags:
|
|
1027
|
+
tags: lodash.compact(tags),
|
|
1019
1028
|
baseUrl: serverUrl,
|
|
1020
1029
|
title,
|
|
1021
1030
|
version,
|
|
@@ -1024,11 +1033,11 @@ declare class CodeGenProcess {
|
|
|
1024
1033
|
|
|
1025
1034
|
injectClassInstance = (key, value) => {
|
|
1026
1035
|
this[key] = value;
|
|
1027
|
-
|
|
1036
|
+
for (const instanceKey of PATCHABLE_INSTANCES) {
|
|
1028
1037
|
if (instanceKey !== key && key in this[instanceKey]) {
|
|
1029
1038
|
this[instanceKey][key] = value;
|
|
1030
1039
|
}
|
|
1031
|
-
}
|
|
1040
|
+
}
|
|
1032
1041
|
};
|
|
1033
1042
|
}
|
|
1034
1043
|
|
|
@@ -1431,7 +1440,7 @@ interface Hooks {
|
|
|
1431
1440
|
) => string | undefined;
|
|
1432
1441
|
}
|
|
1433
1442
|
|
|
1434
|
-
type RouteNameRouteInfo = Record<
|
|
1443
|
+
type RouteNameRouteInfo = Record<string, unknown>;
|
|
1435
1444
|
|
|
1436
1445
|
type RouteNameInfo = {
|
|
1437
1446
|
usage: string;
|
|
@@ -1786,13 +1795,13 @@ interface GenerateApiOutput {
|
|
|
1786
1795
|
path: string;
|
|
1787
1796
|
fileName: string;
|
|
1788
1797
|
content: string;
|
|
1789
|
-
withPrefix
|
|
1798
|
+
withPrefix: boolean;
|
|
1790
1799
|
}) => void;
|
|
1791
1800
|
renderTemplate: (
|
|
1792
1801
|
templateContent: string,
|
|
1793
1802
|
data: Record<string, unknown>,
|
|
1794
1803
|
etaOptions?: Partial<eta.EtaConfig>,
|
|
1795
|
-
) => string;
|
|
1804
|
+
) => Promise<string> | string;
|
|
1796
1805
|
getTemplate: (params: {
|
|
1797
1806
|
fileName?: string;
|
|
1798
1807
|
name?: string;
|