{"version":3,"sources":["../index.ts"],"names":["templateGenBaseConfig","TemplatesGenConfig","generateTemplatesCommand","defineCommand","HTTP_CLIENT","args","generateTemplates","codeGenBaseConfig","CodeGenConfig","generateCommand","package_default","customConfig","customConfigPath","f","i","consola","error","generateApi","main","runMain"],"mappings":"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","file":"cli.cjs","sourcesContent":["import * as path from \"node:path\";\nimport * as url from \"node:url\";\nimport { defineCommand, runMain } from \"citty\";\nimport { consola } from \"consola\";\nimport packageJson from \"./package.json\" with { type: \"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\";\nimport type { HttpClientType } from \"./types/index.js\";\n\nconst templateGenBaseConfig = new TemplatesGenConfig({});\n\nconst generateTemplatesCommand = defineCommand({\n  meta: {\n    name: \"generate-templates\",\n    description: 'Generate \".ejs\" templates needed for generate api',\n  },\n  args: {\n    \"clean-output\": {\n      type: \"boolean\",\n      description:\n        \"clean output folder before generate template. WARNING: May cause data loss\",\n      default: templateGenBaseConfig.cleanOutput,\n    },\n    \"http-client\": {\n      type: \"string\",\n      description: `http client type (possible values: ${Object.values(\n        HTTP_CLIENT,\n      )})`,\n      default: templateGenBaseConfig.httpClientType,\n    },\n    modular: {\n      type: \"boolean\",\n      description:\n        \"generate templates needed to separate files for http client, data contracts, and routes\",\n      default: templateGenBaseConfig.modular,\n    },\n    output: {\n      type: \"string\",\n      alias: \"o\",\n      description: \"output path of generated templates\",\n      default: templateGenBaseConfig.output,\n    },\n    rewrite: {\n      type: \"boolean\",\n      alias: \"r\",\n      description: \"rewrite content in existing templates\",\n      default: templateGenBaseConfig.rewrite,\n    },\n    silent: {\n      type: \"boolean\",\n      description: \"Output only errors to console\",\n      default: templateGenBaseConfig.silent,\n    },\n    debug: {\n      type: \"boolean\",\n      description: \"additional information about processes inside this tool\",\n      default: templateGenBaseConfig.debug,\n    },\n  },\n  run: async ({ args }) => {\n    await generateTemplates({\n      cleanOutput: args[\"clean-output\"],\n      httpClientType: args[\"http-client\"] as HttpClientType,\n      modular: args.modular,\n      output: args.output,\n      rewrite: args.rewrite,\n      silent: args.silent,\n      debug: args.debug,\n    });\n  },\n});\n\nconst codeGenBaseConfig = new CodeGenConfig({});\n\nconst generateCommand = defineCommand({\n  meta: {\n    name: \"generate\",\n    description: packageJson.description,\n  },\n  args: {\n    path: {\n      type: \"string\",\n      alias: \"p\",\n      description: \"path/url to swagger scheme\",\n      required: true,\n    },\n    output: {\n      type: \"string\",\n      alias: \"o\",\n      description: \"output path of typescript api file\",\n      default: \"./\",\n    },\n    name: {\n      type: \"string\",\n      alias: \"n\",\n      description: \"name of output typescript api file\",\n      default: codeGenBaseConfig.fileName,\n    },\n    templates: {\n      type: \"string\",\n      alias: \"t\",\n      description: \"path to folder containing templates\",\n    },\n    \"default-as-success\": {\n      type: \"boolean\",\n      alias: \"d\",\n      description:\n        'use \"default\" response status code as success response too. some swagger schemas use \"default\" response status code as success response type by default.',\n      default: codeGenBaseConfig.defaultResponseAsSuccess,\n    },\n    responses: {\n      type: \"boolean\",\n      alias: \"r\",\n      description:\n        \"generate additional information about request responses also add typings for bad responses\",\n      default: codeGenBaseConfig.generateResponses,\n    },\n    \"union-enums\": {\n      type: \"boolean\",\n      description: 'generate all \"enum\" types as union types (T1 | T2 | TN)',\n      default: codeGenBaseConfig.generateUnionEnums,\n    },\n    \"add-readonly\": {\n      type: \"boolean\",\n      description: \"generate readonly properties\",\n      default: codeGenBaseConfig.addReadonly,\n    },\n    \"route-types\": {\n      type: \"boolean\",\n      description: \"generate type definitions for API routes\",\n      default: codeGenBaseConfig.generateRouteTypes,\n    },\n    \"no-client\": {\n      type: \"boolean\",\n      description: \"do not generate an API class\",\n      default: codeGenBaseConfig.generateClient,\n    },\n    \"enum-names-as-values\": {\n      type: \"boolean\",\n      description:\n        \"use values in 'x-enumNames' as enum values (not only as keys)\",\n      default: codeGenBaseConfig.enumNamesAsValues,\n    },\n    \"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    },\n    \"extract-request-body\": {\n      type: \"boolean\",\n      description: \"extract request body type to data contract\",\n      default: codeGenBaseConfig.extractRequestBody,\n    },\n    \"extract-response-body\": {\n      type: \"boolean\",\n      description: \"extract response body type to data contract\",\n      default: codeGenBaseConfig.extractResponseBody,\n    },\n    \"extract-response-error\": {\n      type: \"boolean\",\n      description: \"extract response error type to data contract\",\n      default: codeGenBaseConfig.extractResponseError,\n    },\n    \"extract-responses\": {\n      type: \"boolean\",\n      description: \"extract all responses described in /components/responses\",\n      default: codeGenBaseConfig.extractResponses,\n    },\n    modular: {\n      type: \"boolean\",\n      description:\n        \"generate separated files for http client, data contracts, and routes\",\n      default: codeGenBaseConfig.modular,\n    },\n    js: {\n      type: \"boolean\",\n      description: \"generate js api module with declaration file\",\n      default: codeGenBaseConfig.toJS,\n    },\n    \"module-name-index\": {\n      type: \"string\",\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.toString(),\n    },\n    \"module-name-first-tag\": {\n      type: \"boolean\",\n      description: \"splits routes based on the first tag\",\n      default: codeGenBaseConfig.moduleNameFirstTag,\n    },\n    axios: {\n      type: \"boolean\",\n      description: \"generate axios http client\",\n      default: false,\n    },\n    \"unwrap-response-data\": {\n      type: \"boolean\",\n      description: \"unwrap the data item from the response\",\n      default: codeGenBaseConfig.unwrapResponseData,\n    },\n    \"disable-throw-on-error\": {\n      type: \"boolean\",\n      description: \"Do not throw an error when response.ok is not true\",\n      default: codeGenBaseConfig.disableThrowOnError,\n    },\n    \"single-http-client\": {\n      type: \"boolean\",\n      description: \"Ability to send HttpClient instance to Api constructor\",\n      default: codeGenBaseConfig.singleHttpClient,\n    },\n    silent: {\n      type: \"boolean\",\n      description: \"Output only errors to console\",\n      default: codeGenBaseConfig.silent,\n    },\n    \"default-response\": {\n      type: \"string\",\n      description: \"default type for empty response schema\",\n      default: codeGenBaseConfig.defaultResponseType,\n    },\n    \"type-prefix\": {\n      type: \"string\",\n      description: \"data contract name prefix\",\n      default: codeGenBaseConfig.typePrefix,\n    },\n    \"type-suffix\": {\n      type: \"string\",\n      description: \"data contract name suffix\",\n      default: codeGenBaseConfig.typeSuffix,\n    },\n    \"clean-output\": {\n      type: \"boolean\",\n      description:\n        \"clean output folder before generate api. WARNING: May cause data loss\",\n      default: codeGenBaseConfig.cleanOutput,\n    },\n    \"api-class-name\": {\n      type: \"string\",\n      description: \"name of the api class\",\n      default: codeGenBaseConfig.apiClassName,\n    },\n    patch: {\n      type: \"boolean\",\n      description: \"fix up small errors in the swagger source definition\",\n      default: codeGenBaseConfig.patch,\n    },\n    debug: {\n      type: \"boolean\",\n      description: \"additional information about processes inside this tool\",\n      default: codeGenBaseConfig.debug,\n    },\n    \"another-array-type\": {\n      type: \"boolean\",\n      description: \"generate array types as Array<Type> (by default Type[])\",\n      default: codeGenBaseConfig.anotherArrayType,\n    },\n    \"sort-types\": {\n      type: \"boolean\",\n      description: \"sort fields and types\",\n      default: codeGenBaseConfig.sortTypes,\n    },\n    \"extract-enums\": {\n      type: \"boolean\",\n      description:\n        \"extract all enums from inline interface/type content to typescript enum construction\",\n      default: codeGenBaseConfig.extractEnums,\n    },\n    \"sort-routes\": {\n      type: \"boolean\",\n      description: \"sort routes in alphabetical order\",\n      default: codeGenBaseConfig.sortRoutes,\n    },\n    \"custom-config\": {\n      type: \"string\",\n      description: \"custom config: primitiveTypeConstructs, hooks, ... \",\n    },\n  },\n  run: async ({ args }) => {\n    let customConfig;\n\n    if (args[\"custom-config\"]) {\n      try {\n        const customConfigPath = url\n          .pathToFileURL(path.resolve(process.cwd(), args[\"custom-config\"]))\n          .toString();\n        customConfig = await import(customConfigPath);\n        customConfig = customConfig.default || customConfig;\n        if (customConfig) {\n          consola.info(`Found custom config at: ${customConfigPath}`);\n        }\n      } catch (error) {\n        consola.error(\"Error loading custom config:\", error);\n      }\n    }\n\n    await generateApi({\n      addReadonly: args[\"add-readonly\"],\n      anotherArrayType: args[\"another-array-type\"],\n      apiClassName: args[\"api-class-name\"],\n      cleanOutput: args[\"clean-output\"],\n      debug: args.debug,\n      defaultResponseAsSuccess: args[\"default-as-success\"],\n      defaultResponseType: args[\"default-response\"],\n      disableThrowOnError: args[\"disable-throw-on-error\"],\n      enumNamesAsValues: args[\"enum-names-as-values\"],\n      extractEnums: args[\"extract-enums\"],\n      extractRequestBody: args[\"extract-request-body\"],\n      extractRequestParams: args[\"extract-request-params\"],\n      extractResponseBody: args[\"extract-response-body\"],\n      extractResponseError: args[\"extract-response-error\"],\n      extractResponses: args[\"extract-responses\"],\n      fileName: args.name,\n      generateClient: !(args.axios || args[\"no-client\"]),\n      generateResponses: args.responses,\n      generateRouteTypes: args[\"route-types\"],\n      generateUnionEnums: args[\"union-enums\"],\n      httpClientType:\n        args[\"http-client\"] || args.axios\n          ? HTTP_CLIENT.AXIOS\n          : HTTP_CLIENT.FETCH,\n      input: path.resolve(process.cwd(), args.path as string),\n      modular: args.modular,\n      moduleNameFirstTag: args[\"module-name-first-tag\"],\n      moduleNameIndex: +args[\"module-name-index\"] || 0,\n      output: path.resolve(process.cwd(), (args.output as string) || \".\"),\n      patch: args.patch,\n      silent: args.silent,\n      singleHttpClient: args[\"single-http-client\"],\n      sortRoutes: args[\"sort-routes\"],\n      sortTypes: args[\"sort-types\"],\n      templates: args.templates,\n      toJS: args.js,\n      typePrefix: args[\"type-prefix\"],\n      typeSuffix: args[\"type-suffix\"],\n      unwrapResponseData: args[\"unwrap-response-data\"],\n      url: args.path,\n      ...customConfig,\n    });\n  },\n});\n\nconst main = defineCommand({\n  meta: {\n    name: packageJson.name,\n    description: packageJson.description,\n    version: packageJson.version,\n  },\n  subCommands: {\n    generate: generateCommand,\n    \"generate-templates\": generateTemplatesCommand,\n  },\n});\n\nrunMain(main);\n"]}