@nxgt/openapi-hono 0.2.0 → 0.3.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 +4 -4
- package/dist/types.d.ts +30 -26
- package/dist/types.d.ts.map +1 -1
- package/docs/guide.md +3 -3
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ bun add -d @nxgt/openapi-codegen typescript
|
|
|
21
21
|
|
|
22
22
|
- `hono` is a required peer. This package imports it for types only; your
|
|
23
23
|
app imports it to build the app.
|
|
24
|
-
- `typescript` 6 is a required peer, as for every `@nxgt` package.
|
|
24
|
+
- `typescript` 6 or 7 is a required peer, as for every `@nxgt` package.
|
|
25
25
|
- `zod` is not a peer, but the app needs it: the generated `operations.ts`
|
|
26
26
|
imports it.
|
|
27
27
|
- The generator is only a dev dependency.
|
|
@@ -51,7 +51,7 @@ from this package: there they are bound to your spec.
|
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
53
|
import { Hono } from 'hono';
|
|
54
|
-
import { createRoutes } from './generated/hono
|
|
54
|
+
import { createRoutes } from './generated/hono';
|
|
55
55
|
|
|
56
56
|
const app = new Hono();
|
|
57
57
|
const routes = createRoutes(app);
|
|
@@ -126,7 +126,7 @@ An operation whose reply the spec describes an item at a time, with OpenAPI
|
|
|
126
126
|
3.2's `itemSchema`, streams it from its handler with the `hono.ts` helpers:
|
|
127
127
|
|
|
128
128
|
```ts
|
|
129
|
-
import { createRoutes, streamEvents, streamLines } from './generated/hono
|
|
129
|
+
import { createRoutes, streamEvents, streamLines } from './generated/hono';
|
|
130
130
|
|
|
131
131
|
createRoutes(app)
|
|
132
132
|
.get('/feed', (c) =>
|
|
@@ -154,7 +154,7 @@ createRoutes(app)
|
|
|
154
154
|
### Modules
|
|
155
155
|
|
|
156
156
|
```ts
|
|
157
|
-
import { createApi } from './generated/hono
|
|
157
|
+
import { createApi } from './generated/hono';
|
|
158
158
|
|
|
159
159
|
export const api = createApi();
|
|
160
160
|
|
package/dist/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* generator wrote, never a conditional type, so a route costs TypeScript the
|
|
4
4
|
* same whether the spec has five operations or five hundred.
|
|
5
5
|
*/
|
|
6
|
-
import type { Context, Hono, MiddlewareHandler, Next, TypedResponse } from 'hono';
|
|
6
|
+
import type { Context, Env, Hono, MiddlewareHandler, Next, TypedResponse } from 'hono';
|
|
7
7
|
import type { JSONParsed } from 'hono/utils/types';
|
|
8
8
|
import type { ValidationErrorHook } from './errors';
|
|
9
9
|
export type Method = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace' | 'query';
|
|
@@ -61,16 +61,17 @@ export interface DeclaredJson<R> {
|
|
|
61
61
|
/**
|
|
62
62
|
* The handler of operation `Id`: `c.req.valid()` holds its validated
|
|
63
63
|
* parameters and body, and it returns one of the replies the spec declares.
|
|
64
|
+
* `c.env` is the app's: `E`, from the `Hono<E>` the routes are registered on.
|
|
64
65
|
*/
|
|
65
|
-
export type RouteHandler<S extends ApiSpec, Id extends string> = (c: DeclaredJson<Reply<S, Id>> & Context<
|
|
66
|
+
export type RouteHandler<S extends ApiSpec, Id extends string, E extends Env = any> = (c: DeclaredJson<Reply<S, Id>> & Context<E, (Entry<S, Id> & {
|
|
66
67
|
honoPath: string;
|
|
67
68
|
})['honoPath'], {
|
|
68
69
|
out: Entry<S, Id> & {};
|
|
69
70
|
}>, next: Next) => Reply<S, Id> | Promise<Reply<S, Id>>;
|
|
70
71
|
/** Middlewares, then the handler. */
|
|
71
|
-
export type Chain<S extends ApiSpec, Id extends string> = [
|
|
72
|
+
export type Chain<S extends ApiSpec, Id extends string, E extends Env = any> = [
|
|
72
73
|
...MiddlewareHandler[],
|
|
73
|
-
RouteHandler<S, Id>
|
|
74
|
+
RouteHandler<S, Id, E>
|
|
74
75
|
];
|
|
75
76
|
export interface ApiOptions {
|
|
76
77
|
/** Answers a request the spec refuses. Default `validationErrorHandler`: a 400 listing the issues. */
|
|
@@ -102,30 +103,30 @@ type Mw = MiddlewareHandler;
|
|
|
102
103
|
* is not finished yet could be one of them, and its `c` would go untyped, so
|
|
103
104
|
* an editor would offer nothing in `c.json({ … })` while it is written.
|
|
104
105
|
*/
|
|
105
|
-
export interface Register<S extends ApiSpec, Sc extends Scope, Prefix extends string, M extends Method> {
|
|
106
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, handler: RouteHandler<S, RouteId<S, M, P
|
|
107
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, handler: RouteHandler<S, RouteId<S, M, P
|
|
108
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, handler: RouteHandler<S, RouteId<S, M, P
|
|
109
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, handler: RouteHandler<S, RouteId<S, M, P
|
|
110
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, m4: Mw, handler: RouteHandler<S, RouteId<S, M, P
|
|
111
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, m4: Mw, m5: Mw, handler: RouteHandler<S, RouteId<S, M, P
|
|
112
|
-
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, ...chain: Chain<S, RouteId<S, M, P
|
|
106
|
+
export interface Register<S extends ApiSpec, Sc extends Scope, Prefix extends string, M extends Method, E extends Env = any> {
|
|
107
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
108
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
109
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
110
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
111
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, m4: Mw, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
112
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, m1: Mw, m2: Mw, m3: Mw, m4: Mw, m5: Mw, handler: RouteHandler<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
113
|
+
<P extends Sc['paths'][M] & `${Prefix}${string}`>(path: P, ...chain: Chain<S, RouteId<S, M, P>, E>): Routes<S, Sc, Prefix, E>;
|
|
113
114
|
}
|
|
114
115
|
/** `routes.operation()`, with the same overloads as a method's. */
|
|
115
|
-
export interface RegisterOperation<S extends ApiSpec, Sc extends Scope, Prefix extends string> {
|
|
116
|
-
<Id extends Sc['ids']>(id: Id, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
117
|
-
<Id extends Sc['ids']>(id: Id, m1: Mw, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
118
|
-
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
119
|
-
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
120
|
-
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, m4: Mw, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
121
|
-
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, m4: Mw, m5: Mw, handler: RouteHandler<S, Id>): Routes<S, Sc, Prefix>;
|
|
122
|
-
<Id extends Sc['ids']>(id: Id, ...chain: Chain<S, Id>): Routes<S, Sc, Prefix>;
|
|
116
|
+
export interface RegisterOperation<S extends ApiSpec, Sc extends Scope, Prefix extends string, E extends Env = any> {
|
|
117
|
+
<Id extends Sc['ids']>(id: Id, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
118
|
+
<Id extends Sc['ids']>(id: Id, m1: Mw, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
119
|
+
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
120
|
+
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
121
|
+
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, m4: Mw, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
122
|
+
<Id extends Sc['ids']>(id: Id, m1: Mw, m2: Mw, m3: Mw, m4: Mw, m5: Mw, handler: RouteHandler<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
123
|
+
<Id extends Sc['ids']>(id: Id, ...chain: Chain<S, Id, E>): Routes<S, Sc, Prefix, E>;
|
|
123
124
|
}
|
|
124
|
-
export type Routes<S extends ApiSpec, Sc extends Scope = Whole<S>, Prefix extends string = ''> = {
|
|
125
|
-
readonly [M in Method]: Register<S, Sc, Prefix, M>;
|
|
125
|
+
export type Routes<S extends ApiSpec, Sc extends Scope = Whole<S>, Prefix extends string = '', E extends Env = any> = {
|
|
126
|
+
readonly [M in Method]: Register<S, Sc, Prefix, M, E>;
|
|
126
127
|
} & {
|
|
127
128
|
/** Registers an operation by its `operationId`. */
|
|
128
|
-
readonly operation: RegisterOperation<S, Sc, Prefix>;
|
|
129
|
+
readonly operation: RegisterOperation<S, Sc, Prefix, E>;
|
|
129
130
|
/**
|
|
130
131
|
* Marks where in a chain the request is validated, when a middleware
|
|
131
132
|
* needs validated input: `routes.put(path, auth, routes.validate, check, handler)`.
|
|
@@ -133,11 +134,14 @@ export type Routes<S extends ApiSpec, Sc extends Scope = Whole<S>, Prefix extend
|
|
|
133
134
|
*/
|
|
134
135
|
readonly validate: MiddlewareHandler;
|
|
135
136
|
/** The same routes, with other options for the routes registered through it. */
|
|
136
|
-
with(options: ApiOptions): Routes<S, Sc, Prefix>;
|
|
137
|
+
with(options: ApiOptions): Routes<S, Sc, Prefix, E>;
|
|
137
138
|
};
|
|
138
139
|
export interface Api<S extends ApiSpec> {
|
|
139
|
-
/**
|
|
140
|
-
|
|
140
|
+
/**
|
|
141
|
+
* Registers routes on `app`, which may be a module's sub-app. Their
|
|
142
|
+
* handlers' `c.env` is typed by the app's `Env`.
|
|
143
|
+
*/
|
|
144
|
+
routes<Prefix extends string = '', Tag extends keyof S['tags'] & string = never, E extends Env = any>(app: Hono<E, any, any>, options?: RoutesOptions<Prefix, Tag>): Routes<S, ScopeOf<S, Tag>, Prefix, E>;
|
|
141
145
|
/** The `operationId`s no route was registered for, of one tag or of all. */
|
|
142
146
|
missing(tag?: keyof S['tags'] & string): string[];
|
|
143
147
|
/** Throws, listing them, when an operation of the tag, or of the spec, has no route. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,MAAM,GACf,KAAK,GACL,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEX,KAAK,QAAQ,GAAG;KAAG,CAAC,IAAI,MAAM,GAAG,MAAM;CAAE,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACvB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,WAAW,KAAK;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,IAAI;IACtC,GAAG,EAAE,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,IAAI;IACzD,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC;CACzD,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS;IAC1E,KAAK;CACL,GACE,KAAK,CAAC,CAAC,CAAC,GACR,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAElB,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GACpE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAExB,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GACjE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAErB,+CAA+C;AAC/C,KAAK,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,IAAI,CACH,MAAM,SAAS,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAC/C,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAE1E,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GACzC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACX,OAAO,EACP,GAAG,EACH,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,aAAa,EACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,MAAM,GACf,KAAK,GACL,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEX,KAAK,QAAQ,GAAG;KAAG,CAAC,IAAI,MAAM,GAAG,MAAM;CAAE,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACvB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,WAAW,KAAK;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,IAAI;IACtC,GAAG,EAAE,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,IAAI;IACzD,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC;CACzD,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS;IAC1E,KAAK;CACL,GACE,KAAK,CAAC,CAAC,CAAC,GACR,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAElB,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GACpE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAExB,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GACjE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAErB,+CAA+C;AAC/C,KAAK,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC9B,IAAI,CACH,MAAM,SAAS,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAC/C,IAAI,SAAS,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAE1E,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GACzC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CACvB,CAAC,SAAS,OAAO,EACjB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,GAAG,GAAG,GAAG,IAChB,CACH,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAC5B,OAAO,CACN,CAAC,EACD,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,UAAU,CAAC,EACjD;IAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;CAAE,CAC1B,EACF,IAAI,EAAE,IAAI,KACN,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1C,qCAAqC;AACrC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;IAC9E,GAAG,iBAAiB,EAAE;IACtB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,UAAU;IAC1B,sGAAsG;IACtG,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa,CAC7B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,GAAG,SAAS,MAAM,GAAG,KAAK,CACzB,SAAQ,UAAU;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,GAAG,CAAC,EAAE,GAAG,CAAC;CACV;AAED,kCAAkC;AAClC,KAAK,OAAO,CACX,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACb,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AAE1D,KAAK,EAAE,GAAG,iBAAiB,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ,CACxB,CAAC,SAAS,OAAO,EACjB,EAAE,SAAS,KAAK,EAChB,MAAM,SAAS,MAAM,EACrB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,GAAG,GAAG,GAAG;IAEnB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,EAC/C,IAAI,EAAE,CAAC,EACP,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5B;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB,CACjC,CAAC,SAAS,OAAO,EACjB,EAAE,SAAS,KAAK,EAChB,MAAM,SAAS,MAAM,EACrB,CAAC,SAAS,GAAG,GAAG,GAAG;IAEnB,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EACpB,EAAE,EAAE,EAAE,EACN,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACvB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,MAAM,CACjB,CAAC,SAAS,OAAO,EACjB,EAAE,SAAS,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAC3B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,CAAC,SAAS,GAAG,GAAG,GAAG,IAChB;IACH,QAAQ,EAAE,CAAC,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CACrD,GAAG;IACH,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,gFAAgF;IAChF,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,OAAO;IACrC;;;OAGG;IACH,MAAM,CACL,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,GAAG,SAAS,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,EAC5C,CAAC,SAAS,GAAG,GAAG,GAAG,EAEnB,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,4EAA4E;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAClD,wFAAwF;IACxF,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CACrD"}
|
package/docs/guide.md
CHANGED
|
@@ -36,7 +36,7 @@ export default defineConfig({
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
import { Hono } from 'hono';
|
|
39
|
-
import { createRoutes } from './generated/hono
|
|
39
|
+
import { createRoutes } from './generated/hono';
|
|
40
40
|
|
|
41
41
|
const app = new Hono();
|
|
42
42
|
const routes = createRoutes(app);
|
|
@@ -195,7 +195,7 @@ at a time, with OpenAPI 3.2's `itemSchema`, is written from the handler with
|
|
|
195
195
|
the helpers `hono.ts` exports when the spec has such an operation:
|
|
196
196
|
|
|
197
197
|
```ts
|
|
198
|
-
import { createRoutes, streamEvents, streamLines } from './generated/hono
|
|
198
|
+
import { createRoutes, streamEvents, streamLines } from './generated/hono';
|
|
199
199
|
|
|
200
200
|
createRoutes(app, { validateResponses: true })
|
|
201
201
|
.get('/feed', (c) =>
|
|
@@ -248,7 +248,7 @@ throws when `id` is not the running route's.
|
|
|
248
248
|
its routes on its own sub-app:
|
|
249
249
|
|
|
250
250
|
```ts
|
|
251
|
-
import { createApi } from './generated/hono
|
|
251
|
+
import { createApi } from './generated/hono';
|
|
252
252
|
|
|
253
253
|
export const api = createApi();
|
|
254
254
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxgt/openapi-hono",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
"typecheck": "bun run fixtures && tsc --noEmit"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@nxgt/httpyz": "^0.
|
|
40
|
-
"@nxgt/openapi-codegen": "^0.
|
|
39
|
+
"@nxgt/httpyz": "^0.3.2",
|
|
40
|
+
"@nxgt/openapi-codegen": "^0.7.0",
|
|
41
41
|
"@types/bun": "^1.4.0",
|
|
42
42
|
"hono": "^4.13.4",
|
|
43
|
+
"typescript-6": "npm:typescript@~6.0.3",
|
|
43
44
|
"zod": "^4.5.4"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
46
47
|
"hono": "^4.13.4",
|
|
47
|
-
"typescript": "^6.0.3"
|
|
48
|
+
"typescript": "^6.0.3 || ^7.0.0"
|
|
48
49
|
}
|
|
49
50
|
}
|