hono-takibi 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/schema/references/resolve-schemas-dependencies.js +8 -43
- package/dist/core/schema/references/traverse-schema-dependencies.d.ts +2 -0
- package/dist/core/schema/references/traverse-schema-dependencies.js +30 -0
- package/dist/core/text/escape-str.d.ts +7 -0
- package/dist/core/text/escape-str.js +24 -0
- package/dist/core/validator/is-array-with-schema-reference.d.ts +8 -0
- package/dist/core/validator/is-array-with-schema-reference.js +12 -0
- package/dist/core/validator/is-schema-reference.d.ts +9 -0
- package/dist/core/validator/is-schema-reference.js +13 -0
- package/dist/generators/zod/generate-zod-object.js +3 -3
- package/dist/generators/zod/generate-zod-property-schema.d.ts +9 -2
- package/dist/generators/zod/generate-zod-property-schema.js +19 -23
- package/dist/generators/zod/reference/generate-array-reference-schema.d.ts +10 -0
- package/dist/generators/zod/reference/generate-array-reference-schema.js +24 -0
- package/dist/generators/zod/reference/generate-reference-schema.d.ts +10 -0
- package/dist/generators/zod/reference/generate-reference-schema.js +22 -0
- package/dist/generators/zod/schema/generate-zod-schema.js +3 -3
- package/dist/generators/{app → zod-openapi-hono/app}/docs/generate-docs.d.ts +1 -1
- package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-apply-openapi-routes.js +1 -1
- package/dist/generators/{hono → zod-openapi-hono}/app/helper/get-route-maps.js +1 -1
- package/dist/generators/{hono → zod-openapi-hono}/app/index.js +2 -2
- package/dist/generators/{app → zod-openapi-hono/app}/register-component/generate-register-component.d.ts +1 -1
- package/dist/generators/{handler → zod-openapi-hono/handler}/generate-handler-name.js +1 -1
- package/dist/generators/{hono → zod-openapi-hono}/handler/generate-zod-openapi-hono-handler.js +2 -2
- package/dist/generators/zod-openapi-hono/handler/helper/group-handlers-by-file-name-helper.js +21 -0
- package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route-code.js +1 -3
- package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route.js +4 -6
- package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-params-object.js +1 -3
- package/dist/generators/{hono → zod-openapi-hono}/openapi/route/response/generate-response-schema.js +4 -6
- package/dist/index.js +3 -3
- package/dist/vite-plugin/vite-mode.js +1 -1
- package/package.json +1 -1
- package/dist/core/schema/references/resolve-schema-order.d.ts +0 -30
- package/dist/core/schema/references/resolve-schema-order.js +0 -48
- package/dist/core/schema/references/resolve-schema-references.d.ts +0 -49
- package/dist/core/schema/references/resolve-schema-references.js +0 -61
- package/dist/core/text/escape-quote.d.ts +0 -8
- package/dist/core/text/escape-quote.js +0 -13
- package/dist/core/text/sanitize.d.ts +0 -1
- package/dist/core/text/sanitize.js +0 -6
- package/dist/generators/hono/handler/helper/group-handlers-by-file-name-helper.js +0 -24
- /package/dist/generators/{app → zod-openapi-hono/app}/docs/generate-docs.js +0 -0
- /package/dist/generators/{app → zod-openapi-hono/app}/generate-app-route-handler.d.ts +0 -0
- /package/dist/generators/{app → zod-openapi-hono/app}/generate-app-route-handler.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-apply-openapi-routes.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-import-routes.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-import-routes.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/helper/get-route-maps.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/helper/process-import-map.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/helper/process-import-map.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/app/index.d.ts +0 -0
- /package/dist/generators/{app → zod-openapi-hono/app}/register-component/generate-register-component.js +0 -0
- /package/dist/generators/{handler → zod-openapi-hono/handler}/generate-handler-name.d.ts +0 -0
- /package/dist/generators/{handler → zod-openapi-hono/handler}/generate-handler.d.ts +0 -0
- /package/dist/generators/{handler → zod-openapi-hono/handler}/generate-handler.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/generate-zod-openapi-hono-handler.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/helper/group-handlers-by-file-name-helper.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/import/generate-import-handlers.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/import/generate-import-handlers.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/import/get-handler-imports.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/handler/import/get-handler-imports.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/generate-allof-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/generate-allof-code.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/process/process-alllof.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/process/process-alllof.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/anyof/generate-anyof-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/anyof/generate-anyof-code.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/generate-components-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/generate-components-code.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/oneof/generate-oneof-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/oneof/generate-oneof-code.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/schema/generate-schemas-export.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/component/schema/generate-schemas-export.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/generate-zod-openapi-hono.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/generate-zod-openapi-hono.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-create-route.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-create-route.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route-name.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route-name.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/generate-route.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-params-object.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-parameter.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-parameter.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params-array.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params-array.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/body/generate-insert-request-body.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/body/generate-insert-request-body.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/body/generate-request-body.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/body/generate-request-body.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/object/generate-format-request-object.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/request/object/generate-format-request-object.js +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/route/response/generate-response-schema.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/type/generate-types-code.d.ts +0 -0
- /package/dist/generators/{hono → zod-openapi-hono}/openapi/type/generate-types-code.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveSchemasDependencies = resolveSchemasDependencies;
|
|
4
|
-
const
|
|
4
|
+
const traverse_schema_dependencies_1 = require("./traverse-schema-dependencies");
|
|
5
5
|
/**
|
|
6
6
|
* Resolves dependencies between schemas and returns them in topological order for safe processing
|
|
7
7
|
*
|
|
@@ -49,50 +49,15 @@ const extract_refs_1 = require("./extract-refs");
|
|
|
49
49
|
* - Uses depth-first search for dependency resolution
|
|
50
50
|
* - Automatically handles circular dependencies by preventing infinite recursion
|
|
51
51
|
*/
|
|
52
|
-
// export function resolveSchemasDependencies(schemas: Record<string, Schema>): string[] {
|
|
53
|
-
// // 1. get schema reference relations as a map
|
|
54
|
-
// const dependencies = resolveSchemaReferences(schemas)
|
|
55
|
-
// // 2. initialize ordered list and visited set
|
|
56
|
-
// const ordered: string[] = []
|
|
57
|
-
// const visited = new Set<string>()
|
|
58
|
-
// // 3. resolve schema order
|
|
59
|
-
// for (const name of Object.keys(schemas)) {
|
|
60
|
-
// resolveSchemaOrder(name, dependencies, visited, ordered)
|
|
61
|
-
// }
|
|
62
|
-
// // 4. return ordered list
|
|
63
|
-
// return ordered
|
|
64
|
-
// }
|
|
65
52
|
function resolveSchemasDependencies(schemas) {
|
|
66
|
-
const visited =
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
if (temp[schemaName]) {
|
|
71
|
-
throw new Error(`bad schema: ${schemaName}`);
|
|
72
|
-
}
|
|
73
|
-
if (!visited[schemaName]) {
|
|
74
|
-
temp[schemaName] = true;
|
|
75
|
-
const schema = schemas[schemaName];
|
|
76
|
-
if (schema) {
|
|
77
|
-
const refs = (0, extract_refs_1.extractRefs)(schema);
|
|
78
|
-
for (const ref of refs) {
|
|
79
|
-
if (schemas[ref]) {
|
|
80
|
-
visit(ref);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
console.warn(`not found schema: ${ref}`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
visited[schemaName] = true;
|
|
88
|
-
temp[schemaName] = false;
|
|
89
|
-
result.push(schemaName);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
53
|
+
const visited = new Set();
|
|
54
|
+
const recursionStack = new Set();
|
|
55
|
+
const orderedSchemas = [];
|
|
56
|
+
// Conduct visits for each schema
|
|
92
57
|
for (const schemaName of Object.keys(schemas)) {
|
|
93
|
-
if (!visited
|
|
94
|
-
|
|
58
|
+
if (!visited.has(schemaName)) {
|
|
59
|
+
(0, traverse_schema_dependencies_1.traverseSchemaDependencies)(schemaName, schemas, visited, recursionStack, orderedSchemas);
|
|
95
60
|
}
|
|
96
61
|
}
|
|
97
|
-
return
|
|
62
|
+
return orderedSchemas;
|
|
98
63
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.traverseSchemaDependencies = traverseSchemaDependencies;
|
|
4
|
+
const extract_refs_1 = require("./extract-refs");
|
|
5
|
+
function traverseSchemaDependencies(schemaName, schemas, visited, recursionStack, orderedSchemas) {
|
|
6
|
+
// Circular dependencies occur if they already exist on the recursing stack
|
|
7
|
+
if (recursionStack.has(schemaName)) {
|
|
8
|
+
throw new Error(`Circular dependency detected in schema: ${schemaName}`);
|
|
9
|
+
}
|
|
10
|
+
// Processed only if not visited
|
|
11
|
+
if (!visited.has(schemaName)) {
|
|
12
|
+
recursionStack.add(schemaName);
|
|
13
|
+
const schema = schemas[schemaName];
|
|
14
|
+
if (schema) {
|
|
15
|
+
// Get other schemas referenced by the current schema
|
|
16
|
+
const references = (0, extract_refs_1.extractRefs)(schema);
|
|
17
|
+
for (const ref of references) {
|
|
18
|
+
if (ref in schemas) {
|
|
19
|
+
traverseSchemaDependencies(ref, schemas, visited, recursionStack, orderedSchemas);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.warn(`Schema reference not found: ${ref}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
recursionStack.delete(schemaName);
|
|
27
|
+
visited.add(schemaName);
|
|
28
|
+
orderedSchemas.push(schemaName);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.escapeStr = escapeStr;
|
|
4
|
+
/**
|
|
5
|
+
* Escapes text for use in TypeScript code
|
|
6
|
+
*
|
|
7
|
+
* @param text - The text to escape
|
|
8
|
+
* @returns The escaped text
|
|
9
|
+
*/
|
|
10
|
+
function escapeStr(text) {
|
|
11
|
+
return (text
|
|
12
|
+
// Basic text cleaning
|
|
13
|
+
.replace(/\n/g, ' ') // Replace line breaks with spaces
|
|
14
|
+
.replace(/\s+/g, ' ') // Replace consecutive spaces with a single space
|
|
15
|
+
.replace(/\t/g, ' ') // Replace tabs with spaces
|
|
16
|
+
// Escaping special characters
|
|
17
|
+
.replace(/\\/g, '\\\\') // Escaping backslash
|
|
18
|
+
.replace(/'/g, "\\'") // Escaping single quote
|
|
19
|
+
// Convert full-width spaces to half-width
|
|
20
|
+
.replace(/ /g, ' ')
|
|
21
|
+
// Removing zero-width characters
|
|
22
|
+
.replace(/\u200B|\u200C|\u200D|\uFEFF/g, '')
|
|
23
|
+
.trim());
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isArrayWithSchemaReference = isArrayWithSchemaReference;
|
|
4
|
+
/**
|
|
5
|
+
* array has $ref
|
|
6
|
+
*
|
|
7
|
+
* @param schema - schema
|
|
8
|
+
* @returns boolean
|
|
9
|
+
*/
|
|
10
|
+
function isArrayWithSchemaReference(schema) {
|
|
11
|
+
return schema.type === 'array' && Boolean(schema.items?.$ref);
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSchemaReference = isSchemaReference;
|
|
4
|
+
/**
|
|
5
|
+
* isSchemaReference
|
|
6
|
+
* is schema reference
|
|
7
|
+
*
|
|
8
|
+
* @param schema
|
|
9
|
+
* @returns boolean
|
|
10
|
+
*/
|
|
11
|
+
function isSchemaReference(schema) {
|
|
12
|
+
return Boolean(schema.$ref);
|
|
13
|
+
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateZodObject = generateZodObject;
|
|
4
4
|
const generate_zod_record_schema_1 = require("./generate-zod-record-schema");
|
|
5
|
-
const generate_allof_code_1 = require("../hono/openapi/component/allof/generate-allof-code");
|
|
6
|
-
const generate_oneof_code_1 = require("../hono/openapi/component/oneof/generate-oneof-code");
|
|
7
|
-
const generate_anyof_code_1 = require("../hono/openapi/component/anyof/generate-anyof-code");
|
|
5
|
+
const generate_allof_code_1 = require("../zod-openapi-hono/openapi/component/allof/generate-allof-code");
|
|
6
|
+
const generate_oneof_code_1 = require("../zod-openapi-hono/openapi/component/oneof/generate-oneof-code");
|
|
7
|
+
const generate_anyof_code_1 = require("../zod-openapi-hono/openapi/component/anyof/generate-anyof-code");
|
|
8
8
|
const generate_zod_properties_schema_1 = require("./generate-zod-properties-schema");
|
|
9
9
|
function generateZodObject(schema, config) {
|
|
10
10
|
if (schema.additionalProperties)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { Schema } from '../../types';
|
|
2
|
-
import type { Config } from '../../config';
|
|
3
1
|
/**
|
|
4
2
|
* Generates a Zod schema string for a given OpenAPI schema definition
|
|
5
3
|
*
|
|
@@ -23,4 +21,13 @@ import type { Config } from '../../config';
|
|
|
23
21
|
* generatePropertySchema({ type: 'string' })
|
|
24
22
|
* // Returns: 'z.string()'
|
|
25
23
|
*/
|
|
24
|
+
import type { Schema } from '../../types';
|
|
25
|
+
import type { Config } from '../../config';
|
|
26
|
+
/**
|
|
27
|
+
* generatePropertySchema
|
|
28
|
+
* generate property schema
|
|
29
|
+
*
|
|
30
|
+
* @param schema
|
|
31
|
+
* @param config
|
|
32
|
+
*/
|
|
26
33
|
export declare function generatePropertySchema(schema: Schema, config: Config): string;
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generatePropertySchema = generatePropertySchema;
|
|
4
|
-
const get_ref_name_1 = require("../../core/schema/references/get-ref-name");
|
|
5
|
-
const generate_zod_array_1 = require("./generate-zod-array");
|
|
6
|
-
const generate_zod_schema_1 = require("./schema/generate-zod-schema");
|
|
7
|
-
const get_variable_schema_name_helper_1 = require("../../core/helper/get-variable-schema-name-helper");
|
|
8
|
-
// import { generateZodOpenAPIExample } from './generate-zod-openapi-example'
|
|
9
2
|
/**
|
|
10
3
|
* Generates a Zod schema string for a given OpenAPI schema definition
|
|
11
4
|
*
|
|
@@ -29,23 +22,26 @@ const get_variable_schema_name_helper_1 = require("../../core/helper/get-variabl
|
|
|
29
22
|
* generatePropertySchema({ type: 'string' })
|
|
30
23
|
* // Returns: 'z.string()'
|
|
31
24
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.generatePropertySchema = generatePropertySchema;
|
|
27
|
+
const generate_zod_schema_1 = require("./schema/generate-zod-schema");
|
|
28
|
+
const is_schema_reference_1 = require("../../core/validator/is-schema-reference");
|
|
29
|
+
const is_array_with_schema_reference_1 = require("../../core/validator/is-array-with-schema-reference");
|
|
30
|
+
const generate_reference_schema_1 = require("./reference/generate-reference-schema");
|
|
31
|
+
const generate_array_reference_schema_1 = require("./reference/generate-array-reference-schema");
|
|
32
|
+
/**
|
|
33
|
+
* generatePropertySchema
|
|
34
|
+
* generate property schema
|
|
35
|
+
*
|
|
36
|
+
* @param schema
|
|
37
|
+
* @param config
|
|
38
|
+
*/
|
|
39
|
+
function generatePropertySchema(schema, config) {
|
|
40
|
+
if ((0, is_schema_reference_1.isSchemaReference)(schema)) {
|
|
41
|
+
return (0, generate_reference_schema_1.generateReferenceSchema)(schema, config);
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
if (refName) {
|
|
46
|
-
const variableName = (0, get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(refName, config);
|
|
47
|
-
return (0, generate_zod_array_1.generateZodArray)(variableName);
|
|
48
|
-
}
|
|
43
|
+
if ((0, is_array_with_schema_reference_1.isArrayWithSchemaReference)(schema)) {
|
|
44
|
+
return (0, generate_array_reference_schema_1.generateArrayReferenceSchema)(schema, config);
|
|
49
45
|
}
|
|
50
46
|
return (0, generate_zod_schema_1.generateZodSchema)(config, schema, undefined, undefined);
|
|
51
47
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Config } from '../../../config';
|
|
2
|
+
import type { Schema } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* generateArrayReferenceSchema
|
|
5
|
+
* generate array reference schema
|
|
6
|
+
*
|
|
7
|
+
* @param schema
|
|
8
|
+
* @param config
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateArrayReferenceSchema(schema: Schema, config: Config): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateArrayReferenceSchema = generateArrayReferenceSchema;
|
|
4
|
+
const get_variable_schema_name_helper_1 = require("../../../core/helper/get-variable-schema-name-helper");
|
|
5
|
+
const get_ref_name_1 = require("../../../core/schema/references/get-ref-name");
|
|
6
|
+
const generate_zod_array_1 = require("../generate-zod-array");
|
|
7
|
+
/**
|
|
8
|
+
* generateArrayReferenceSchema
|
|
9
|
+
* generate array reference schema
|
|
10
|
+
*
|
|
11
|
+
* @param schema
|
|
12
|
+
* @param config
|
|
13
|
+
*/
|
|
14
|
+
function generateArrayReferenceSchema(schema, config) {
|
|
15
|
+
if (!schema.items?.$ref) {
|
|
16
|
+
return 'z.array(z.any())';
|
|
17
|
+
}
|
|
18
|
+
const refName = (0, get_ref_name_1.getRefName)(schema.items?.$ref);
|
|
19
|
+
if (!refName) {
|
|
20
|
+
return 'z.array(z.any())';
|
|
21
|
+
}
|
|
22
|
+
const variableName = (0, get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(refName, config);
|
|
23
|
+
return (0, generate_zod_array_1.generateZodArray)(variableName);
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Config } from '../../../config';
|
|
2
|
+
import type { Schema } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* generateReferenceSchema
|
|
5
|
+
* generate reference schema
|
|
6
|
+
*
|
|
7
|
+
* @param schema
|
|
8
|
+
* @param config
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateReferenceSchema(schema: Schema, config: Config): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateReferenceSchema = generateReferenceSchema;
|
|
4
|
+
const get_variable_schema_name_helper_1 = require("../../../core/helper/get-variable-schema-name-helper");
|
|
5
|
+
const get_ref_name_1 = require("../../../core/schema/references/get-ref-name");
|
|
6
|
+
/**
|
|
7
|
+
* generateReferenceSchema
|
|
8
|
+
* generate reference schema
|
|
9
|
+
*
|
|
10
|
+
* @param schema
|
|
11
|
+
* @param config
|
|
12
|
+
*/
|
|
13
|
+
function generateReferenceSchema(schema, config) {
|
|
14
|
+
if (!schema.$ref) {
|
|
15
|
+
return 'z.any()';
|
|
16
|
+
}
|
|
17
|
+
const refName = (0, get_ref_name_1.getRefName)(schema.$ref);
|
|
18
|
+
if (!refName) {
|
|
19
|
+
return 'z.any()';
|
|
20
|
+
}
|
|
21
|
+
return (0, get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(refName, config) || 'z.any()';
|
|
22
|
+
}
|
|
@@ -6,9 +6,9 @@ const generate_zod_string_schema_1 = require("../generate-zod-string-schema");
|
|
|
6
6
|
const is_format_string_1 = require("../../../core/validator/is-format-string");
|
|
7
7
|
const generate_zod_number_schema_1 = require("../generate-zod-number-schema");
|
|
8
8
|
const generate_zod_integer_schema_1 = require("../generate-zod-integer-schema");
|
|
9
|
-
const generate_allof_code_1 = require("../../hono/openapi/component/allof/generate-allof-code");
|
|
10
|
-
const generate_anyof_code_1 = require("../../hono/openapi/component/anyof/generate-anyof-code");
|
|
11
|
-
const generate_oneof_code_1 = require("../../hono/openapi/component/oneof/generate-oneof-code");
|
|
9
|
+
const generate_allof_code_1 = require("../../zod-openapi-hono/openapi/component/allof/generate-allof-code");
|
|
10
|
+
const generate_anyof_code_1 = require("../../zod-openapi-hono/openapi/component/anyof/generate-anyof-code");
|
|
11
|
+
const generate_oneof_code_1 = require("../../zod-openapi-hono/openapi/component/oneof/generate-oneof-code");
|
|
12
12
|
const get_variable_schema_name_helper_1 = require("../../../core/helper/get-variable-schema-name-helper");
|
|
13
13
|
const generate_zod_object_1 = require("../generate-zod-object");
|
|
14
14
|
const generate_zod_enum_1 = require("../generate-zod-enum");
|
package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-apply-openapi-routes.js
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateApplyOpenapiRoutes = generateApplyOpenapiRoutes;
|
|
4
|
-
const generate_app_route_handler_1 = require("
|
|
4
|
+
const generate_app_route_handler_1 = require("../generate-app-route-handler");
|
|
5
5
|
function generateApplyOpenapiRoutes(routeMappings) {
|
|
6
6
|
return routeMappings
|
|
7
7
|
.map(({ routeName, handlerName }) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getRouteMaps = getRouteMaps;
|
|
4
|
-
const generate_handler_name_1 = require("
|
|
4
|
+
const generate_handler_name_1 = require("../../handler/generate-handler-name");
|
|
5
5
|
const generate_route_name_1 = require("../../openapi/route/generate-route-name");
|
|
6
6
|
function getRouteMaps(openAPISpec) {
|
|
7
7
|
const paths = openAPISpec.paths;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateApp = generateApp;
|
|
4
|
-
const generate_docs_1 = require("
|
|
4
|
+
const generate_docs_1 = require("./docs/generate-docs");
|
|
5
5
|
const get_handler_imports_1 = require("../handler/import/get-handler-imports");
|
|
6
6
|
const get_route_maps_1 = require("./helper/get-route-maps");
|
|
7
7
|
const generate_import_handlers_1 = require("../handler/import/generate-import-handlers");
|
|
8
|
-
const generate_register_component_1 = require("
|
|
8
|
+
const generate_register_component_1 = require("./register-component/generate-register-component");
|
|
9
9
|
const generate_import_routes_1 = require("./generators/generate-import-routes");
|
|
10
10
|
const generate_apply_openapi_routes_1 = require("./generators/generate-apply-openapi-routes");
|
|
11
11
|
const process_import_map_1 = require("./helper/process-import-map");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SecuritySchemes } from '
|
|
1
|
+
import type { SecuritySchemes } from '../../../../types';
|
|
2
2
|
export declare function generateRegisterComponent(securitySchemes: SecuritySchemes): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateHandlerName = generateHandlerName;
|
|
4
|
-
const generate_route_name_1 = require("../
|
|
4
|
+
const generate_route_name_1 = require("../openapi/route/generate-route-name");
|
|
5
5
|
function generateHandlerName(method, path) {
|
|
6
6
|
return `${(0, generate_route_name_1.generateRouteName)(method, path)}Handler`;
|
|
7
7
|
}
|
package/dist/generators/{hono → zod-openapi-hono}/handler/generate-zod-openapi-hono-handler.js
RENAMED
|
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.generateZodOpenapiHonoHandler = generateZodOpenapiHonoHandler;
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
-
const generate_handler_1 = require("
|
|
8
|
+
const generate_handler_1 = require("./generate-handler");
|
|
9
9
|
const generate_route_name_1 = require("../openapi/route/generate-route-name");
|
|
10
10
|
const group_handlers_by_file_name_helper_1 = require("./helper/group-handlers-by-file-name-helper");
|
|
11
11
|
const format_1 = require("../../../format");
|
|
12
|
-
const generate_handler_name_1 = require("
|
|
12
|
+
const generate_handler_name_1 = require("../handler/generate-handler-name");
|
|
13
13
|
const ROUTE_HANDLER = `import type { RouteHandler } from '@hono/zod-openapi'`;
|
|
14
14
|
async function generateZodOpenapiHonoHandler(openapi, config) {
|
|
15
15
|
const paths = openapi.paths;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupHandlersByFileNameHelper = groupHandlersByFileNameHelper;
|
|
4
|
+
function groupHandlersByFileNameHelper(handlers) {
|
|
5
|
+
return Array.from(handlers
|
|
6
|
+
.reduce((acc, handler) => {
|
|
7
|
+
const existing = acc.get(handler.fileName);
|
|
8
|
+
const mergedHandler = {
|
|
9
|
+
fileName: handler.fileName,
|
|
10
|
+
testFileName: handler.testFileName,
|
|
11
|
+
routeHandlerContents: existing
|
|
12
|
+
? [...existing.routeHandlerContents, ...handler.routeHandlerContents]
|
|
13
|
+
: [...handler.routeHandlerContents],
|
|
14
|
+
routeNames: existing
|
|
15
|
+
? [...existing.routeNames, ...handler.routeNames]
|
|
16
|
+
: [...handler.routeNames],
|
|
17
|
+
};
|
|
18
|
+
return acc.set(handler.fileName, mergedHandler);
|
|
19
|
+
}, new Map())
|
|
20
|
+
.values());
|
|
21
|
+
}
|
|
@@ -23,9 +23,7 @@ const is_operation_1 = require("../../../../core/validator/is-operation");
|
|
|
23
23
|
* - Generates type-safe route handlers using zod validation
|
|
24
24
|
* - Combines all routes with proper spacing
|
|
25
25
|
*/
|
|
26
|
-
function generateRouteCode(openAPIPaths,
|
|
27
|
-
// namingCase: 'camelCase' | 'PascalCase' = 'camelCase',
|
|
28
|
-
config) {
|
|
26
|
+
function generateRouteCode(openAPIPaths, config) {
|
|
29
27
|
const routes = [];
|
|
30
28
|
// 1. flattening and processing OpenAPI paths
|
|
31
29
|
for (const [path, pathItem] of Object.entries(openAPIPaths)) {
|
|
@@ -5,7 +5,7 @@ const generate_create_route_1 = require("./generate-create-route");
|
|
|
5
5
|
const generate_request_parameter_1 = require("./params/generate-request-parameter");
|
|
6
6
|
const generate_response_schema_1 = require("./response/generate-response-schema");
|
|
7
7
|
const generate_route_name_1 = require("./generate-route-name");
|
|
8
|
-
const
|
|
8
|
+
const escape_str_1 = require("../../../../core/text/escape-str");
|
|
9
9
|
/**
|
|
10
10
|
* Generates TypeScript code for a Hono route based on OpenAPI operation details
|
|
11
11
|
*
|
|
@@ -28,9 +28,7 @@ const sanitize_1 = require("../../../../core/text/sanitize");
|
|
|
28
28
|
* - Handles optional parameters appropriately
|
|
29
29
|
* - Integrates with Hono's createRoute function
|
|
30
30
|
*/
|
|
31
|
-
function generateRoute(path, method, operation,
|
|
32
|
-
// namingCase: 'camelCase' | 'PascalCase',
|
|
33
|
-
config) {
|
|
31
|
+
function generateRoute(path, method, operation, config) {
|
|
34
32
|
const { tags, summary, description, security, parameters, requestBody, responses } = operation;
|
|
35
33
|
const routeName = (0, generate_route_name_1.generateRouteName)(method, path);
|
|
36
34
|
const tagList = tags ? JSON.stringify(tags) : '[]';
|
|
@@ -40,8 +38,8 @@ config) {
|
|
|
40
38
|
tagsCode: `tags:${tagList},`,
|
|
41
39
|
methodCode: `method:'${method}',`,
|
|
42
40
|
pathCode: `path:'${path}',`,
|
|
43
|
-
summaryCode: summary ? `summary:'${(0,
|
|
44
|
-
descriptionCode: description ? `description:'${(0,
|
|
41
|
+
summaryCode: summary ? `summary:'${(0, escape_str_1.escapeStr)(summary)}',` : '',
|
|
42
|
+
descriptionCode: description ? `description:'${(0, escape_str_1.escapeStr)(description)}',` : '',
|
|
45
43
|
securityCode: security ? `security:${JSON.stringify(security)},` : '',
|
|
46
44
|
requestParams: requestParams ? `${requestParams}` : '',
|
|
47
45
|
responsesCode: responses ? `responses:{${(0, generate_response_schema_1.generateResponseSchema)(responses, config)}}` : '',
|
package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-params-object.js
RENAMED
|
@@ -16,9 +16,7 @@ const generate_zod_schema_1 = require("../../../../zod/schema/generate-zod-schem
|
|
|
16
16
|
* - Organizes parameters into appropriate objects based on their location
|
|
17
17
|
* - Maintains empty objects for unused parameter locations
|
|
18
18
|
*/
|
|
19
|
-
function generateParamsObject(parameters,
|
|
20
|
-
// namingCase: 'camelCase' | 'PascalCase' = 'camelCase',
|
|
21
|
-
config) {
|
|
19
|
+
function generateParamsObject(parameters, config) {
|
|
22
20
|
return parameters.reduce((acc, param) => {
|
|
23
21
|
const optionalSuffix = param.required ? '' : '.optional()';
|
|
24
22
|
// path params are generated with the param name
|
package/dist/generators/{hono → zod-openapi-hono}/openapi/route/response/generate-response-schema.js
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateResponseSchema = generateResponseSchema;
|
|
4
|
-
const
|
|
4
|
+
const escape_str_1 = require("../../../../../core/text/escape-str");
|
|
5
5
|
const is_unique_content_schema_1 = require("../../../../../core/validator/is-unique-content-schema");
|
|
6
6
|
const generate_zod_property_schema_1 = require("../../../../zod/generate-zod-property-schema");
|
|
7
7
|
/**
|
|
@@ -24,9 +24,7 @@ const generate_zod_property_schema_1 = require("../../../../zod/generate-zod-pro
|
|
|
24
24
|
* - Handles nested schema structures
|
|
25
25
|
* - Automatically resolves schema references
|
|
26
26
|
*/
|
|
27
|
-
function generateResponseSchema(responses,
|
|
28
|
-
// namingCase: 'camelCase' | 'PascalCase' = 'camelCase',
|
|
29
|
-
config) {
|
|
27
|
+
function generateResponseSchema(responses, config) {
|
|
30
28
|
// 1. get response codes (200, 404, etc.)
|
|
31
29
|
const responseCodes = Object.keys(responses);
|
|
32
30
|
// 2. processing for each response code
|
|
@@ -34,7 +32,7 @@ config) {
|
|
|
34
32
|
const response = responses[code];
|
|
35
33
|
// 2.1 no content (description only response)
|
|
36
34
|
if (!response.content)
|
|
37
|
-
return `${code}:{description:'${(0,
|
|
35
|
+
return `${code}:{description:'${(0, escape_str_1.escapeStr)(response.description ?? '')}',},`;
|
|
38
36
|
// check duplication
|
|
39
37
|
const contentTypes = Object.keys(response.content);
|
|
40
38
|
const isUniqueSchema = (0, is_unique_content_schema_1.isUniqueContentSchema)(contentTypes, response.content);
|
|
@@ -46,7 +44,7 @@ config) {
|
|
|
46
44
|
const zodSchema = (0, generate_zod_property_schema_1.generatePropertySchema)(content.schema, config);
|
|
47
45
|
contentParts.push(`'${contentType}':{schema:${zodSchema}}`);
|
|
48
46
|
}
|
|
49
|
-
return `${code}:{description:'${(0,
|
|
47
|
+
return `${code}:{description:'${(0, escape_str_1.escapeStr)(response.description ?? '')}',content:{${contentParts.join(',')}},},`;
|
|
50
48
|
}
|
|
51
49
|
});
|
|
52
50
|
// 3.combine all response definitions
|
package/dist/index.js
CHANGED
|
@@ -8,11 +8,11 @@ exports.main = main;
|
|
|
8
8
|
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
9
9
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
-
const generate_zod_openapi_hono_1 = require("./generators/hono/openapi/generate-zod-openapi-hono");
|
|
12
|
-
const generate_zod_openapi_hono_handler_1 = require("./generators/hono/handler/generate-zod-openapi-hono-handler");
|
|
11
|
+
const generate_zod_openapi_hono_1 = require("./generators/zod-openapi-hono/openapi/generate-zod-openapi-hono");
|
|
12
|
+
const generate_zod_openapi_hono_handler_1 = require("./generators/zod-openapi-hono/handler/generate-zod-openapi-hono-handler");
|
|
13
13
|
const config_1 = require("./config");
|
|
14
14
|
const format_1 = require("./format");
|
|
15
|
-
const app_1 = require("./generators/hono/app");
|
|
15
|
+
const app_1 = require("./generators/zod-openapi-hono/app");
|
|
16
16
|
/**
|
|
17
17
|
* CLI entry point for hono-takibi
|
|
18
18
|
*
|
|
@@ -7,7 +7,7 @@ exports.viteMode = viteMode;
|
|
|
7
7
|
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
8
8
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const generate_zod_openapi_hono_1 = require("../generators/hono/openapi/generate-zod-openapi-hono");
|
|
10
|
+
const generate_zod_openapi_hono_1 = require("../generators/zod-openapi-hono/openapi/generate-zod-openapi-hono");
|
|
11
11
|
const config_1 = require("../config");
|
|
12
12
|
const format_1 = require("../format");
|
|
13
13
|
async function viteMode(config = (0, config_1.getConfig)()) {
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves the order of schema processing based on their dependencies using depth-first search
|
|
3
|
-
*
|
|
4
|
-
* @function resolveSchemaOrder
|
|
5
|
-
* @param name - The name of the current schema to process
|
|
6
|
-
* @param dependencies - Map of schema names to their dependent schema names
|
|
7
|
-
* @param visited - Set of schema names that have been processed
|
|
8
|
-
* @param ordered - Array to store the resolved order of schema names
|
|
9
|
-
* @returns void
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const dependencies = new Map([
|
|
13
|
-
* ['User', new Set(['Address'])],
|
|
14
|
-
* ['Address', new Set(['Country'])],
|
|
15
|
-
* ['Country', new Set()]
|
|
16
|
-
* ])
|
|
17
|
-
*
|
|
18
|
-
* const visited = new Set<string>()
|
|
19
|
-
* const ordered: string[] = []
|
|
20
|
-
*
|
|
21
|
-
* resolveSchemaOrder('User', dependencies, visited, ordered)
|
|
22
|
-
* // ordered will be: ['Country', 'Address', 'User']
|
|
23
|
-
*
|
|
24
|
-
* @note
|
|
25
|
-
* - Uses depth-first search to resolve dependencies
|
|
26
|
-
* - Prevents circular references by tracking visited schemas
|
|
27
|
-
* - Ensures dependent schemas appear before schemas that depend on them
|
|
28
|
-
* - Modifies the ordered array in-place to build the final sequence
|
|
29
|
-
*/
|
|
30
|
-
export declare function resolveSchemaOrder(name: string, dependencies: Map<string, Set<string>>, visited: Set<string>, ordered: string[]): void;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveSchemaOrder = resolveSchemaOrder;
|
|
4
|
-
/**
|
|
5
|
-
* Resolves the order of schema processing based on their dependencies using depth-first search
|
|
6
|
-
*
|
|
7
|
-
* @function resolveSchemaOrder
|
|
8
|
-
* @param name - The name of the current schema to process
|
|
9
|
-
* @param dependencies - Map of schema names to their dependent schema names
|
|
10
|
-
* @param visited - Set of schema names that have been processed
|
|
11
|
-
* @param ordered - Array to store the resolved order of schema names
|
|
12
|
-
* @returns void
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* const dependencies = new Map([
|
|
16
|
-
* ['User', new Set(['Address'])],
|
|
17
|
-
* ['Address', new Set(['Country'])],
|
|
18
|
-
* ['Country', new Set()]
|
|
19
|
-
* ])
|
|
20
|
-
*
|
|
21
|
-
* const visited = new Set<string>()
|
|
22
|
-
* const ordered: string[] = []
|
|
23
|
-
*
|
|
24
|
-
* resolveSchemaOrder('User', dependencies, visited, ordered)
|
|
25
|
-
* // ordered will be: ['Country', 'Address', 'User']
|
|
26
|
-
*
|
|
27
|
-
* @note
|
|
28
|
-
* - Uses depth-first search to resolve dependencies
|
|
29
|
-
* - Prevents circular references by tracking visited schemas
|
|
30
|
-
* - Ensures dependent schemas appear before schemas that depend on them
|
|
31
|
-
* - Modifies the ordered array in-place to build the final sequence
|
|
32
|
-
*/
|
|
33
|
-
function resolveSchemaOrder(name, dependencies, visited, ordered) {
|
|
34
|
-
// 1. circulation reference prevention check
|
|
35
|
-
if (visited.has(name))
|
|
36
|
-
return;
|
|
37
|
-
// 2. mark current schema as visited
|
|
38
|
-
visited.add(name);
|
|
39
|
-
// 3. get dependencies of current schema
|
|
40
|
-
const deps = dependencies.get(name);
|
|
41
|
-
if (deps) {
|
|
42
|
-
for (const dep of deps) {
|
|
43
|
-
resolveSchemaOrder(dep, dependencies, visited, ordered);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// 4. add current schema to ordered list
|
|
47
|
-
ordered.push(name);
|
|
48
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Schema } from '../../../types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a dependency map for all schemas and their references in an OpenAPI specification
|
|
4
|
-
*
|
|
5
|
-
* @function resolveSchemaReferences
|
|
6
|
-
* @param schemas - Record mapping schema names to their Schema objects
|
|
7
|
-
* @returns A Map where keys are schema names and values are Sets of referenced schema names
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* const schemas = {
|
|
11
|
-
* User: {
|
|
12
|
-
* type: 'object',
|
|
13
|
-
* properties: {
|
|
14
|
-
* profile: { $ref: '#/components/schemas/Profile' },
|
|
15
|
-
* addresses: {
|
|
16
|
-
* type: 'array',
|
|
17
|
-
* items: { $ref: '#/components/schemas/Address' }
|
|
18
|
-
* }
|
|
19
|
-
* }
|
|
20
|
-
* },
|
|
21
|
-
* Profile: {
|
|
22
|
-
* type: 'object',
|
|
23
|
-
* properties: {
|
|
24
|
-
* name: { type: 'string' }
|
|
25
|
-
* }
|
|
26
|
-
* },
|
|
27
|
-
* Address: {
|
|
28
|
-
* type: 'object',
|
|
29
|
-
* properties: {
|
|
30
|
-
* street: { type: 'string' }
|
|
31
|
-
* }
|
|
32
|
-
* }
|
|
33
|
-
* }
|
|
34
|
-
*
|
|
35
|
-
* const dependencies = resolveSchemaReferences(schemas)
|
|
36
|
-
* // dependencies contains:
|
|
37
|
-
* // Map {
|
|
38
|
-
* // 'User' => Set { 'Profile', 'Address' },
|
|
39
|
-
* // 'Profile' => Set {},
|
|
40
|
-
* // 'Address' => Set {}
|
|
41
|
-
* // }
|
|
42
|
-
*
|
|
43
|
-
* @note
|
|
44
|
-
* - Creates a complete dependency graph for all schemas
|
|
45
|
-
* - Handles nested references in arrays and objects
|
|
46
|
-
* - Empty Sets indicate schemas with no dependencies
|
|
47
|
-
* - Used for determining the correct order of schema generation
|
|
48
|
-
*/
|
|
49
|
-
export declare function resolveSchemaReferences(schemas: Record<string, Schema>): Map<string, Set<string>>;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveSchemaReferences = resolveSchemaReferences;
|
|
4
|
-
const find_references_1 = require("./find-references");
|
|
5
|
-
/**
|
|
6
|
-
* Creates a dependency map for all schemas and their references in an OpenAPI specification
|
|
7
|
-
*
|
|
8
|
-
* @function resolveSchemaReferences
|
|
9
|
-
* @param schemas - Record mapping schema names to their Schema objects
|
|
10
|
-
* @returns A Map where keys are schema names and values are Sets of referenced schema names
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* const schemas = {
|
|
14
|
-
* User: {
|
|
15
|
-
* type: 'object',
|
|
16
|
-
* properties: {
|
|
17
|
-
* profile: { $ref: '#/components/schemas/Profile' },
|
|
18
|
-
* addresses: {
|
|
19
|
-
* type: 'array',
|
|
20
|
-
* items: { $ref: '#/components/schemas/Address' }
|
|
21
|
-
* }
|
|
22
|
-
* }
|
|
23
|
-
* },
|
|
24
|
-
* Profile: {
|
|
25
|
-
* type: 'object',
|
|
26
|
-
* properties: {
|
|
27
|
-
* name: { type: 'string' }
|
|
28
|
-
* }
|
|
29
|
-
* },
|
|
30
|
-
* Address: {
|
|
31
|
-
* type: 'object',
|
|
32
|
-
* properties: {
|
|
33
|
-
* street: { type: 'string' }
|
|
34
|
-
* }
|
|
35
|
-
* }
|
|
36
|
-
* }
|
|
37
|
-
*
|
|
38
|
-
* const dependencies = resolveSchemaReferences(schemas)
|
|
39
|
-
* // dependencies contains:
|
|
40
|
-
* // Map {
|
|
41
|
-
* // 'User' => Set { 'Profile', 'Address' },
|
|
42
|
-
* // 'Profile' => Set {},
|
|
43
|
-
* // 'Address' => Set {}
|
|
44
|
-
* // }
|
|
45
|
-
*
|
|
46
|
-
* @note
|
|
47
|
-
* - Creates a complete dependency graph for all schemas
|
|
48
|
-
* - Handles nested references in arrays and objects
|
|
49
|
-
* - Empty Sets indicate schemas with no dependencies
|
|
50
|
-
* - Used for determining the correct order of schema generation
|
|
51
|
-
*/
|
|
52
|
-
function resolveSchemaReferences(schemas) {
|
|
53
|
-
// 1. initialize dependencies map
|
|
54
|
-
const dependencies = new Map();
|
|
55
|
-
// 2. resolve each schema reference
|
|
56
|
-
for (const [name, schema] of Object.entries(schemas)) {
|
|
57
|
-
dependencies.set(name, (0, find_references_1.findReferences)(schema));
|
|
58
|
-
}
|
|
59
|
-
// 3. return dependencies map
|
|
60
|
-
return dependencies;
|
|
61
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeQuote = escapeQuote;
|
|
4
|
-
/**
|
|
5
|
-
* Escapes single quote in a string
|
|
6
|
-
*
|
|
7
|
-
* @function escapeQuote
|
|
8
|
-
* @param str - The string to escape
|
|
9
|
-
* @returns The escaped string
|
|
10
|
-
*/
|
|
11
|
-
function escapeQuote(str) {
|
|
12
|
-
return str?.replace(/'/g, "\\'");
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function sanitize(text: string): string;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.groupHandlersByFileNameHelper = groupHandlersByFileNameHelper;
|
|
4
|
-
function groupHandlersByFileNameHelper(handlers) {
|
|
5
|
-
const mergedMap = new Map();
|
|
6
|
-
for (const handler of handlers) {
|
|
7
|
-
if (mergedMap.has(handler.fileName)) {
|
|
8
|
-
const existing = mergedMap.get(handler.fileName);
|
|
9
|
-
if (existing) {
|
|
10
|
-
existing.routeHandlerContents.push(...handler.routeHandlerContents);
|
|
11
|
-
existing.routeNames.push(...handler.routeNames);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
mergedMap.set(handler.fileName, {
|
|
16
|
-
fileName: handler.fileName,
|
|
17
|
-
testFileName: handler.testFileName,
|
|
18
|
-
routeHandlerContents: [...handler.routeHandlerContents],
|
|
19
|
-
routeNames: [...handler.routeNames],
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return Array.from(mergedMap.values());
|
|
24
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-apply-openapi-routes.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/app/generators/generate-import-routes.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/handler/generate-zod-openapi-hono-handler.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/handler/import/generate-import-handlers.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/handler/import/generate-import-handlers.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/generate-allof-code.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/generate-allof-code.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/allof/process/process-alllof.js
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/anyof/generate-anyof-code.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/anyof/generate-anyof-code.js
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/generate-components-code.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/generate-components-code.js
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/oneof/generate-oneof-code.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/component/oneof/generate-oneof-code.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-params-object.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params.d.ts
RENAMED
|
File without changes
|
/package/dist/generators/{hono → zod-openapi-hono}/openapi/route/params/generate-request-params.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|