From 0c096821e1f99bf9bbc46ed781db98c9d02a2037 Mon Sep 17 00:00:00 2001 From: Jure Rotar Date: Thu, 22 Jan 2026 13:29:35 +0100 Subject: [PATCH 1/2] chore: replaced prettier with oxfmt --- .editorconfig | 25 ++- .eslintrc.json | 10 +- .oxfmtrc.json | 5 + .prettierignore | 1 - .prettierrc.json | 3 - README.md | 4 +- esbuild.mjs | 5 +- package.json | 87 ++++---- src/commands/generate.command.ts | 4 +- src/commands/generate.ts | 20 +- src/generators/core/SchemaResolver.class.ts | 2 +- .../core/endpoints/getEndpointParameter.ts | 2 +- .../updateExtractedEnumZodSchemaData.ts | 2 +- src/generators/core/zod/getZodSchema.ts | 2 +- src/generators/types/options.ts | 3 +- .../utils/generate/generate.zod.utils.ts | 2 +- yarn.lock | 193 +++++++++--------- 17 files changed, 194 insertions(+), 176 deletions(-) create mode 100644 .oxfmtrc.json delete mode 100644 .prettierignore delete mode 100644 .prettierrc.json diff --git a/.editorconfig b/.editorconfig index 1ed453a..0707252 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,10 +1,31 @@ root = true [*] +ij_html_space_inside_empty_tag = true end_of_line = lf insert_final_newline = true - -[*.{js,json,yml}] charset = utf-8 indent_style = space indent_size = 2 +trim_trailing_whitespace = true +max_line_length = 120 + +# quote style +ij_javascript_force_quote_style = true +ij_typescript_force_quote_style = true +ij_javascript_use_double_quotes = false +ij_typescript_use_double_quotes = false + +# bracket spacing +ij_javascript_spaces_within_object_literal_braces = true +ij_typescript_spaces_within_object_literal_braces = true +ij_javascript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_object_type_braces = true + +# imports +ij_javascript_spaces_within_imports = true +ij_typescript_spaces_within_imports = true +ij_javascript_import_merge_members = true +ij_typescript_import_merge_members = true +ij_javascript_import_sort_members = true +ij_typescript_import_sort_members = true diff --git a/.eslintrc.json b/.eslintrc.json index 7f497c0..e702cbb 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,7 +1,7 @@ { "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "prettier", "no-relative-import-paths"], - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], + "plugins": ["@typescript-eslint", "no-relative-import-paths"], + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], "parserOptions": { "project": "./tsconfig.eslint.json" }, @@ -11,12 +11,6 @@ }, "rules": { "no-console": ["error"], - "prettier/prettier": [ - "error", - { - "endOfLine": "auto" - } - ], "@typescript-eslint/no-explicit-any": ["error"], "@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }], "no-relative-import-paths/no-relative-import-paths": ["error", { "allowSameFolder": true }], diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000..dca49af --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,5 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 120, + "ignorePatterns": ["**/*.hbs"] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 52d3ef4..0000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -**/*.hbs \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 963354f..0000000 --- a/.prettierrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "printWidth": 120 -} diff --git a/README.md b/README.md index 899a53b..2c2cc05 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ yarn openapi-codegen generate --config my-config.ts --config Path to TS config file (default: 'openapi-codegen.config.ts') --input Path/URL to OpenAPI JSON/YAML document --output Output directory path (default: 'output') - --prettier Format the generated code using Prettier (default: true) + --format Format the generated code using Oxfmt (default: true) --verbose Display detailed log messages during execution (default: false) --splitByTags Organize output into separate folders based on OpenAPI operation tags (default: true) @@ -276,7 +276,7 @@ export class JSONDto { ```ts export class JSONDto { - @ApiProperty({ additionalProperties: { type: 'any' } }) + @ApiProperty({ additionalProperties: { type: "any" } }) @Expose() @IsObject() nested: NestedDto; diff --git a/esbuild.mjs b/esbuild.mjs index dea22d5..c7f1530 100644 --- a/esbuild.mjs +++ b/esbuild.mjs @@ -3,10 +3,7 @@ import fs from "fs"; const packageJson = JSON.parse(fs.readFileSync("package.json", "utf-8")); -const external = [ - ...Object.keys(packageJson.dependencies || {}), - ...Object.keys(packageJson.peerDependencies || {}), -]; +const external = [...Object.keys(packageJson.dependencies || {}), ...Object.keys(packageJson.peerDependencies || {})]; // CLI and Node.js builds - run in Node.js const nodeBuildOptions = { diff --git a/package.json b/package.json index 84ca51c..d283816 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,29 @@ { "name": "@povio/openapi-codegen-cli", "version": "2.0.1", + "keywords": [ + "codegen", + "openapi", + "povio", + "react-query", + "zod" + ], + "homepage": "https://github.com/povio/openapi-codegen-cli", + "bugs": "https://github.com/povio/openapi-codegen-cli/issues", + "license": "BSD-3-Clause", + "repository": { + "type": "git", + "url": "git+https://github.com/povio/openapi-codegen-cli.git" + }, + "bin": { + "openapi-codegen": "./dist/sh.js" + }, + "files": [ + "README.md", + "dist/*", + "src/assets/**", + "src/generators/templates/**" + ], "main": "./dist/index.js", "types": "./dist/index.d.ts", "exports": { @@ -20,9 +43,6 @@ "require": "./dist/acl.js" } }, - "bin": { - "openapi-codegen": "./dist/sh.js" - }, "scripts": { "start": "node --import tsx ./src/sh.ts", "test": "vitest run", @@ -38,52 +58,15 @@ "dev:generate": "rm -rf ./output && yarn start generate --config ./test/config.ts", "dev:check": "yarn start check --config ./test/config.ts" }, - "files": [ - "dist/*", - "src/assets/**", - "src/generators/templates/**", - "README.md" - ], - "keywords": [ - "povio", - "openapi", - "codegen", - "zod", - "react-query" - ], - "homepage": "https://github.com/povio/openapi-codegen-cli", - "bugs": "https://github.com/povio/openapi-codegen-cli/issues", - "repository": { - "url": "git+https://github.com/povio/openapi-codegen-cli.git", - "type": "git" - }, - "license": "BSD-3-Clause", "dependencies": { "import-fresh": "^3.3.1" }, - "peerDependencies": { - "@casl/ability": "^6.7.3", - "@casl/react": "^5.0.0", - "@tanstack/react-query": "^5.85.9", - "axios": "^1.13.1", - "react": "^19.1.0", - "zod": "^4.1.12" - }, - "peerDependenciesMeta": { - "@casl/ability": { - "optional": true - }, - "@casl/react": { - "optional": true - } - }, "devDependencies": { "@apidevtools/swagger-parser": "^10.1.0", "@casl/ability": "^6.7.3", "@casl/react": "^5.0.0", "@tanstack/react-query": "~5.85.9", "@types/node": "^20.12.12", - "@types/prettier": "^3.0.0", "@types/prompt-sync": "^4.2.3", "@types/react": "^19.1.0", "@types/yargs": "^17.0.32", @@ -93,12 +76,10 @@ "chalk": "^5.3.0", "esbuild": "^0.21.3", "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", "eslint-plugin-no-relative-import-paths": "^1.6.1", - "eslint-plugin-prettier": "^5.1.3", "handlebars": "^4.7.8", "openapi-types": "^12.1.3", - "prettier": "^3.2.5", + "oxfmt": "^0.26.0", "prompt-sync": "^4.2.0", "react": "^19.1.0", "reflect-metadata": "^0.2.2", @@ -111,10 +92,26 @@ "yargs": "^17.7.2", "zod": "^4.1.12" }, + "peerDependencies": { + "@casl/ability": "^6.7.3", + "@casl/react": "^5.0.0", + "@tanstack/react-query": "^5.85.9", + "axios": "^1.13.1", + "react": "^19.1.0", + "zod": "^4.1.12" + }, + "peerDependenciesMeta": { + "@casl/ability": { + "optional": true + }, + "@casl/react": { + "optional": true + } + }, "engines": { "node": ">= 14", - "yarn": ">= 3.2", - "npm": ">= 8" + "npm": ">= 8", + "yarn": ">= 3.2" }, "packageManager": "yarn@4.2.2" } diff --git a/src/commands/generate.command.ts b/src/commands/generate.command.ts index 16c22bc..ab43b6a 100644 --- a/src/commands/generate.command.ts +++ b/src/commands/generate.command.ts @@ -71,8 +71,8 @@ class GenerateOptions implements GenerateParams { @YargOption({ envAlias: "builderConfigs", type: "boolean" }) builderConfigs?: boolean; - @YargOption({ envAlias: "prettier", default: true, type: "boolean" }) - prettier?: boolean; + @YargOption({ envAlias: "format", default: true, type: "boolean" }) + format?: boolean; @YargOption({ envAlias: "verbose", default: false, type: "boolean" }) verbose?: boolean; diff --git a/src/commands/generate.ts b/src/commands/generate.ts index 616352f..8f19843 100644 --- a/src/commands/generate.ts +++ b/src/commands/generate.ts @@ -11,7 +11,7 @@ import { loadConfig } from "src/helpers/config.helper"; export type GenerateParams = { config?: string; excludeTags?: string; - prettier?: boolean; + format?: boolean; verbose?: boolean; } & Partial< Pick< @@ -37,7 +37,7 @@ export type GenerateParams = { > >; -export async function generate({ prettier, verbose, config: configParam, ...params }: GenerateParams) { +export async function generate({ format, verbose, config: configParam, ...params }: GenerateParams) { const start = Date.now(); if (verbose) { @@ -64,22 +64,22 @@ export async function generate({ prettier, verbose, config: configParam, ...para logSuccess(`Time: ${Date.now() - start}ms`); } - if (prettier) { - execPrettier({ output: config.output, verbose }); + if (format) { + execOxfmt({ output: config.output, verbose }); } } -function execPrettier({ output, verbose }: Pick) { +function execOxfmt({ output, verbose }: Pick) { if (verbose) { - logInfo("Running Prettier..."); + logInfo("Running Oxfmt..."); } - const ignorePathArg = process.env.NODE_ENV === "production" ? "" : "--ignore-path .prettierignore"; - exec(`prettier --write ${output} ${ignorePathArg}`, (error) => { + + exec(`oxfmt ${output}`, (error) => { if (verbose) { if (error) { - logError(error, "Prettier error"); + logError(error, "Oxfmt error"); } else { - logSuccess("Prettier finished."); + logSuccess("Oxfmt finished."); } } }); diff --git a/src/generators/core/SchemaResolver.class.ts b/src/generators/core/SchemaResolver.class.ts index 0cdc69c..48b86b2 100644 --- a/src/generators/core/SchemaResolver.class.ts +++ b/src/generators/core/SchemaResolver.class.ts @@ -143,7 +143,7 @@ export class SchemaResolver { } const schemaRef = this.getRefByZodSchemaName(zodSchemaName); - const schemaTags = schemaRef ? this.getSchemaDataByRef(schemaRef)?.tags ?? [] : []; + const schemaTags = schemaRef ? (this.getSchemaDataByRef(schemaRef)?.tags ?? []) : []; const zodSchemaTags = this.zodSchemaData.find((data) => data.zodSchemaName === zodSchemaName)?.tags ?? []; const tags = getUniqueArray(schemaTags, zodSchemaTags); const tag = tags.length === 1 ? tags[0] : this.options.defaultTag; diff --git a/src/generators/core/endpoints/getEndpointParameter.ts b/src/generators/core/endpoints/getEndpointParameter.ts index e101795..5130bf8 100644 --- a/src/generators/core/endpoints/getEndpointParameter.ts +++ b/src/generators/core/endpoints/getEndpointParameter.ts @@ -82,7 +82,7 @@ export function getEndpointParameter({ const zodSchema = getZodSchema({ schema, resolver, - meta: { isRequired: paramObj.in === "path" ? true : paramObj.required ?? false }, + meta: { isRequired: paramObj.in === "path" ? true : (paramObj.required ?? false) }, tag, }); diff --git a/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts b/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts index 5182e4e..3a98d47 100644 --- a/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts +++ b/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts @@ -78,7 +78,7 @@ function handleExtractedEnumZodSchemaDataUpdate({ getNotAllowedInlineEnumError( schemaRef ? `${getSchemaNameByRef(schemaRef)}.${nameSegments[nameSegments.length - 1]}` - : schemaInfo ?? nameSegments.join("."), + : (schemaInfo ?? nameSegments.join(".")), ), ); } diff --git a/src/generators/core/zod/getZodSchema.ts b/src/generators/core/zod/getZodSchema.ts index aa409dc..41d08e6 100644 --- a/src/generators/core/zod/getZodSchema.ts +++ b/src/generators/core/zod/getZodSchema.ts @@ -193,7 +193,7 @@ function getReferenceZodSchema({ schema, zodSchema, resolver, meta, tag }: GetPa const refsPath = zodSchema.meta.referencedBy .slice(0, -1) - .map((prev) => (prev.ref ? resolver.getZodSchemaNameByRef(prev.ref) ?? prev.ref : undefined)) + .map((prev) => (prev.ref ? (resolver.getZodSchemaNameByRef(prev.ref) ?? prev.ref) : undefined)) .filter(Boolean); const zodSchemaName = resolver.getZodSchemaNameByRef(schema.$ref); if (refsPath.length > 1 && refsPath.includes(zodSchemaName)) { diff --git a/src/generators/types/options.ts b/src/generators/types/options.ts index bac020e..e9d68d3 100644 --- a/src/generators/types/options.ts +++ b/src/generators/types/options.ts @@ -71,7 +71,8 @@ interface BaseGenerateOptions { } export interface GenerateOptions - extends BaseGenerateOptions, + extends + BaseGenerateOptions, ZodGenerateOptions, EndpointsGenerateOptions, QueriesGenerateOptions, diff --git a/src/generators/utils/generate/generate.zod.utils.ts b/src/generators/utils/generate/generate.zod.utils.ts index fe0bad4..d3886f8 100644 --- a/src/generators/utils/generate/generate.zod.utils.ts +++ b/src/generators/utils/generate/generate.zod.utils.ts @@ -43,7 +43,7 @@ export const getImportedZodSchemaInferedTypeName = ( }; export function getZodSchemaType(data: GenerateZodSchemaData) { - return data.isEnum ? "enum" : data.schemaObj?.type ?? "object"; + return data.isEnum ? "enum" : (data.schemaObj?.type ?? "object"); } export function getZodSchemaDescription(data: GenerateZodSchemaData) { diff --git a/yarn.lock b/yarn.lock index 47f6a9d..f0cdbea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -614,6 +614,62 @@ __metadata: languageName: node linkType: hard +"@oxfmt/darwin-arm64@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/darwin-arm64@npm:0.26.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/darwin-x64@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/darwin-x64@npm:0.26.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxfmt/linux-arm64-gnu@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/linux-arm64-gnu@npm:0.26.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/linux-arm64-musl@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/linux-arm64-musl@npm:0.26.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/linux-x64-gnu@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/linux-x64-gnu@npm:0.26.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/linux-x64-musl@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/linux-x64-musl@npm:0.26.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/win32-arm64@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/win32-arm64@npm:0.26.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/win32-x64@npm:0.26.0": + version: 0.26.0 + resolution: "@oxfmt/win32-x64@npm:0.26.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -621,13 +677,6 @@ __metadata: languageName: node linkType: hard -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8 - languageName: node - linkType: hard - "@povio/openapi-codegen-cli@workspace:.": version: 0.0.0-use.local resolution: "@povio/openapi-codegen-cli@workspace:." @@ -637,7 +686,6 @@ __metadata: "@casl/react": "npm:^5.0.0" "@tanstack/react-query": "npm:~5.85.9" "@types/node": "npm:^20.12.12" - "@types/prettier": "npm:^3.0.0" "@types/prompt-sync": "npm:^4.2.3" "@types/react": "npm:^19.1.0" "@types/yargs": "npm:^17.0.32" @@ -647,13 +695,11 @@ __metadata: chalk: "npm:^5.3.0" esbuild: "npm:^0.21.3" eslint: "npm:^8.57.0" - eslint-config-prettier: "npm:^9.1.0" eslint-plugin-no-relative-import-paths: "npm:^1.6.1" - eslint-plugin-prettier: "npm:^5.1.3" handlebars: "npm:^4.7.8" import-fresh: "npm:^3.3.1" openapi-types: "npm:^12.1.3" - prettier: "npm:^3.2.5" + oxfmt: "npm:^0.26.0" prompt-sync: "npm:^4.2.0" react: "npm:^19.1.0" reflect-metadata: "npm:^0.2.2" @@ -884,15 +930,6 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^3.0.0": - version: 3.0.0 - resolution: "@types/prettier@npm:3.0.0" - dependencies: - prettier: "npm:*" - checksum: 10c0/edab8c0c0e56936e89c919cac17e384a9f231ce12062fb3beeb45bc45e7dcc4035dd3d7df3333b0bdd39f3b4501f22267a9dba45e22b9728c139857142e90282 - languageName: node - linkType: hard - "@types/prompt-sync@npm:^4.2.3": version: 4.2.3 resolution: "@types/prompt-sync@npm:4.2.3" @@ -1895,17 +1932,6 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d - languageName: node - linkType: hard - "eslint-plugin-no-relative-import-paths@npm:^1.6.1": version: 1.6.1 resolution: "eslint-plugin-no-relative-import-paths@npm:1.6.1" @@ -1913,26 +1939,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" - dependencies: - prettier-linter-helpers: "npm:^1.0.0" - synckit: "npm:^0.8.6" - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - eslint-config-prettier: "*" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: 10c0/f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09 - languageName: node - linkType: hard - "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -2098,13 +2104,6 @@ __metadata: languageName: node linkType: hard -"fast-diff@npm:^1.1.2": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29 - languageName: node - linkType: hard - "fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" @@ -3111,6 +3110,42 @@ __metadata: languageName: node linkType: hard +"oxfmt@npm:^0.26.0": + version: 0.26.0 + resolution: "oxfmt@npm:0.26.0" + dependencies: + "@oxfmt/darwin-arm64": "npm:0.26.0" + "@oxfmt/darwin-x64": "npm:0.26.0" + "@oxfmt/linux-arm64-gnu": "npm:0.26.0" + "@oxfmt/linux-arm64-musl": "npm:0.26.0" + "@oxfmt/linux-x64-gnu": "npm:0.26.0" + "@oxfmt/linux-x64-musl": "npm:0.26.0" + "@oxfmt/win32-arm64": "npm:0.26.0" + "@oxfmt/win32-x64": "npm:0.26.0" + tinypool: "npm:2.0.0" + dependenciesMeta: + "@oxfmt/darwin-arm64": + optional: true + "@oxfmt/darwin-x64": + optional: true + "@oxfmt/linux-arm64-gnu": + optional: true + "@oxfmt/linux-arm64-musl": + optional: true + "@oxfmt/linux-x64-gnu": + optional: true + "@oxfmt/linux-x64-musl": + optional: true + "@oxfmt/win32-arm64": + optional: true + "@oxfmt/win32-x64": + optional: true + bin: + oxfmt: bin/oxfmt + checksum: 10c0/7e782fdd313883fb51998724ebe4402423a6d67348378402ddf6b5d8751fc891d1538d1d5289a524c988b29678e29ba94924655cdf252a90c68b6b24a8b02a92 + languageName: node + linkType: hard + "p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -3231,24 +3266,6 @@ __metadata: languageName: node linkType: hard -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: "npm:^1.1.2" - checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab - languageName: node - linkType: hard - -"prettier@npm:*, prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 - languageName: node - linkType: hard - "proc-log@npm:^3.0.0": version: 3.0.0 resolution: "proc-log@npm:3.0.0" @@ -3657,16 +3674,6 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" - dependencies: - "@pkgr/core": "npm:^0.1.0" - tslib: "npm:^2.6.2" - checksum: 10c0/c3d3aa8e284f3f84f2f868b960c9f49239b364e35f6d20825a448449a3e9c8f49fe36cdd5196b30615682f007830d46f2ea354003954c7336723cb821e4b6519 - languageName: node - linkType: hard - "tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.1 resolution: "tar@npm:6.2.1" @@ -3695,6 +3702,13 @@ __metadata: languageName: node linkType: hard +"tinypool@npm:2.0.0": + version: 2.0.0 + resolution: "tinypool@npm:2.0.0" + checksum: 10c0/3888cc668cdbb1bc85e1b58587897501254ffc5de52cf4e0d30936869922a4eaf2f085ce10562122df3eb7536cbf3d29ecc2faba37656933649d1d2f5bc9bff7 + languageName: node + linkType: hard + "tinypool@npm:^1.0.0": version: 1.0.1 resolution: "tinypool@npm:1.0.1" @@ -3779,13 +3793,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb - languageName: node - linkType: hard - "tsx@npm:^4.10.5": version: 4.10.5 resolution: "tsx@npm:4.10.5" From 045a8e6751e961ac256c098a9fb5aaa9437ee8eb Mon Sep 17 00:00:00 2001 From: Jure Rotar Date: Fri, 23 Jan 2026 11:03:43 +0100 Subject: [PATCH 2/2] chore: added import sorting, formatted the project --- .oxfmtrc.json | 15 +++++++++++++++ esbuild.mjs | 3 ++- src/assets/useMutationEffects.ts | 3 ++- src/commands/check.command.ts | 3 ++- src/commands/check.ts | 3 ++- src/commands/generate.command.ts | 1 + src/commands/generate.ts | 4 +++- src/generator.ts | 4 +++- src/generators/checkOpenAPIDoc.ts | 3 ++- src/generators/const/deps.const.ts | 1 + src/generators/const/options.const.ts | 3 ++- src/generators/core/SchemaResolver.class.ts | 3 ++- src/generators/core/endpoints/getEndpointAcl.ts | 2 +- src/generators/core/endpoints/getEndpointBody.ts | 8 ++++---- .../core/endpoints/getEndpointParameter.ts | 8 ++++---- .../endpoints/getEndpointsFromOpenAPIDoc.test.ts | 4 +++- .../core/endpoints/getEndpointsFromOpenAPIDoc.ts | 1 + src/generators/core/getDataFromOpenAPIDoc.ts | 1 + .../core/getMetadataFromOpenAPIDoc.test.ts | 6 ++++-- src/generators/core/getMetadataFromOpenAPIDoc.ts | 1 + .../openapi/getOpenAPISchemaComplexity.test.ts | 1 + .../core/openapi/getOpenAPISchemaComplexity.ts | 2 +- .../getOpenAPISchemaDependencyGraph.test.ts | 3 ++- .../openapi/getOpenAPISchemaDependencyGraph.ts | 1 + src/generators/core/openapi/getSchemaRefObjs.ts | 3 ++- src/generators/core/resolveConfig.ts | 2 +- src/generators/core/zod/ZodSchema.class.ts | 2 +- .../resolveExtractedEnumZodSchemaNames.ts | 2 +- .../resolveExtractedEnumZodSchemaTags.ts | 2 +- .../updateExtractedEnumZodSchemaData.ts | 6 +++--- src/generators/core/zod/getZodChain.ts | 1 + src/generators/core/zod/getZodSchema.test.ts | 3 ++- src/generators/core/zod/getZodSchema.ts | 3 ++- src/generators/core/zod/getZodSchemaRefs.ts | 1 + .../core/zod/getZodSchemasFromOpenAPIDoc.ts | 3 ++- src/generators/core/zod/resolveZodSchemaName.ts | 3 ++- .../core/zod/sortZodSchemasByTopology.ts | 2 +- src/generators/generate/generateAppRestClient.ts | 2 +- src/generators/generateCodeFromOpenAPIDoc.ts | 1 + src/generators/types/endpoint.ts | 1 + src/generators/types/generate.ts | 1 + src/generators/types/metadata.ts | 1 + src/generators/utils/endpoint.utils.test.ts | 1 + src/generators/utils/file.utils.ts | 1 + src/generators/utils/generate-files.utils.ts | 1 + .../utils/generate/generate.acl.utils.ts | 1 + .../utils/generate/generate.configs.utils.ts | 1 + .../utils/generate/generate.endpoints.utils.ts | 1 + .../utils/generate/generate.imports.utils.test.ts | 1 + .../utils/generate/generate.imports.utils.ts | 1 + src/generators/utils/generate/generate.utils.ts | 1 + .../utils/generate/generate.zod.utils.ts | 1 + src/generators/utils/hbs/hbs-template.utils.ts | 1 + src/generators/utils/hbs/hbs.zod.utils.ts | 2 +- src/generators/utils/js.utils.test.ts | 1 + src/generators/utils/namespace.utils.ts | 1 + src/generators/utils/object.utils.test.ts | 1 + src/generators/utils/object.utils.ts | 2 +- src/generators/utils/openapi.utils.test.ts | 1 + src/generators/utils/openapi.utils.ts | 5 +++-- src/generators/utils/operation.utils.test.ts | 3 ++- src/generators/utils/operation.utils.ts | 1 + src/generators/utils/query.utils.ts | 1 + src/generators/utils/string.utils.test.ts | 1 + src/generators/utils/tag.utils.ts | 1 + src/generators/utils/ts.utils.ts | 5 +++-- src/generators/utils/zod-schema.utils.ts | 1 + src/helpers/cli.helper.ts | 1 + src/helpers/config.helper.ts | 2 ++ src/lib/acl/AclGuard.tsx | 3 +-- src/lib/acl/Can.tsx | 4 ++-- src/lib/acl/ability.context.tsx | 6 +++--- src/lib/auth/AuthGuard.tsx | 2 +- src/lib/rest/rest-client.ts | 2 +- src/sh.ts | 1 + 75 files changed, 128 insertions(+), 53 deletions(-) diff --git a/.oxfmtrc.json b/.oxfmtrc.json index dca49af..746512c 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -1,5 +1,20 @@ { "$schema": "./node_modules/oxfmt/configuration_schema.json", "printWidth": 120, + "experimentalSortImports": { + "customGroups": [ + { + "groupName": "at-alias", + "elementNamePattern": ["@"] + }, + { + "groupName": "hash-alias", + "elementNamePattern": ["#"] + } + ], + "groups": ["builtin", "external", "internal", "at-alias", "hash-alias", ["parent", "sibling", "index"], "unknown"], + "newlinesBetween": true, + "internalPattern": ["^src/"] + }, "ignorePatterns": ["**/*.hbs"] } diff --git a/esbuild.mjs b/esbuild.mjs index c7f1530..f0ae06c 100644 --- a/esbuild.mjs +++ b/esbuild.mjs @@ -1,6 +1,7 @@ -import { build } from "esbuild"; import fs from "fs"; +import { build } from "esbuild"; + const packageJson = JSON.parse(fs.readFileSync("package.json", "utf-8")); const external = [...Object.keys(packageJson.dependencies || {}), ...Object.keys(packageJson.peerDependencies || {})]; diff --git a/src/assets/useMutationEffects.ts b/src/assets/useMutationEffects.ts index d2712f2..9eebca9 100644 --- a/src/assets/useMutationEffects.ts +++ b/src/assets/useMutationEffects.ts @@ -1,7 +1,8 @@ -import { QueryKey, useQueryClient } from "@tanstack/react-query"; import { useCallback } from "react"; import { OpenApiQueryConfig } from "@povio/openapi-codegen-cli"; +import { QueryKey, useQueryClient } from "@tanstack/react-query"; + import { QueryModule } from "./queryModules"; export interface MutationEffectsOptions { diff --git a/src/commands/check.command.ts b/src/commands/check.command.ts index 39e22dd..71f5870 100644 --- a/src/commands/check.command.ts +++ b/src/commands/check.command.ts @@ -1,7 +1,8 @@ -import yargs from "yargs"; import { logBanner } from "src/helpers/cli.helper"; import { getVersion } from "src/helpers/version.helper"; import { getBuilder, YargOption } from "src/helpers/yargs.helper"; +import yargs from "yargs"; + import { check, CheckParams } from "./check"; class CheckOptions implements CheckParams { diff --git a/src/commands/check.ts b/src/commands/check.ts index 8bc9fb6..51c7a54 100644 --- a/src/commands/check.ts +++ b/src/commands/check.ts @@ -1,4 +1,3 @@ -import SwaggerParser from "@apidevtools/swagger-parser"; import { OpenAPIV3 } from "openapi-types"; import { checkOpenAPIDoc } from "src/generators/checkOpenAPIDoc"; import { resolveConfig } from "src/generators/core/resolveConfig"; @@ -6,6 +5,8 @@ import { GenerateOptions } from "src/generators/types/options"; import { logInfo, logSuccess } from "src/helpers/cli.helper"; import { loadConfig } from "src/helpers/config.helper"; +import SwaggerParser from "@apidevtools/swagger-parser"; + export type CheckParams = { config?: string; excludeTags?: string; diff --git a/src/commands/generate.command.ts b/src/commands/generate.command.ts index ab43b6a..26b0216 100644 --- a/src/commands/generate.command.ts +++ b/src/commands/generate.command.ts @@ -2,6 +2,7 @@ import { logBanner } from "src/helpers/cli.helper"; import { getVersion } from "src/helpers/version.helper"; import { getBuilder, YargOption } from "src/helpers/yargs.helper"; import yargs from "yargs"; + import { generate, GenerateParams } from "./generate"; class GenerateOptions implements GenerateParams { diff --git a/src/commands/generate.ts b/src/commands/generate.ts index 8f19843..327352b 100644 --- a/src/commands/generate.ts +++ b/src/commands/generate.ts @@ -1,5 +1,5 @@ -import SwaggerParser from "@apidevtools/swagger-parser"; import { exec } from "child_process"; + import { OpenAPIV3 } from "openapi-types"; import { resolveConfig } from "src/generators/core/resolveConfig"; import { generateCodeFromOpenAPIDoc } from "src/generators/generateCodeFromOpenAPIDoc"; @@ -8,6 +8,8 @@ import { writeGenerateFileData } from "src/generators/utils/file.utils"; import { logError, logInfo, logSuccess } from "src/helpers/cli.helper"; import { loadConfig } from "src/helpers/config.helper"; +import SwaggerParser from "@apidevtools/swagger-parser"; + export type GenerateParams = { config?: string; excludeTags?: string; diff --git a/src/generator.ts b/src/generator.ts index 668876c..bf4bcd7 100644 --- a/src/generator.ts +++ b/src/generator.ts @@ -1,5 +1,7 @@ -import SwaggerParser from "@apidevtools/swagger-parser"; import { OpenAPIV3 } from "openapi-types"; + +import SwaggerParser from "@apidevtools/swagger-parser"; + import { DEFAULT_GENERATE_OPTIONS } from "./generators/const/options.const"; import { getMetadataFromOpenAPIDoc } from "./generators/core/getMetadataFromOpenAPIDoc"; import { generateCodeFromOpenAPIDoc } from "./generators/generateCodeFromOpenAPIDoc"; diff --git a/src/generators/checkOpenAPIDoc.ts b/src/generators/checkOpenAPIDoc.ts index 4e2614f..d911784 100644 --- a/src/generators/checkOpenAPIDoc.ts +++ b/src/generators/checkOpenAPIDoc.ts @@ -1,5 +1,7 @@ import { OpenAPIV3 } from "openapi-types"; import { chk } from "src/helpers/chalk.helper"; +import { log } from "src/helpers/cli.helper"; + import { VALIDATION_ERROR_TYPE_TITLE } from "./const/validation.const"; import { getDataFromOpenAPIDoc } from "./core/getDataFromOpenAPIDoc"; import { GenerateType } from "./types/generate"; @@ -8,7 +10,6 @@ import { ValidationErrorType } from "./types/validation"; import { getOutputFileName } from "./utils/file.utils"; import { getTagFileName } from "./utils/generate/generate.utils"; import { groupByType } from "./utils/validation.utils"; -import { log } from "src/helpers/cli.helper"; export function checkOpenAPIDoc(openApiDoc: OpenAPIV3.Document, options: GenerateOptions) { const { resolver, data } = getDataFromOpenAPIDoc(openApiDoc, options); diff --git a/src/generators/const/deps.const.ts b/src/generators/const/deps.const.ts index d548405..6f7e011 100644 --- a/src/generators/const/deps.const.ts +++ b/src/generators/const/deps.const.ts @@ -1,4 +1,5 @@ import { GenerateFile, Import } from "src/generators/types/generate"; + import { ACL_PACKAGE_IMPORT_PATH, PACKAGE_IMPORT_PATH } from "./package.const"; export const APP_REST_CLIENT_NAME = "AppRestClient"; diff --git a/src/generators/const/options.const.ts b/src/generators/const/options.const.ts index 4295a93..ef6958c 100644 --- a/src/generators/const/options.const.ts +++ b/src/generators/const/options.const.ts @@ -1,7 +1,8 @@ import { GenerateType } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; -import { ENUM_SUFFIX, SCHEMA_SUFFIX } from "./zod.const"; + import { PACKAGE_IMPORT_PATH } from "./package.const"; +import { ENUM_SUFFIX, SCHEMA_SUFFIX } from "./zod.const"; export const DEFAULT_GENERATE_OPTIONS: GenerateOptions = { // Base options diff --git a/src/generators/core/SchemaResolver.class.ts b/src/generators/core/SchemaResolver.class.ts index 48b86b2..7ddee67 100644 --- a/src/generators/core/SchemaResolver.class.ts +++ b/src/generators/core/SchemaResolver.class.ts @@ -28,13 +28,14 @@ import { getZodSchemaName, getZodSchemaOperationName, } from "src/generators/utils/zod-schema.utils"; + import { DependencyGraph, getOpenAPISchemaDependencyGraph } from "./openapi/getOpenAPISchemaDependencyGraph"; import { getDeepSchemaRefObjs, getSchemaRefObjs } from "./openapi/getSchemaRefObjs"; -import { ZodSchema } from "./zod/ZodSchema.class"; import { resolveExtractedEnumZodSchemaNames } from "./zod/enumExtraction/resolveExtractedEnumZodSchemaNames"; import { resolveExtractedEnumZodSchemaTags } from "./zod/enumExtraction/resolveExtractedEnumZodSchemaTags"; import { updateExtractedEnumZodSchemaData } from "./zod/enumExtraction/updateExtractedEnumZodSchemaData"; import { getEnumZodSchemasFromOpenAPIDoc } from "./zod/getZodSchemasFromOpenAPIDoc"; +import { ZodSchema } from "./zod/ZodSchema.class"; interface SchemaData { ref: string; diff --git a/src/generators/core/endpoints/getEndpointAcl.ts b/src/generators/core/endpoints/getEndpointAcl.ts index 9209226..94bf0b4 100644 --- a/src/generators/core/endpoints/getEndpointAcl.ts +++ b/src/generators/core/endpoints/getEndpointAcl.ts @@ -1,4 +1,5 @@ import { OpenAPIV3 } from "openapi-types"; +import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { AclConditionsPropertyType, Endpoint, EndpointAclInfo } from "src/generators/types/endpoint"; import { OperationAclInfo, OperationObject } from "src/generators/types/openapi"; import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; @@ -6,7 +7,6 @@ import { isParamMediaTypeAllowed } from "src/generators/utils/openapi.utils"; import { isQuery } from "src/generators/utils/query.utils"; import { decapitalize } from "src/generators/utils/string.utils"; import { getMissingAclConditionPropertyError } from "src/generators/utils/validation.utils"; -import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; export function getEndpointAcl({ resolver, diff --git a/src/generators/core/endpoints/getEndpointBody.ts b/src/generators/core/endpoints/getEndpointBody.ts index 86d0fdd..382211e 100644 --- a/src/generators/core/endpoints/getEndpointBody.ts +++ b/src/generators/core/endpoints/getEndpointBody.ts @@ -1,12 +1,12 @@ import { BODY_PARAMETER_NAME } from "src/generators/const/endpoints.const"; -import { EndpointParameter } from "src/generators/types/endpoint"; -import { OperationObject } from "src/generators/types/openapi"; -import { isParamMediaTypeAllowed } from "src/generators/utils/openapi.utils"; -import { getBodyZodSchemaName, getZodSchemaOperationName } from "src/generators/utils/zod-schema.utils"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { getZodChain } from "src/generators/core/zod/getZodChain"; import { getZodSchema } from "src/generators/core/zod/getZodSchema"; import { resolveZodSchemaName } from "src/generators/core/zod/resolveZodSchemaName"; +import { EndpointParameter } from "src/generators/types/endpoint"; +import { OperationObject } from "src/generators/types/openapi"; +import { isParamMediaTypeAllowed } from "src/generators/utils/openapi.utils"; +import { getBodyZodSchemaName, getZodSchemaOperationName } from "src/generators/utils/zod-schema.utils"; export function getEndpointBody({ resolver, diff --git a/src/generators/core/endpoints/getEndpointParameter.ts b/src/generators/core/endpoints/getEndpointParameter.ts index 5130bf8..ec3ef87 100644 --- a/src/generators/core/endpoints/getEndpointParameter.ts +++ b/src/generators/core/endpoints/getEndpointParameter.ts @@ -1,5 +1,9 @@ import { OpenAPIV3 } from "openapi-types"; import { ALLOWED_PATH_IN } from "src/generators/const/openapi.const"; +import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { getZodChain } from "src/generators/core/zod/getZodChain"; +import { getEnumZodSchemaCodeFromEnumNames, getZodSchema } from "src/generators/core/zod/getZodSchema"; +import { resolveZodSchemaName } from "src/generators/core/zod/resolveZodSchemaName"; import { EndpointParameter } from "src/generators/types/endpoint"; import { ParameterObject } from "src/generators/types/openapi"; import { @@ -13,10 +17,6 @@ import { getZodSchemaOperationName, } from "src/generators/utils/zod-schema.utils"; import { match } from "ts-pattern"; -import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; -import { getZodChain } from "src/generators/core/zod/getZodChain"; -import { getEnumZodSchemaCodeFromEnumNames, getZodSchema } from "src/generators/core/zod/getZodSchema"; -import { resolveZodSchemaName } from "src/generators/core/zod/resolveZodSchemaName"; export function getEndpointParameter({ resolver, diff --git a/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.test.ts b/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.test.ts index 9ca088e..b5144e8 100644 --- a/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.test.ts +++ b/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.test.ts @@ -1,10 +1,12 @@ -import SwaggerParser from "@apidevtools/swagger-parser"; import { OpenAPIV3 } from "openapi-types"; import { JSON_APPLICATION_FORMAT } from "src/generators/const/endpoints.const"; import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { GenerateOptions } from "src/generators/types/options"; import { describe, expect, test } from "vitest"; + +import SwaggerParser from "@apidevtools/swagger-parser"; + import { getEndpointsFromOpenAPIDoc } from "./getEndpointsFromOpenAPIDoc"; const baseDoc = { diff --git a/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.ts b/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.ts index 550224d..393b2b5 100644 --- a/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.ts +++ b/src/generators/core/endpoints/getEndpointsFromOpenAPIDoc.ts @@ -29,6 +29,7 @@ import { getMultipleSuccessStatusCodesError, } from "src/generators/utils/validation.utils"; import { getResponseZodSchemaName } from "src/generators/utils/zod-schema.utils"; + import { getEndpointAcl } from "./getEndpointAcl"; import { getEndpointBody } from "./getEndpointBody"; import { getEndpointParameter } from "./getEndpointParameter"; diff --git a/src/generators/core/getDataFromOpenAPIDoc.ts b/src/generators/core/getDataFromOpenAPIDoc.ts index c6806ae..57f7dc2 100644 --- a/src/generators/core/getDataFromOpenAPIDoc.ts +++ b/src/generators/core/getDataFromOpenAPIDoc.ts @@ -3,6 +3,7 @@ import { Endpoint } from "src/generators/types/endpoint"; import { GenerateData } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; import { getEndpointTag } from "src/generators/utils/tag.utils"; + import { getEndpointsFromOpenAPIDoc } from "./endpoints/getEndpointsFromOpenAPIDoc"; import { SchemaResolver } from "./SchemaResolver.class"; import { getZodSchemasFromOpenAPIDoc } from "./zod/getZodSchemasFromOpenAPIDoc"; diff --git a/src/generators/core/getMetadataFromOpenAPIDoc.test.ts b/src/generators/core/getMetadataFromOpenAPIDoc.test.ts index 42b4b7c..fb7f43f 100644 --- a/src/generators/core/getMetadataFromOpenAPIDoc.test.ts +++ b/src/generators/core/getMetadataFromOpenAPIDoc.test.ts @@ -1,8 +1,10 @@ -import SwaggerParser from "@apidevtools/swagger-parser"; import { OpenAPIV3 } from "openapi-types"; -import { describe, expect, test } from "vitest"; import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; import { ModelMetadata, QueryMetadata, TsType } from "src/generators/types/metadata"; +import { describe, expect, test } from "vitest"; + +import SwaggerParser from "@apidevtools/swagger-parser"; + import { getMetadataFromOpenAPIDoc } from "./getMetadataFromOpenAPIDoc"; describe("getMetadataFromOpenAPIDoc", async () => { diff --git a/src/generators/core/getMetadataFromOpenAPIDoc.ts b/src/generators/core/getMetadataFromOpenAPIDoc.ts index 56edeb4..3cbda4b 100644 --- a/src/generators/core/getMetadataFromOpenAPIDoc.ts +++ b/src/generators/core/getMetadataFromOpenAPIDoc.ts @@ -11,6 +11,7 @@ import { isMediaTypeAllowed, isParamMediaTypeAllowed } from "src/generators/util import { isMutation, isQuery } from "src/generators/utils/query.utils"; import { formatTag } from "src/generators/utils/tag.utils"; import { getSchemaTsMetaType, getTsTypeBase } from "src/generators/utils/ts.utils"; + import { getDataFromOpenAPIDoc } from "./getDataFromOpenAPIDoc"; import { SchemaResolver } from "./SchemaResolver.class"; diff --git a/src/generators/core/openapi/getOpenAPISchemaComplexity.test.ts b/src/generators/core/openapi/getOpenAPISchemaComplexity.test.ts index 9f90f74..8fdc997 100644 --- a/src/generators/core/openapi/getOpenAPISchemaComplexity.test.ts +++ b/src/generators/core/openapi/getOpenAPISchemaComplexity.test.ts @@ -1,5 +1,6 @@ import { OpenAPIV3 } from "openapi-types"; import { expect, test } from "vitest"; + import { getOpenAPISchemaComplexity } from "./getOpenAPISchemaComplexity"; const getComplexity = (schema: OpenAPIV3.SchemaObject) => getOpenAPISchemaComplexity(0, schema); diff --git a/src/generators/core/openapi/getOpenAPISchemaComplexity.ts b/src/generators/core/openapi/getOpenAPISchemaComplexity.ts index 9ee324c..f5b2360 100644 --- a/src/generators/core/openapi/getOpenAPISchemaComplexity.ts +++ b/src/generators/core/openapi/getOpenAPISchemaComplexity.ts @@ -1,9 +1,9 @@ import { OpenAPIV3 } from "openapi-types"; -import { match } from "ts-pattern"; import { CompositeType, PrimitiveType } from "src/generators/types/openapi"; import { sum } from "src/generators/utils/math.utils"; import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; import { isPrimitiveType } from "src/generators/utils/openapi.utils"; +import { match } from "ts-pattern"; export function getOpenAPISchemaComplexity( current: number, diff --git a/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.test.ts b/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.test.ts index 81dd4a7..734258f 100644 --- a/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.test.ts +++ b/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.test.ts @@ -1,6 +1,7 @@ import { OpenAPIV3 } from "openapi-types"; -import { describe, expect, test } from "vitest"; import { topologicalSort } from "src/generators/utils/sort.utils"; +import { describe, expect, test } from "vitest"; + import { getOpenAPISchemaDependencyGraph } from "./getOpenAPISchemaDependencyGraph"; describe("getOpenAPISchemaDependencyGraph", () => { diff --git a/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.ts b/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.ts index 1b684c0..f5696eb 100644 --- a/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.ts +++ b/src/generators/core/openapi/getOpenAPISchemaDependencyGraph.ts @@ -1,4 +1,5 @@ import { OpenAPIV3 } from "openapi-types"; + import { iterateSchema, OnSchemaCallbackData } from "./iterateSchema"; export interface DependencyGraph { diff --git a/src/generators/core/openapi/getSchemaRefObjs.ts b/src/generators/core/openapi/getSchemaRefObjs.ts index 2fe5024..575d7c0 100644 --- a/src/generators/core/openapi/getSchemaRefObjs.ts +++ b/src/generators/core/openapi/getSchemaRefObjs.ts @@ -1,8 +1,9 @@ import { OpenAPIV3 } from "openapi-types"; +import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; import { autocorrectRef } from "src/generators/utils/openapi.utils"; import { getInvalidSchemaError } from "src/generators/utils/validation.utils"; -import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; + import { iterateSchema, OnSchemaCallbackData } from "./iterateSchema"; export function getSchemaRefObjs( diff --git a/src/generators/core/resolveConfig.ts b/src/generators/core/resolveConfig.ts index 24d9ef2..1325e04 100644 --- a/src/generators/core/resolveConfig.ts +++ b/src/generators/core/resolveConfig.ts @@ -1,6 +1,6 @@ import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; -import { deepMerge } from "src/generators/utils/object.utils"; import { GenerateOptions } from "src/generators/types/options"; +import { deepMerge } from "src/generators/utils/object.utils"; export function resolveConfig({ fileConfig = {}, diff --git a/src/generators/core/zod/ZodSchema.class.ts b/src/generators/core/zod/ZodSchema.class.ts index 3037265..ed3dda0 100644 --- a/src/generators/core/zod/ZodSchema.class.ts +++ b/src/generators/core/zod/ZodSchema.class.ts @@ -1,6 +1,6 @@ import { OpenAPIV3 } from "openapi-types"; -import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { getOpenAPISchemaComplexity } from "src/generators/core/openapi/getOpenAPISchemaComplexity"; +import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { WithRequired } from "src/generators/types/common"; import { GenerateType } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; diff --git a/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaNames.ts b/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaNames.ts index 35ff8b7..bc891cd 100644 --- a/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaNames.ts +++ b/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaNames.ts @@ -1,6 +1,6 @@ +import { ExtractedEnumZodSchemaData, SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { capitalize, getMostCommonAdjacentCombinationSplit } from "src/generators/utils/string.utils"; import { getEnumZodSchemaName } from "src/generators/utils/zod-schema.utils"; -import { ExtractedEnumZodSchemaData, SchemaResolver } from "src/generators/core/SchemaResolver.class"; export function resolveExtractedEnumZodSchemaNames(resolver: SchemaResolver) { resolver.extractedEnumZodSchemaData.forEach((enumData) => { diff --git a/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaTags.ts b/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaTags.ts index 13d312c..9b4bd4a 100644 --- a/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaTags.ts +++ b/src/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaTags.ts @@ -1,5 +1,5 @@ -import { getUniqueArray } from "src/generators/utils/array.utils"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { getUniqueArray } from "src/generators/utils/array.utils"; export function resolveExtractedEnumZodSchemaTags(resolver: SchemaResolver) { resolver.extractedEnumZodSchemaData.forEach((enumData) => { diff --git a/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts b/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts index 3a98d47..e655d38 100644 --- a/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts +++ b/src/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.ts @@ -1,10 +1,10 @@ import { OpenAPIV3 } from "openapi-types"; -import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; -import { getSchemaNameByRef } from "src/generators/utils/openapi.utils"; -import { getNotAllowedInlineEnumError } from "src/generators/utils/validation.utils"; import { iterateSchema, OnSchemaCallbackData } from "src/generators/core/openapi/iterateSchema"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { getEnumZodSchemaCode } from "src/generators/core/zod/getZodSchema"; +import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; +import { getSchemaNameByRef } from "src/generators/utils/openapi.utils"; +import { getNotAllowedInlineEnumError } from "src/generators/utils/validation.utils"; type SchemaInfo = { schemaRef: string; schemaInfo?: string } | { schemaRef?: string; schemaInfo: string }; diff --git a/src/generators/core/zod/getZodChain.ts b/src/generators/core/zod/getZodChain.ts index 96310ad..1d5d85c 100644 --- a/src/generators/core/zod/getZodChain.ts +++ b/src/generators/core/zod/getZodChain.ts @@ -2,6 +2,7 @@ import { OpenAPIV3 } from "openapi-types"; import { GenerateOptions } from "src/generators/types/options"; import { escapeControlCharacters, unwrapQuotesIfNeeded } from "src/generators/utils/openapi.utils"; import { match } from "ts-pattern"; + import { ZodSchemaMetaData } from "./ZodSchema.class"; export function getZodChain({ diff --git a/src/generators/core/zod/getZodSchema.test.ts b/src/generators/core/zod/getZodSchema.test.ts index 051df61..224861a 100644 --- a/src/generators/core/zod/getZodSchema.test.ts +++ b/src/generators/core/zod/getZodSchema.test.ts @@ -4,8 +4,9 @@ import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { GenerateOptions } from "src/generators/types/options"; import { getSchemaRef } from "src/generators/utils/openapi.utils"; import { describe, expect, test } from "vitest"; -import { ZodSchemaMetaData } from "./ZodSchema.class"; + import { getZodSchema } from "./getZodSchema"; +import { ZodSchemaMetaData } from "./ZodSchema.class"; const generateOptions = { ...DEFAULT_GENERATE_OPTIONS, diff --git a/src/generators/core/zod/getZodSchema.ts b/src/generators/core/zod/getZodSchema.ts index 41d08e6..825a5dd 100644 --- a/src/generators/core/zod/getZodSchema.ts +++ b/src/generators/core/zod/getZodSchema.ts @@ -22,9 +22,10 @@ import { } from "src/generators/utils/openapi-schema.utils"; import { isPrimitiveType, wrapWithQuotesIfNeeded } from "src/generators/utils/openapi.utils"; import { match } from "ts-pattern"; -import { getParentRef, ZodSchema, ZodSchemaMetaData } from "./ZodSchema.class"; + import { getZodChain } from "./getZodChain"; import { getSchemaRefs } from "./getZodSchemaRefs"; +import { getParentRef, ZodSchema, ZodSchemaMetaData } from "./ZodSchema.class"; type GetZodSchemaParams = { schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject; diff --git a/src/generators/core/zod/getZodSchemaRefs.ts b/src/generators/core/zod/getZodSchemaRefs.ts index ebdbea4..f84d12a 100644 --- a/src/generators/core/zod/getZodSchemaRefs.ts +++ b/src/generators/core/zod/getZodSchemaRefs.ts @@ -1,5 +1,6 @@ import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { isSchemaObject } from "src/generators/utils/openapi-schema.utils"; + import { ZodSchema } from "./ZodSchema.class"; export function getZodSchemaRefs(resolver: SchemaResolver, zodSchemaName: string) { diff --git a/src/generators/core/zod/getZodSchemasFromOpenAPIDoc.ts b/src/generators/core/zod/getZodSchemasFromOpenAPIDoc.ts index 05914ac..3796755 100644 --- a/src/generators/core/zod/getZodSchemasFromOpenAPIDoc.ts +++ b/src/generators/core/zod/getZodSchemasFromOpenAPIDoc.ts @@ -1,5 +1,6 @@ -import { getZodSchemaName } from "src/generators/utils/zod-schema.utils"; import { EnumZodSchemaData, SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { getZodSchemaName } from "src/generators/utils/zod-schema.utils"; + import { getEnumZodSchemaCode, getZodSchema } from "./getZodSchema"; export function getZodSchemasFromOpenAPIDoc(resolver: SchemaResolver) { diff --git a/src/generators/core/zod/resolveZodSchemaName.ts b/src/generators/core/zod/resolveZodSchemaName.ts index 3e2d954..4176208 100644 --- a/src/generators/core/zod/resolveZodSchemaName.ts +++ b/src/generators/core/zod/resolveZodSchemaName.ts @@ -1,8 +1,9 @@ import { OpenAPIV3 } from "openapi-types"; import { COMPLEXITY_THRESHOLD } from "src/generators/const/openapi.const"; -import { getZodSchemaName, isNamedZodSchema } from "src/generators/utils/zod-schema.utils"; import { getOpenAPISchemaComplexity } from "src/generators/core/openapi/getOpenAPISchemaComplexity"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { getZodSchemaName, isNamedZodSchema } from "src/generators/utils/zod-schema.utils"; + import { ZodSchema } from "./ZodSchema.class"; export function resolveZodSchemaName({ diff --git a/src/generators/core/zod/sortZodSchemasByTopology.ts b/src/generators/core/zod/sortZodSchemasByTopology.ts index aec67c0..42216bd 100644 --- a/src/generators/core/zod/sortZodSchemasByTopology.ts +++ b/src/generators/core/zod/sortZodSchemasByTopology.ts @@ -1,5 +1,5 @@ -import { sortObjKeysFromArray, topologicalSort } from "src/generators/utils/sort.utils"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { sortObjKeysFromArray, topologicalSort } from "src/generators/utils/sort.utils"; export function sortZodSchemasByTopology(resolver: SchemaResolver, zodSchemas: Record) { const zodSchemasOrderedByDependencies = topologicalSort(resolver.dependencyGraph.deepDependencyGraph).map((ref) => diff --git a/src/generators/generate/generateAppRestClient.ts b/src/generators/generate/generateAppRestClient.ts index 445999f..ce95b02 100644 --- a/src/generators/generate/generateAppRestClient.ts +++ b/src/generators/generate/generateAppRestClient.ts @@ -1,7 +1,7 @@ import { APP_REST_CLIENT_NAME } from "src/generators/const/deps.const"; +import { PACKAGE_IMPORT_PATH } from "src/generators/const/package.const"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { getHbsTemplateDelegate } from "src/generators/utils/hbs/hbs-template.utils"; -import { PACKAGE_IMPORT_PATH } from "src/generators/const/package.const"; export function generateAppRestClient(resolver: SchemaResolver) { const hbsTemplate = getHbsTemplateDelegate(resolver, "app-rest-client"); diff --git a/src/generators/generateCodeFromOpenAPIDoc.ts b/src/generators/generateCodeFromOpenAPIDoc.ts index 3ad2293..61f96b8 100644 --- a/src/generators/generateCodeFromOpenAPIDoc.ts +++ b/src/generators/generateCodeFromOpenAPIDoc.ts @@ -1,4 +1,5 @@ import { OpenAPIV3 } from "openapi-types"; + import { getDataFromOpenAPIDoc } from "./core/getDataFromOpenAPIDoc"; import { generateAcl } from "./generate/generateAcl"; import { generateConfigs } from "./generate/generateConfigs"; diff --git a/src/generators/types/endpoint.ts b/src/generators/types/endpoint.ts index 6eaa47c..af04a56 100644 --- a/src/generators/types/endpoint.ts +++ b/src/generators/types/endpoint.ts @@ -1,4 +1,5 @@ import { OpenAPIV3 } from "openapi-types"; + import { OperationAclInfo, ParameterObject } from "./openapi"; export interface EndpointParameter { diff --git a/src/generators/types/generate.ts b/src/generators/types/generate.ts index a623fa9..0173d78 100644 --- a/src/generators/types/generate.ts +++ b/src/generators/types/generate.ts @@ -1,5 +1,6 @@ import { OpenAPIV3 } from "openapi-types"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; + import { Endpoint } from "./endpoint"; export interface Import { diff --git a/src/generators/types/metadata.ts b/src/generators/types/metadata.ts index a652217..7ad8f30 100644 --- a/src/generators/types/metadata.ts +++ b/src/generators/types/metadata.ts @@ -1,4 +1,5 @@ import { OpenAPIV3 } from "openapi-types"; + import { GenerateOptions } from "./options"; export interface GenerateParams { diff --git a/src/generators/utils/endpoint.utils.test.ts b/src/generators/utils/endpoint.utils.test.ts index ed48032..0d9bf59 100644 --- a/src/generators/utils/endpoint.utils.test.ts +++ b/src/generators/utils/endpoint.utils.test.ts @@ -2,6 +2,7 @@ import { OpenAPIV3 } from "openapi-types"; import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; import { ExtendedEndpoint } from "src/generators/types/endpoint"; import { describe, expect, test } from "vitest"; + import { getPathSegments, isBulkDeleteEndpoint, diff --git a/src/generators/utils/file.utils.ts b/src/generators/utils/file.utils.ts index 9fb4374..7950e01 100644 --- a/src/generators/utils/file.utils.ts +++ b/src/generators/utils/file.utils.ts @@ -1,5 +1,6 @@ import fs from "fs"; import path from "path"; + import { GenerateFileData } from "src/generators/types/generate"; function readFileSync(filePath: string) { diff --git a/src/generators/utils/generate-files.utils.ts b/src/generators/utils/generate-files.utils.ts index 62429cd..6400586 100644 --- a/src/generators/utils/generate-files.utils.ts +++ b/src/generators/utils/generate-files.utils.ts @@ -13,6 +13,7 @@ import { generateAppRestClient } from "src/generators/generate/generateAppRestCl import { generateQueryModules } from "src/generators/generate/generateQueryModules"; import { generateZodExtended } from "src/generators/generate/generateZodExtended"; import { GenerateData, GenerateFile, GenerateFileData } from "src/generators/types/generate"; + import { getOutputFileName, readAssetSync } from "./file.utils"; import { getFileNameWithExtension } from "./generate/generate.utils"; diff --git a/src/generators/utils/generate/generate.acl.utils.ts b/src/generators/utils/generate/generate.acl.utils.ts index 1208a8a..cbbbb18 100644 --- a/src/generators/utils/generate/generate.acl.utils.ts +++ b/src/generators/utils/generate/generate.acl.utils.ts @@ -5,6 +5,7 @@ import { getUniqueArray } from "src/generators/utils/array.utils"; import { getNamespaceName } from "src/generators/utils/namespace.utils"; import { capitalize, snakeToCamel } from "src/generators/utils/string.utils"; import { getEndpointTag } from "src/generators/utils/tag.utils"; + import { getModelsImports, mergeImports } from "./generate.imports.utils"; export const getAbilityFunctionName = (endpoint: Endpoint) => diff --git a/src/generators/utils/generate/generate.configs.utils.ts b/src/generators/utils/generate/generate.configs.utils.ts index b1981c5..b11102c 100644 --- a/src/generators/utils/generate/generate.configs.utils.ts +++ b/src/generators/utils/generate/generate.configs.utils.ts @@ -21,6 +21,7 @@ import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; import { isSortingParameterObject } from "src/generators/utils/openapi.utils"; import { camelToSpaceSeparated, capitalize, kebabToCamel } from "src/generators/utils/string.utils"; import { isNamedZodSchema } from "src/generators/utils/zod-schema.utils"; + import { getImportedAbilityFunctionName } from "./generate.acl.utils"; import { getEndpointBody } from "./generate.endpoints.utils"; import { diff --git a/src/generators/utils/generate/generate.endpoints.utils.ts b/src/generators/utils/generate/generate.endpoints.utils.ts index 586ce9d..c190842 100644 --- a/src/generators/utils/generate/generate.endpoints.utils.ts +++ b/src/generators/utils/generate/generate.endpoints.utils.ts @@ -13,6 +13,7 @@ import { decapitalize, snakeToCamel } from "src/generators/utils/string.utils"; import { getEndpointTag } from "src/generators/utils/tag.utils"; import { primitiveTypeToTsType } from "src/generators/utils/ts.utils"; import { isNamedZodSchema } from "src/generators/utils/zod-schema.utils"; + import { getImportedZodSchemaInferedTypeName } from "./generate.zod.utils"; export const getEndpointName = (endpoint: Endpoint) => decapitalize(snakeToCamel(endpoint.operationName)); diff --git a/src/generators/utils/generate/generate.imports.utils.test.ts b/src/generators/utils/generate/generate.imports.utils.test.ts index 72a8cca..565122f 100644 --- a/src/generators/utils/generate/generate.imports.utils.test.ts +++ b/src/generators/utils/generate/generate.imports.utils.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest"; + import { getImportPath } from "./generate.imports.utils"; describe("Utils: generate imports", () => { diff --git a/src/generators/utils/generate/generate.imports.utils.ts b/src/generators/utils/generate/generate.imports.utils.ts index 0f4fb40..9ba2fda 100644 --- a/src/generators/utils/generate/generate.imports.utils.ts +++ b/src/generators/utils/generate/generate.imports.utils.ts @@ -6,6 +6,7 @@ import { GenerateOptions } from "src/generators/types/options"; import { getUniqueArray } from "src/generators/utils/array.utils"; import { getNamespaceName } from "src/generators/utils/namespace.utils"; import { getEndpointTag } from "src/generators/utils/tag.utils"; + import { getAbilityFunctionName } from "./generate.acl.utils"; import { getEndpointName } from "./generate.endpoints.utils"; import { getInfiniteQueryName, getQueryName } from "./generate.query.utils"; diff --git a/src/generators/utils/generate/generate.utils.ts b/src/generators/utils/generate/generate.utils.ts index 41b83e9..aa8583c 100644 --- a/src/generators/utils/generate/generate.utils.ts +++ b/src/generators/utils/generate/generate.utils.ts @@ -9,6 +9,7 @@ import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; import { GenerateFile, GenerateType } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; import { decapitalize } from "src/generators/utils/string.utils"; + import { getImportPath } from "./generate.imports.utils"; export function getFileNameWithExtension({ fileName, extension }: GenerateFile) { diff --git a/src/generators/utils/generate/generate.zod.utils.ts b/src/generators/utils/generate/generate.zod.utils.ts index d3886f8..be8c55e 100644 --- a/src/generators/utils/generate/generate.zod.utils.ts +++ b/src/generators/utils/generate/generate.zod.utils.ts @@ -9,6 +9,7 @@ import { getNamespaceName } from "src/generators/utils/namespace.utils"; import { isArraySchemaObject, isReferenceObject } from "src/generators/utils/openapi-schema.utils"; import { removeSuffix } from "src/generators/utils/string.utils"; import { isNamedZodSchema } from "src/generators/utils/zod-schema.utils"; + import { getSchemaDescriptions } from "./generate.openapi.utils"; export const getZodSchemaInferedTypeName = (zodSchemaName: string, options: GenerateOptions) => diff --git a/src/generators/utils/hbs/hbs-template.utils.ts b/src/generators/utils/hbs/hbs-template.utils.ts index 4ca18c1..465a21b 100644 --- a/src/generators/utils/hbs/hbs-template.utils.ts +++ b/src/generators/utils/hbs/hbs-template.utils.ts @@ -1,6 +1,7 @@ import Handlebars from "handlebars"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { readHbsTemplateSync } from "src/generators/utils/file.utils"; + import { registerAclHbsHelpers } from "./hbs.acl.utils"; import { registerCommonHbsHelpers } from "./hbs.common.utils"; import { registerEndpointsHbsHelpers } from "./hbs.endpoints.utils"; diff --git a/src/generators/utils/hbs/hbs.zod.utils.ts b/src/generators/utils/hbs/hbs.zod.utils.ts index 8002fd2..0ec1a79 100644 --- a/src/generators/utils/hbs/hbs.zod.utils.ts +++ b/src/generators/utils/hbs/hbs.zod.utils.ts @@ -1,5 +1,6 @@ import Handlebars from "handlebars"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; +import { GenerateZodSchemaData } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; import { getImportedZodSchemaInferedTypeName, @@ -9,7 +10,6 @@ import { getZodSchemaPropertyDescriptions, getZodSchemaType, } from "src/generators/utils/generate/generate.zod.utils"; -import { GenerateZodSchemaData } from "src/generators/types/generate"; enum ZodHelpers { ZodInferedType = "zodInferedType", diff --git a/src/generators/utils/js.utils.test.ts b/src/generators/utils/js.utils.test.ts index 39b11db..0cf43b0 100644 --- a/src/generators/utils/js.utils.test.ts +++ b/src/generators/utils/js.utils.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest"; + import { invalidVariableNameCharactersToCamel, isValidPropertyName } from "./js.utils"; describe("Utils: js", () => { diff --git a/src/generators/utils/namespace.utils.ts b/src/generators/utils/namespace.utils.ts index d1f7523..291dd0c 100644 --- a/src/generators/utils/namespace.utils.ts +++ b/src/generators/utils/namespace.utils.ts @@ -1,5 +1,6 @@ import { GenerateType } from "src/generators/types/generate"; import { GenerateOptions } from "src/generators/types/options"; + import { capitalize } from "./string.utils"; export const getNamespaceName = ({ diff --git a/src/generators/utils/object.utils.test.ts b/src/generators/utils/object.utils.test.ts index 6c8d104..ad88824 100644 --- a/src/generators/utils/object.utils.test.ts +++ b/src/generators/utils/object.utils.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest"; + import { deepMerge } from "./object.utils"; describe("Utils: object", () => { diff --git a/src/generators/utils/object.utils.ts b/src/generators/utils/object.utils.ts index b5f5d9e..7d08fff 100644 --- a/src/generators/utils/object.utils.ts +++ b/src/generators/utils/object.utils.ts @@ -1,5 +1,5 @@ -import { Get } from "type-fest"; import { HasNestedPath, ObjectLiteral } from "src/generators/types/common"; +import { Get } from "type-fest"; /** Get a nested property value from a dot-delimited path. */ export function getNested< diff --git a/src/generators/utils/openapi.utils.test.ts b/src/generators/utils/openapi.utils.test.ts index b758dab..5c24327 100644 --- a/src/generators/utils/openapi.utils.test.ts +++ b/src/generators/utils/openapi.utils.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest"; + import { pathToVariableName, toBoolean } from "./openapi.utils"; describe("Utils: openapi", () => { diff --git a/src/generators/utils/openapi.utils.ts b/src/generators/utils/openapi.utils.ts index f6b01a0..d2256b8 100644 --- a/src/generators/utils/openapi.utils.ts +++ b/src/generators/utils/openapi.utils.ts @@ -1,7 +1,8 @@ -/* eslint-disable no-control-regex, no-useless-escape */ -import { match, P } from "ts-pattern"; import { ALLOWED_PARAM_MEDIA_TYPES, PRIMITIVE_TYPE_LIST } from "src/generators/const/openapi.const"; import { ParameterObject, PrimitiveType, SingleType, SortingParameterObject } from "src/generators/types/openapi"; +/* eslint-disable no-control-regex, no-useless-escape */ +import { match, P } from "ts-pattern"; + import { isSchemaObject } from "./openapi-schema.utils"; import { capitalize, kebabToCamel, snakeToCamel } from "./string.utils"; diff --git a/src/generators/utils/operation.utils.test.ts b/src/generators/utils/operation.utils.test.ts index 0b5a4b3..a63940e 100644 --- a/src/generators/utils/operation.utils.test.ts +++ b/src/generators/utils/operation.utils.test.ts @@ -1,7 +1,8 @@ import { OpenAPIV3 } from "openapi-types"; -import { describe, expect, test } from "vitest"; import { DEFAULT_GENERATE_OPTIONS } from "src/generators/const/options.const"; import { GenerateOptions } from "src/generators/types/options"; +import { describe, expect, test } from "vitest"; + import { getOperationName, getOperationsByTag, getUniqueOperationName } from "./operation.utils"; const path = "/auth/provider/local/login"; diff --git a/src/generators/utils/operation.utils.ts b/src/generators/utils/operation.utils.ts index b44f0bd..99125bf 100644 --- a/src/generators/utils/operation.utils.ts +++ b/src/generators/utils/operation.utils.ts @@ -3,6 +3,7 @@ import { RESERVED_WORDS } from "src/generators/const/js.const"; import { ALLOWED_METHODS } from "src/generators/const/openapi.const"; import { OperationObject } from "src/generators/types/openapi"; import { GenerateOptions } from "src/generators/types/options"; + import { invalidVariableNameCharactersToCamel } from "./js.utils"; import { pick } from "./object.utils"; import { isPathExcluded, pathToVariableName } from "./openapi.utils"; diff --git a/src/generators/utils/query.utils.ts b/src/generators/utils/query.utils.ts index e1a1bbb..91e53d1 100644 --- a/src/generators/utils/query.utils.ts +++ b/src/generators/utils/query.utils.ts @@ -1,6 +1,7 @@ import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { Endpoint } from "src/generators/types/endpoint"; import { GenerateOptions } from "src/generators/types/options"; + import { isGetEndpoint, isPaginatedGetEndpoint } from "./endpoint.utils"; import { mapEndpointParamsToFunctionParams } from "./generate/generate.endpoints.utils"; diff --git a/src/generators/utils/string.utils.test.ts b/src/generators/utils/string.utils.test.ts index b1782d1..0b2e492 100644 --- a/src/generators/utils/string.utils.test.ts +++ b/src/generators/utils/string.utils.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest"; + import { getAdjacentStringCombinations, getLongestMostCommon, diff --git a/src/generators/utils/tag.utils.ts b/src/generators/utils/tag.utils.ts index 7e9c833..00942ad 100644 --- a/src/generators/utils/tag.utils.ts +++ b/src/generators/utils/tag.utils.ts @@ -1,6 +1,7 @@ import { Endpoint } from "src/generators/types/endpoint"; import { OperationObject } from "src/generators/types/openapi"; import { GenerateOptions } from "src/generators/types/options"; + import { nonWordCharactersToCamel } from "./string.utils"; export function formatTag(tag: string) { diff --git a/src/generators/utils/ts.utils.ts b/src/generators/utils/ts.utils.ts index 3e8e7cc..6d03d15 100644 --- a/src/generators/utils/ts.utils.ts +++ b/src/generators/utils/ts.utils.ts @@ -1,11 +1,12 @@ import { OpenAPIV3 } from "openapi-types"; -import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; -import { match } from "ts-pattern"; import { COMPOSITE_KEYWORDS } from "src/generators/const/openapi.const"; import { SchemaResolver } from "src/generators/core/SchemaResolver.class"; import { GenerateType } from "src/generators/types/generate"; import { TsMetaType, TsObjectMetaType, TsProperty, TsType, TsTypeBase } from "src/generators/types/metadata"; import { PrimitiveType } from "src/generators/types/openapi"; +import { isReferenceObject } from "src/generators/utils/openapi-schema.utils"; +import { match } from "ts-pattern"; + import { getTagImportPath } from "./generate/generate.utils"; import { getImportedZodSchemaInferedTypeName } from "./generate/generate.zod.utils"; import { isPrimitiveType } from "./openapi.utils"; diff --git a/src/generators/utils/zod-schema.utils.ts b/src/generators/utils/zod-schema.utils.ts index 81f80a7..4fd7b58 100644 --- a/src/generators/utils/zod-schema.utils.ts +++ b/src/generators/utils/zod-schema.utils.ts @@ -6,6 +6,7 @@ import { PARAM_SCHEMA_SUFFIX, RESPONSE_SCHEMA_SUFFIX, } from "src/generators/const/zod.const"; + import { isErrorStatus, isMainResponseStatus, normalizeString } from "./openapi.utils"; import { capitalize, snakeToCamel, suffixIfNeeded } from "./string.utils"; diff --git a/src/helpers/cli.helper.ts b/src/helpers/cli.helper.ts index a4b30f8..2177605 100644 --- a/src/helpers/cli.helper.ts +++ b/src/helpers/cli.helper.ts @@ -1,5 +1,6 @@ /* eslint-disable no-console, @typescript-eslint/no-explicit-any */ import type { Prompt as PromptSyncPrompt } from "prompt-sync"; + import { chk } from "./chalk.helper"; /** diff --git a/src/helpers/config.helper.ts b/src/helpers/config.helper.ts index ed7d9c7..08ca6d1 100644 --- a/src/helpers/config.helper.ts +++ b/src/helpers/config.helper.ts @@ -1,7 +1,9 @@ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-require-imports */ import fs, { existsSync, rmSync, writeFileSync } from "fs"; import path from "path"; + import { OpenAPICodegenConfig } from "src/generators/types/config"; + import { logError } from "./cli.helper"; const CONFIG_FILE_NAMES = ["openapi-codegen.config.ts"]; diff --git a/src/lib/acl/AclGuard.tsx b/src/lib/acl/AclGuard.tsx index c30e769..bb5a886 100644 --- a/src/lib/acl/AclGuard.tsx +++ b/src/lib/acl/AclGuard.tsx @@ -1,7 +1,6 @@ import type { PropsWithChildren } from "react"; - -import { OpenApiRouter } from "src/lib/config/router.context"; import { AbilityContext } from "src/lib/acl/ability.context"; +import { OpenApiRouter } from "src/lib/config/router.context"; import type { AppAbilities } from "./appAbility.types"; diff --git a/src/lib/acl/Can.tsx b/src/lib/acl/Can.tsx index 54ec4df..342357e 100644 --- a/src/lib/acl/Can.tsx +++ b/src/lib/acl/Can.tsx @@ -1,8 +1,8 @@ +import { AbilityContext } from "src/lib/acl/ability.context"; + import type { AbilityTuple, PureAbility } from "@casl/ability"; import { type BoundCanProps, createContextualCan } from "@casl/react"; -import { AbilityContext } from "src/lib/acl/ability.context"; - import type { AppAbilities } from "./appAbility.types"; type CanAbility = PureAbility>; diff --git a/src/lib/acl/ability.context.tsx b/src/lib/acl/ability.context.tsx index fa71463..a787ad9 100644 --- a/src/lib/acl/ability.context.tsx +++ b/src/lib/acl/ability.context.tsx @@ -1,9 +1,9 @@ +import { type PropsWithChildren, createContext, useEffect, useState } from "react"; +import { AuthContext } from "src/lib/auth/auth.context"; + import { AbilityBuilder, type PureAbility, type RawRuleOf, createMongoAbility } from "@casl/ability"; import { type PackRule, unpackRules } from "@casl/ability/extra"; import { useAbility as useCaslAbility } from "@casl/react"; -import { type PropsWithChildren, createContext, useEffect, useState } from "react"; - -import { AuthContext } from "src/lib/auth/auth.context"; import type { AppAbilities, AppAbility } from "./appAbility.types"; diff --git a/src/lib/auth/AuthGuard.tsx b/src/lib/auth/AuthGuard.tsx index 8fe0de5..21832f7 100644 --- a/src/lib/auth/AuthGuard.tsx +++ b/src/lib/auth/AuthGuard.tsx @@ -1,6 +1,6 @@ import { type PropsWithChildren, useEffect, useState } from "react"; - import { OpenApiRouter } from "src/lib/config/router.context"; + import { AuthContext } from "./auth.context"; export interface AuthGuardProps { diff --git a/src/lib/rest/rest-client.ts b/src/lib/rest/rest-client.ts index 453f4c8..8e8e7df 100644 --- a/src/lib/rest/rest-client.ts +++ b/src/lib/rest/rest-client.ts @@ -3,8 +3,8 @@ import axios, { AxiosInstance, AxiosRequestConfig, CreateAxiosDefaults } from "a import { z } from "zod"; import { ErrorHandler, GeneralErrorCodes, SharedErrorHandler } from "./error-handling"; -import { RestInterceptor } from "./rest-interceptor"; import { RestClient as IRestClient, RequestConfig, RequestInfo, Response } from "./rest-client.types"; +import { RestInterceptor } from "./rest-interceptor"; export class RestClient implements IRestClient { private readonly client: AxiosInstance; diff --git a/src/sh.ts b/src/sh.ts index 0db5ac3..be17098 100644 --- a/src/sh.ts +++ b/src/sh.ts @@ -2,6 +2,7 @@ import yargs from "yargs"; import { hideBin } from "yargs/helpers"; + import { command as checkCommand } from "./commands/check.command"; import { command as generateCommand } from "./commands/generate.command"; import { logError, logInfo } from "./helpers/cli.helper";