@povio/openapi-codegen-cli 0.16.1 → 1.0.1
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/README.md +2 -1
- package/dist/commands/check.d.ts +1 -1
- package/dist/commands/generate.d.ts +2 -2
- package/dist/generators/const/deps.const.d.ts +2 -3
- package/dist/generators/const/zod.const.d.ts +6 -0
- package/dist/generators/core/resolveConfig.d.ts +7 -0
- package/dist/generators/generate/generateZodExtended.d.ts +2 -0
- package/dist/generators/types/generate.d.ts +0 -1
- package/dist/generators/types/options.d.ts +0 -2
- package/dist/generators/utils/generate/generate.utils.d.ts +1 -1
- package/dist/generators/utils/generate-files.utils.d.ts +1 -1
- package/dist/index.js +46 -46
- package/dist/sh.js +159 -159
- package/package.json +3 -3
- package/src/assets/rest-client.ts +31 -29
- package/src/generators/templates/endpoints.hbs +4 -4
- package/src/generators/templates/models.hbs +1 -5
- package/src/generators/templates/partials/endpoint-param-parse.hbs +1 -1
- package/src/generators/templates/queries.hbs +4 -5
- package/src/generators/templates/zod-extended.hbs +49 -0
- package/dist/generators/const/brands.const.d.ts +0 -8
- package/dist/generators/generate/generateZodUtils.d.ts +0 -2
- package/dist/generators/utils/brand.utils.d.ts +0 -7
- package/src/generators/templates/zod-utils.hbs +0 -70
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
**NOTE:** This CLI tool is primarily designed for use within our organization. The generated code output aligns with our internal template. If you are using this tool without our internal template, make sure to use it in **standalone** mode.
|
|
4
4
|
|
|
5
|
+
**NOTE:** Version 1+ requires zod v4 and is not compatible with zod v3.
|
|
6
|
+
|
|
5
7
|
Use this tool to generate code (Zod schemas, TypeScript types, API definitions, and React queries) from an OpenAPI v3 specification. API definitions are generated to use a REST client wrapper that utilizes Axios. React queries are generated in alignment with our code standards, without the need for explicit types.
|
|
6
8
|
|
|
7
9
|
The tool partially leverages code from [openapi-zod-client](https://github.com/astahmer/openapi-zod-client) repository.
|
|
@@ -84,7 +86,6 @@ yarn openapi-codegen generate --config my-config.ts
|
|
|
84
86
|
--importPath Module import style for generated files (default: 'ts'; options: 'ts' | 'relative' | 'absolute')
|
|
85
87
|
--removeOperationPrefixEndingWith Remove operation name prefixes that end with the specified string (Default: 'Controller_')
|
|
86
88
|
--extractEnums Extract enums into separate Zod schemas (default: true)
|
|
87
|
-
--branded Apply branded types to ambiguous Zod schemas (default: true)
|
|
88
89
|
--replaceOptionalWithNullish Replace `.optional()` chains with `.nullish()` in generated Zod schemas (default: false)
|
|
89
90
|
|
|
90
91
|
--axiosRequestConfig Include Axios request config parameters in query hooks (default: false)
|
package/dist/commands/check.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export type CheckParams = {
|
|
|
4
4
|
excludeTags?: string;
|
|
5
5
|
verbose?: boolean;
|
|
6
6
|
} & Partial<Pick<GenerateOptions, "input" | "splitByTags" | "defaultTag">>;
|
|
7
|
-
export declare function check({ verbose, ...params }: CheckParams): Promise<void>;
|
|
7
|
+
export declare function check({ verbose, config: configParam, excludeTags: excludeTagsParam, ...params }: CheckParams): Promise<void>;
|
|
@@ -4,5 +4,5 @@ export type GenerateParams = {
|
|
|
4
4
|
excludeTags?: string;
|
|
5
5
|
prettier?: boolean;
|
|
6
6
|
verbose?: boolean;
|
|
7
|
-
} & Partial<Pick<GenerateOptions, "input" | "output" | "tsNamespaces" | "splitByTags" | "defaultTag" | "removeOperationPrefixEndingWith" | "importPath" | "extractEnums" | "acl" | "checkAcl" | "standalone" | "baseUrl" | "
|
|
8
|
-
export declare function generate({ prettier, verbose, ...params }: GenerateParams): Promise<void>;
|
|
7
|
+
} & Partial<Pick<GenerateOptions, "input" | "output" | "tsNamespaces" | "splitByTags" | "defaultTag" | "removeOperationPrefixEndingWith" | "importPath" | "extractEnums" | "acl" | "checkAcl" | "standalone" | "baseUrl" | "replaceOptionalWithNullish" | "infiniteQueries" | "axiosRequestConfig" | "mutationEffects" | "parseRequestParams">>;
|
|
8
|
+
export declare function generate({ prettier, verbose, config: configParam, ...params }: GenerateParams): Promise<void>;
|
|
@@ -36,12 +36,11 @@ export declare const MUTATION_EFFECTS: {
|
|
|
36
36
|
runFunctionName: string;
|
|
37
37
|
};
|
|
38
38
|
export declare const MUTATION_EFFECTS_FILE: GenerateFile;
|
|
39
|
-
export declare const
|
|
39
|
+
export declare const ZOD_EXTENDED: {
|
|
40
40
|
namespace: string;
|
|
41
41
|
exports: {
|
|
42
42
|
parse: string;
|
|
43
43
|
sortExp: string;
|
|
44
|
-
brand: string;
|
|
45
44
|
};
|
|
46
45
|
};
|
|
47
|
-
export declare const
|
|
46
|
+
export declare const ZOD_EXTENDED_FILE: GenerateFile;
|
|
@@ -8,5 +8,11 @@ export declare const ERROR_RESPONSE_SCHEMA_SUFFIX = "ErrorResponse";
|
|
|
8
8
|
export declare const VOID_SCHEMA = "z.void()";
|
|
9
9
|
export declare const BLOB_SCHEMA = "z.instanceof(Blob)";
|
|
10
10
|
export declare const ENUM_SCHEMA = "z.enum";
|
|
11
|
+
export declare const INT_SCHEMA = "z.int()";
|
|
12
|
+
export declare const NUMBER_SCHEMA = "z.number()";
|
|
11
13
|
export declare const STRING_SCHEMA = "z.string()";
|
|
14
|
+
export declare const EMAIL_SCHEMA = "z.email()";
|
|
15
|
+
export declare const URL_SCHEMA = "z.url()";
|
|
16
|
+
export declare const UUID_SCHEMA = "z.uuid()";
|
|
17
|
+
export declare const DATETIME_SCHEMA = "z.iso.datetime({ offset: true })";
|
|
12
18
|
export declare const ZOD_IMPORT: Import;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GenerateOptions } from "src/generators/types/options";
|
|
2
|
+
export declare function resolveConfig({ fileConfig, params: { excludeTags, ...options }, }: {
|
|
3
|
+
fileConfig?: Partial<GenerateOptions> | null;
|
|
4
|
+
params: Partial<Omit<GenerateOptions, "excludeTags"> & {
|
|
5
|
+
excludeTags: string;
|
|
6
|
+
}>;
|
|
7
|
+
}): GenerateOptions;
|
|
@@ -6,9 +6,7 @@ interface ZodGenerateOptions {
|
|
|
6
6
|
withDefaultValues?: boolean;
|
|
7
7
|
withDescription?: boolean;
|
|
8
8
|
allReadonly?: boolean;
|
|
9
|
-
strictObjects?: boolean;
|
|
10
9
|
extractEnums?: boolean;
|
|
11
|
-
branded?: boolean;
|
|
12
10
|
replaceOptionalWithNullish?: boolean;
|
|
13
11
|
}
|
|
14
12
|
interface EndpointsGenerateOptions {
|
|
@@ -19,6 +19,6 @@ export declare function getQueryTypesImportPath(options: GenerateOptions): strin
|
|
|
19
19
|
export declare function getQueryModulesImportPath(options: GenerateOptions): string;
|
|
20
20
|
export declare function getMutationEffectsImportPath(options: GenerateOptions): string;
|
|
21
21
|
export declare function getAclCheckImportPath(options: GenerateOptions): string;
|
|
22
|
-
export declare function
|
|
22
|
+
export declare function getZodExtendedImportPath(options: GenerateOptions): string;
|
|
23
23
|
export declare function getAppAbilitiesImportPath(options: GenerateOptions): string;
|
|
24
24
|
export {};
|
|
@@ -3,4 +3,4 @@ import { GenerateData, GenerateFileData } from "src/generators/types/generate";
|
|
|
3
3
|
export declare function getAclFiles(appAclTags: string[], resolver: SchemaResolver): GenerateFileData[];
|
|
4
4
|
export declare function getMutationEffectsFiles(data: GenerateData, resolver: SchemaResolver): GenerateFileData[];
|
|
5
5
|
export declare function getStandaloneFiles(resolver: SchemaResolver): GenerateFileData[];
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function getZodExtendedFiles(data: GenerateData, resolver: SchemaResolver): GenerateFileData[];
|