@hono/zod-openapi 0.9.5 → 0.9.7
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 +12 -14
- package/dist/index.js +13 -5
- package/dist/index.mjs +13 -5
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ const UserSchema = z
|
|
|
53
53
|
|
|
54
54
|
> [!TIP]
|
|
55
55
|
> `UserSchema` schema will be registered as `"#/components/schemas/User"` refs in the OpenAPI document.
|
|
56
|
-
> If you want to register the schema as referenced components, use `.
|
|
56
|
+
> If you want to register the schema as referenced components, use `.openapi()` method.
|
|
57
57
|
|
|
58
58
|
Next, create a route:
|
|
59
59
|
|
|
@@ -88,7 +88,7 @@ const app = new OpenAPIHono()
|
|
|
88
88
|
|
|
89
89
|
app.openapi(route, (c) => {
|
|
90
90
|
const { id } = c.req.valid('param')
|
|
91
|
-
return c.
|
|
91
|
+
return c.json({
|
|
92
92
|
id,
|
|
93
93
|
age: 20,
|
|
94
94
|
name: 'Ultra-man',
|
|
@@ -157,7 +157,7 @@ app.openapi(
|
|
|
157
157
|
route,
|
|
158
158
|
(c) => {
|
|
159
159
|
const { id } = c.req.valid('param')
|
|
160
|
-
return c.
|
|
160
|
+
return c.json({
|
|
161
161
|
id,
|
|
162
162
|
age: 20,
|
|
163
163
|
name: 'Ultra-man',
|
|
@@ -166,7 +166,7 @@ app.openapi(
|
|
|
166
166
|
// Hook
|
|
167
167
|
(result, c) => {
|
|
168
168
|
if (!result.success) {
|
|
169
|
-
return c.
|
|
169
|
+
return c.json(
|
|
170
170
|
{
|
|
171
171
|
code: 400,
|
|
172
172
|
message: 'Validation Error',
|
|
@@ -186,7 +186,7 @@ In the case that you have a common error formatter, you can initialize the `Open
|
|
|
186
186
|
const app = new OpenAPIHono({
|
|
187
187
|
defaultHook: (result, c) => {
|
|
188
188
|
if (!result.success) {
|
|
189
|
-
return c.
|
|
189
|
+
return c.json(
|
|
190
190
|
{
|
|
191
191
|
ok: false,
|
|
192
192
|
errors: formatZodErrors(result),
|
|
@@ -205,7 +205,7 @@ You can still override the `defaultHook` by providing the hook at the call site
|
|
|
205
205
|
// uses the defaultHook
|
|
206
206
|
app.openapi(createPostRoute, (c) => {
|
|
207
207
|
const { title } = c.req.valid('json')
|
|
208
|
-
return c.
|
|
208
|
+
return c.json({ title })
|
|
209
209
|
})
|
|
210
210
|
|
|
211
211
|
// override the defaultHook by passing in a hook
|
|
@@ -213,11 +213,11 @@ app.openapi(
|
|
|
213
213
|
createBookRoute,
|
|
214
214
|
(c) => {
|
|
215
215
|
const { title } = c.req.valid('json')
|
|
216
|
-
return c.
|
|
216
|
+
return c.json({ title })
|
|
217
217
|
},
|
|
218
218
|
(result, c) => {
|
|
219
219
|
if (!result.success) {
|
|
220
|
-
return c.
|
|
220
|
+
return c.json(
|
|
221
221
|
{
|
|
222
222
|
ok: false,
|
|
223
223
|
source: 'routeHook' as const,
|
|
@@ -279,7 +279,7 @@ import { hc } from 'hono/client'
|
|
|
279
279
|
|
|
280
280
|
const appRoutes = app.openapi(route, (c) => {
|
|
281
281
|
const data = c.req.valid('json')
|
|
282
|
-
return c.
|
|
282
|
+
return c.json({
|
|
283
283
|
id: data.id,
|
|
284
284
|
message: 'Success',
|
|
285
285
|
})
|
|
@@ -311,11 +311,9 @@ eg. Bearer Auth
|
|
|
311
311
|
Register the security scheme:
|
|
312
312
|
|
|
313
313
|
```ts
|
|
314
|
-
app.openAPIRegistry.registerComponent(
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
scheme: 'bearer',
|
|
318
|
-
},
|
|
314
|
+
app.openAPIRegistry.registerComponent("securitySchemes", "Bearer", {
|
|
315
|
+
type: "http",
|
|
316
|
+
scheme: "bearer",
|
|
319
317
|
})
|
|
320
318
|
```
|
|
321
319
|
|
package/dist/index.js
CHANGED
|
@@ -93,15 +93,23 @@ var OpenAPIHono = class _OpenAPIHono extends import_hono.Hono {
|
|
|
93
93
|
doc = (path, configure) => {
|
|
94
94
|
return this.get(path, (c) => {
|
|
95
95
|
const config = typeof configure === "function" ? configure(c) : configure;
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
try {
|
|
97
|
+
const document = this.getOpenAPIDocument(config);
|
|
98
|
+
return c.json(document);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
return c.json(e, 500);
|
|
101
|
+
}
|
|
98
102
|
});
|
|
99
103
|
};
|
|
100
104
|
doc31 = (path, configure) => {
|
|
101
105
|
return this.get(path, (c) => {
|
|
102
106
|
const config = typeof configure === "function" ? configure(c) : configure;
|
|
103
|
-
|
|
104
|
-
|
|
107
|
+
try {
|
|
108
|
+
const document = this.getOpenAPI31Document(config);
|
|
109
|
+
return c.json(document);
|
|
110
|
+
} catch (e) {
|
|
111
|
+
return c.json(e, 500);
|
|
112
|
+
}
|
|
105
113
|
});
|
|
106
114
|
};
|
|
107
115
|
route(path, app) {
|
|
@@ -140,7 +148,7 @@ var OpenAPIHono = class _OpenAPIHono extends import_hono.Hono {
|
|
|
140
148
|
return this;
|
|
141
149
|
}
|
|
142
150
|
basePath(path) {
|
|
143
|
-
return new _OpenAPIHono(super.basePath(path));
|
|
151
|
+
return new _OpenAPIHono({ ...super.basePath(path), defaultHook: this.defaultHook });
|
|
144
152
|
}
|
|
145
153
|
};
|
|
146
154
|
var createRoute = (routeConfig) => {
|
package/dist/index.mjs
CHANGED
|
@@ -71,15 +71,23 @@ var OpenAPIHono = class _OpenAPIHono extends Hono {
|
|
|
71
71
|
doc = (path, configure) => {
|
|
72
72
|
return this.get(path, (c) => {
|
|
73
73
|
const config = typeof configure === "function" ? configure(c) : configure;
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
try {
|
|
75
|
+
const document = this.getOpenAPIDocument(config);
|
|
76
|
+
return c.json(document);
|
|
77
|
+
} catch (e) {
|
|
78
|
+
return c.json(e, 500);
|
|
79
|
+
}
|
|
76
80
|
});
|
|
77
81
|
};
|
|
78
82
|
doc31 = (path, configure) => {
|
|
79
83
|
return this.get(path, (c) => {
|
|
80
84
|
const config = typeof configure === "function" ? configure(c) : configure;
|
|
81
|
-
|
|
82
|
-
|
|
85
|
+
try {
|
|
86
|
+
const document = this.getOpenAPI31Document(config);
|
|
87
|
+
return c.json(document);
|
|
88
|
+
} catch (e) {
|
|
89
|
+
return c.json(e, 500);
|
|
90
|
+
}
|
|
83
91
|
});
|
|
84
92
|
};
|
|
85
93
|
route(path, app) {
|
|
@@ -118,7 +126,7 @@ var OpenAPIHono = class _OpenAPIHono extends Hono {
|
|
|
118
126
|
return this;
|
|
119
127
|
}
|
|
120
128
|
basePath(path) {
|
|
121
|
-
return new _OpenAPIHono(super.basePath(path));
|
|
129
|
+
return new _OpenAPIHono({ ...super.basePath(path), defaultHook: this.defaultHook });
|
|
122
130
|
}
|
|
123
131
|
};
|
|
124
132
|
var createRoute = (routeConfig) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hono/zod-openapi",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.7",
|
|
4
4
|
"description": "A wrapper class of Hono which supports OpenAPI.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -41,16 +41,18 @@
|
|
|
41
41
|
"zod": "3.*"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@cloudflare/workers-types": "^4.20240117.0",
|
|
44
45
|
"hono": "^3.11.7",
|
|
45
46
|
"jest": "^29.7.0",
|
|
46
47
|
"openapi3-ts": "^4.1.2",
|
|
47
48
|
"tsup": "^8.0.1",
|
|
49
|
+
"typescript": "^5.3.3",
|
|
48
50
|
"vitest": "^1.0.1",
|
|
49
51
|
"zod": "^3.22.1"
|
|
50
52
|
},
|
|
51
53
|
"dependencies": {
|
|
52
54
|
"@asteasolutions/zod-to-openapi": "^5.5.0",
|
|
53
|
-
"@hono/zod-validator": "
|
|
55
|
+
"@hono/zod-validator": "0.1.11"
|
|
54
56
|
},
|
|
55
57
|
"engines": {
|
|
56
58
|
"node": ">=16.0.0"
|