@asenajs/hono-adapter 1.0.0 → 1.1.0
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/lib/HonoAdapter.d.ts +13 -11
- package/dist/lib/HonoAdapter.js +83 -28
- package/dist/lib/HonoAdapter.js.map +1 -1
- package/dist/lib/HonoContextWrapper.d.ts +4 -4
- package/dist/lib/HonoContextWrapper.js +8 -14
- package/dist/lib/HonoContextWrapper.js.map +1 -1
- package/dist/lib/HonoWebsocketAdapter.d.ts +9 -13
- package/dist/lib/HonoWebsocketAdapter.js +22 -52
- package/dist/lib/HonoWebsocketAdapter.js.map +1 -1
- package/dist/lib/defaults/ConfigService.d.ts +2 -2
- package/dist/lib/defaults/Context.d.ts +3 -3
- package/dist/lib/defaults/MiddlewareService.d.ts +3 -3
- package/dist/lib/defaults/MiddlewareService.js +1 -1
- package/dist/lib/defaults/MiddlewareService.js.map +1 -1
- package/dist/lib/defaults/StaticServeService.d.ts +5 -0
- package/dist/lib/defaults/StaticServeService.js +4 -0
- package/dist/lib/defaults/StaticServeService.js.map +1 -0
- package/dist/lib/defaults/ValidationService.d.ts +3 -3
- package/dist/lib/defaults/ValidationService.js.map +1 -1
- package/dist/lib/defaults/index.d.ts +5 -4
- package/dist/lib/defaults/index.js +5 -4
- package/dist/lib/defaults/index.js.map +1 -1
- package/dist/lib/types/HonoHandler.d.ts +2 -2
- package/dist/lib/types/StaticServeExtras.d.ts +4 -0
- package/dist/lib/types/StaticServeExtras.js +2 -0
- package/dist/lib/types/StaticServeExtras.js.map +1 -0
- package/dist/lib/types/index.d.ts +3 -2
- package/dist/lib/types/index.js +3 -2
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/utils/createHonoAdapter.d.ts +2 -2
- package/dist/lib/utils/createHonoAdapter.js +2 -2
- package/dist/lib/utils/createHonoAdapter.js.map +1 -1
- package/dist/lib/utils/middlewareParser.d.ts +3 -3
- package/dist/lib/utils/middlewareParser.js +2 -2
- package/dist/lib/utils/middlewareParser.js.map +1 -1
- package/package.json +10 -7
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import { Hono } from
|
|
2
|
-
import type { Server } from
|
|
3
|
-
import type { AsenaWebsocketAdapter } from
|
|
4
|
-
import { AsenaAdapter, type AsenaServeOptions, type BaseMiddleware, type RouteParams } from
|
|
5
|
-
import type { HonoErrorHandler } from
|
|
6
|
-
import { type ServerLogger } from
|
|
7
|
-
import type { ValidationSchema } from
|
|
8
|
-
import type { Context as HonoAdapterContext } from
|
|
9
|
-
export declare class HonoAdapter extends AsenaAdapter<
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { Server } from 'bun';
|
|
3
|
+
import type { AsenaWebsocketAdapter, WebsocketRouteParams } from '@asenajs/asena/adapter';
|
|
4
|
+
import { AsenaAdapter, type AsenaServeOptions, type BaseMiddleware, type RouteParams } from '@asenajs/asena/adapter';
|
|
5
|
+
import type { HonoErrorHandler, StaticServeExtras } from './types';
|
|
6
|
+
import { type ServerLogger } from '@asenajs/asena/logger';
|
|
7
|
+
import type { ValidationSchema } from './defaults';
|
|
8
|
+
import type { Context as HonoAdapterContext } from './defaults/Context';
|
|
9
|
+
export declare class HonoAdapter extends AsenaAdapter<HonoAdapterContext, ValidationSchema> {
|
|
10
10
|
name: string;
|
|
11
11
|
app: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
12
12
|
private server;
|
|
13
13
|
private options;
|
|
14
14
|
private readonly methodMap;
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(logger: ServerLogger, websocketAdapter?: AsenaWebsocketAdapter);
|
|
16
16
|
use(middleware: BaseMiddleware<HonoAdapterContext>, path?: string): void;
|
|
17
|
-
registerRoute({ method, path,
|
|
17
|
+
registerRoute({ method, path, middlewares, handler, staticServe, validator, }: RouteParams<HonoAdapterContext, ValidationSchema, StaticServeExtras>): Promise<void>;
|
|
18
|
+
registerWebsocketRoute({ path, websocketService, middlewares, }: WebsocketRouteParams<HonoAdapterContext>): Promise<void> | void;
|
|
18
19
|
start(): Promise<Server>;
|
|
19
20
|
onError(errorHandler: HonoErrorHandler): void;
|
|
20
21
|
serveOptions(options: () => Promise<AsenaServeOptions> | AsenaServeOptions): Promise<void>;
|
|
21
22
|
setPort(port: number): void;
|
|
22
23
|
private prepareMiddlewares;
|
|
23
24
|
private prepareHandler;
|
|
25
|
+
private prepareStaticServeOptions;
|
|
24
26
|
private prepareValidator;
|
|
25
27
|
private normalizePath;
|
|
26
28
|
}
|
package/dist/lib/HonoAdapter.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { Hono
|
|
2
|
-
import * as bun from
|
|
3
|
-
import { HonoContextWrapper } from
|
|
4
|
-
import { AsenaAdapter, VALIDATOR_METHODS, } from
|
|
5
|
-
import { green, yellow } from
|
|
6
|
-
import { zValidator } from
|
|
7
|
-
import { middlewareParser } from
|
|
8
|
-
import { HttpMethod } from
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import * as bun from 'bun';
|
|
3
|
+
import { HonoContextWrapper } from './HonoContextWrapper';
|
|
4
|
+
import { AsenaAdapter, VALIDATOR_METHODS, } from '@asenajs/asena/adapter';
|
|
5
|
+
import { green, yellow } from '@asenajs/asena/logger';
|
|
6
|
+
import { zValidator } from '@hono/zod-validator';
|
|
7
|
+
import { middlewareParser } from './utils/middlewareParser';
|
|
8
|
+
import { HttpMethod } from '@asenajs/asena/web-types';
|
|
9
|
+
import { HonoWebsocketAdapter } from './HonoWebsocketAdapter';
|
|
10
|
+
import { serveStatic } from 'hono/bun';
|
|
9
11
|
export class HonoAdapter extends AsenaAdapter {
|
|
10
|
-
name =
|
|
12
|
+
name = 'HonoAdapter';
|
|
11
13
|
app = new Hono();
|
|
12
14
|
server;
|
|
13
15
|
// @ts-ignore
|
|
@@ -23,9 +25,11 @@ export class HonoAdapter extends AsenaAdapter {
|
|
|
23
25
|
[HttpMethod.HEAD]: (path, ...handlers) => this.app.on(HttpMethod.HEAD.toUpperCase(), path, ...handlers),
|
|
24
26
|
[HttpMethod.TRACE]: (path, ...handlers) => this.app.on(HttpMethod.TRACE.toUpperCase(), path, ...handlers),
|
|
25
27
|
};
|
|
26
|
-
constructor(
|
|
27
|
-
super(
|
|
28
|
-
this.websocketAdapter
|
|
28
|
+
constructor(logger, websocketAdapter) {
|
|
29
|
+
super(logger, websocketAdapter);
|
|
30
|
+
if (!this.websocketAdapter) {
|
|
31
|
+
this.websocketAdapter = new HonoWebsocketAdapter(logger);
|
|
32
|
+
}
|
|
29
33
|
// to ensure that the logger is set
|
|
30
34
|
if (!this.websocketAdapter.logger && logger) {
|
|
31
35
|
this.websocketAdapter.logger = this.logger;
|
|
@@ -40,23 +44,40 @@ export class HonoAdapter extends AsenaAdapter {
|
|
|
40
44
|
}
|
|
41
45
|
this.app.use(...preparedMiddlewares);
|
|
42
46
|
}
|
|
43
|
-
async registerRoute({ method, path,
|
|
44
|
-
const
|
|
47
|
+
async registerRoute({ method, path, middlewares, handler, staticServe, validator, }) {
|
|
48
|
+
const prepareMiddlewares = this.prepareMiddlewares(middlewares);
|
|
45
49
|
const allMiddlewares = validator
|
|
46
|
-
? [...(await this.prepareValidator(validator)), ...
|
|
47
|
-
:
|
|
48
|
-
const routeHandler = staticServe
|
|
49
|
-
? allMiddlewares
|
|
50
|
-
: [...allMiddlewares, this.prepareHandler(handler)];
|
|
50
|
+
? [...(await this.prepareValidator(validator)), ...prepareMiddlewares]
|
|
51
|
+
: prepareMiddlewares;
|
|
51
52
|
const methodHandler = this.methodMap[method];
|
|
52
53
|
if (!methodHandler) {
|
|
53
|
-
throw new Error(
|
|
54
|
+
throw new Error('Invalid method');
|
|
55
|
+
}
|
|
56
|
+
if (staticServe) {
|
|
57
|
+
methodHandler(path, ...allMiddlewares, serveStatic(this.prepareStaticServeOptions(staticServe)));
|
|
58
|
+
this.logger.info(`${green('Successfully')} registered ${yellow('Static Serve ' + method.toUpperCase())} route for PATH: ${green(`${path}`)}`);
|
|
59
|
+
return;
|
|
54
60
|
}
|
|
61
|
+
const routeHandler = [...allMiddlewares, this.prepareHandler(handler)];
|
|
55
62
|
methodHandler(path, ...routeHandler);
|
|
56
|
-
this.logger.info(`${green(
|
|
63
|
+
this.logger.info(`${green('Successfully')} registered ${yellow(method.toUpperCase())} route for PATH: ${green(`${path}`)}`);
|
|
64
|
+
}
|
|
65
|
+
registerWebsocketRoute({ path, websocketService, middlewares, }) {
|
|
66
|
+
const preparedMiddlewares = this.prepareMiddlewares(middlewares);
|
|
67
|
+
this.app.get(`/${path}`, ...preparedMiddlewares, async (c, next) => {
|
|
68
|
+
const websocketData = c.get('_websocketData') || {};
|
|
69
|
+
const id = bun.randomUUIDv7();
|
|
70
|
+
const data = { values: websocketData, id, path: path };
|
|
71
|
+
const upgradeResult = this.server.upgrade(c.req.raw, { data });
|
|
72
|
+
if (upgradeResult) {
|
|
73
|
+
return new Response(null);
|
|
74
|
+
}
|
|
75
|
+
await next(); // Failed
|
|
76
|
+
});
|
|
77
|
+
this.websocketAdapter.registerWebSocket(websocketService);
|
|
57
78
|
}
|
|
58
79
|
async start() {
|
|
59
|
-
this.websocketAdapter.
|
|
80
|
+
this.websocketAdapter.prepareWebSocket(this.options?.wsOptions);
|
|
60
81
|
this.server = bun.serve({
|
|
61
82
|
...this.options.serveOptions,
|
|
62
83
|
port: this.port,
|
|
@@ -83,6 +104,41 @@ export class HonoAdapter extends AsenaAdapter {
|
|
|
83
104
|
prepareHandler(handler) {
|
|
84
105
|
return (c) => handler(new HonoContextWrapper(c));
|
|
85
106
|
}
|
|
107
|
+
prepareStaticServeOptions(staticServe) {
|
|
108
|
+
let staticServeOptions = {
|
|
109
|
+
root: staticServe.root,
|
|
110
|
+
};
|
|
111
|
+
if (staticServe.rewriteRequestPath) {
|
|
112
|
+
staticServeOptions.rewriteRequestPath = staticServe.rewriteRequestPath;
|
|
113
|
+
}
|
|
114
|
+
if (staticServe.onFound) {
|
|
115
|
+
if (staticServe.onFound.override) {
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
staticServeOptions.onFound = staticServe.onFound.handler;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
staticServeOptions.onFound = (path, c) => {
|
|
121
|
+
staticServe.onFound.handler(path, new HonoContextWrapper(c));
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (staticServe.onNotFound) {
|
|
126
|
+
if (staticServe.onNotFound.override) {
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
staticServeOptions.onNotFound = staticServe.onNotFound.handler;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
staticServeOptions.onNotFound = (path, c) => {
|
|
132
|
+
staticServe.onNotFound.handler(path, new HonoContextWrapper(c));
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (staticServe.extra) {
|
|
137
|
+
staticServeOptions.mimes = staticServe.extra.mimes;
|
|
138
|
+
staticServeOptions.precompressed = staticServe.extra.precompressed;
|
|
139
|
+
}
|
|
140
|
+
return staticServeOptions;
|
|
141
|
+
}
|
|
86
142
|
async prepareValidator(baseValidator) {
|
|
87
143
|
if (!baseValidator) {
|
|
88
144
|
return [];
|
|
@@ -90,17 +146,16 @@ export class HonoAdapter extends AsenaAdapter {
|
|
|
90
146
|
const validators = [];
|
|
91
147
|
for (const key of VALIDATOR_METHODS) {
|
|
92
148
|
// if the key is not a validator method, skip
|
|
93
|
-
if (typeof baseValidator[key]
|
|
94
|
-
?.handle !== "function") {
|
|
149
|
+
if (typeof baseValidator[key]?.handle !== 'function') {
|
|
95
150
|
continue;
|
|
96
151
|
}
|
|
97
152
|
const validator = baseValidator[key];
|
|
98
153
|
const validationSchema = await validator.handle();
|
|
99
154
|
let schema;
|
|
100
155
|
let hook;
|
|
101
|
-
if (
|
|
102
|
-
schema = validationSchema[
|
|
103
|
-
hook = validationSchema[
|
|
156
|
+
if ('schema' in validationSchema) {
|
|
157
|
+
schema = validationSchema['schema'];
|
|
158
|
+
hook = validationSchema['hook'];
|
|
104
159
|
}
|
|
105
160
|
else {
|
|
106
161
|
schema = validationSchema;
|
|
@@ -110,7 +165,7 @@ export class HonoAdapter extends AsenaAdapter {
|
|
|
110
165
|
return validators;
|
|
111
166
|
}
|
|
112
167
|
normalizePath(path) {
|
|
113
|
-
return `${path.endsWith(
|
|
168
|
+
return `${path.endsWith('/') ? path : `${path}/`}*`;
|
|
114
169
|
}
|
|
115
170
|
}
|
|
116
171
|
//# sourceMappingURL=HonoAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoAdapter.js","sourceRoot":"","sources":["../../lib/HonoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"HonoAdapter.js","sourceRoot":"","sources":["../../lib/HonoAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Context, HonoRequest } from
|
|
2
|
-
import type { AsenaContext, CookieExtra, SendOptions } from
|
|
3
|
-
import type { CookieOptions } from
|
|
4
|
-
import type { ContentfulStatusCode } from
|
|
1
|
+
import type { Context, HonoRequest } from 'hono';
|
|
2
|
+
import type { AsenaContext, CookieExtra, SendOptions } from '@asenajs/asena/adapter';
|
|
3
|
+
import type { CookieOptions } from 'hono/utils/cookie';
|
|
4
|
+
import type { ContentfulStatusCode } from 'hono/utils/http-status';
|
|
5
5
|
export declare class HonoContextWrapper implements AsenaContext<HonoRequest<any, any>, Response> {
|
|
6
6
|
private _context;
|
|
7
7
|
constructor(context: Context);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { deleteCookie, getCookie, getSignedCookie, setCookie, setSignedCookie
|
|
1
|
+
import { deleteCookie, getCookie, getSignedCookie, setCookie, setSignedCookie } from 'hono/cookie'; // add delete cookie
|
|
2
2
|
export class HonoContextWrapper {
|
|
3
3
|
_context;
|
|
4
4
|
constructor(context) {
|
|
@@ -38,23 +38,19 @@ export class HonoContextWrapper {
|
|
|
38
38
|
return this._context.req.queries(query);
|
|
39
39
|
}
|
|
40
40
|
send(data, statusOrOptions) {
|
|
41
|
-
const { headers = {}, status = 200 } = typeof statusOrOptions ===
|
|
42
|
-
? { status: statusOrOptions }
|
|
43
|
-
: statusOrOptions || {};
|
|
41
|
+
const { headers = {}, status = 200 } = typeof statusOrOptions === 'number' ? { status: statusOrOptions } : statusOrOptions || {};
|
|
44
42
|
if (headers !== undefined) {
|
|
45
43
|
Object.entries(headers).forEach(([key, value]) => {
|
|
46
44
|
this._context.res.headers.append(key, value);
|
|
47
45
|
});
|
|
48
46
|
}
|
|
49
|
-
if (typeof data ===
|
|
47
|
+
if (typeof data === 'string') {
|
|
50
48
|
return this._context.text(data);
|
|
51
49
|
}
|
|
52
50
|
return this._context.json(data, status, headers);
|
|
53
51
|
}
|
|
54
52
|
async getCookie(name, secret) {
|
|
55
|
-
return secret
|
|
56
|
-
? await getSignedCookie(this._context, secret, name)
|
|
57
|
-
: getCookie(this._context, name);
|
|
53
|
+
return secret ? await getSignedCookie(this._context, secret, name) : getCookie(this._context, name);
|
|
58
54
|
}
|
|
59
55
|
async setCookie(name, value, options) {
|
|
60
56
|
const { secret, extraOptions } = options ?? {
|
|
@@ -82,16 +78,14 @@ export class HonoContextWrapper {
|
|
|
82
78
|
this._context.set(key, value);
|
|
83
79
|
}
|
|
84
80
|
setWebSocketValue(value) {
|
|
85
|
-
this._context.set(
|
|
81
|
+
this._context.set('_websocketData', value);
|
|
86
82
|
}
|
|
87
83
|
getWebSocketValue() {
|
|
88
|
-
return this._context.get(
|
|
84
|
+
return this._context.get('_websocketData');
|
|
89
85
|
}
|
|
90
86
|
html(data, statusOrOptions) {
|
|
91
|
-
const { headers = {}, status = 200 } = typeof statusOrOptions ===
|
|
92
|
-
|
|
93
|
-
: statusOrOptions || {};
|
|
94
|
-
if (typeof data === "string") {
|
|
87
|
+
const { headers = {}, status = 200 } = typeof statusOrOptions === 'number' ? { status: statusOrOptions } : statusOrOptions || {};
|
|
88
|
+
if (typeof data === 'string') {
|
|
95
89
|
return this._context.html(data, status, headers);
|
|
96
90
|
}
|
|
97
91
|
Object.entries(headers).forEach(([key, value]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoContextWrapper.js","sourceRoot":"","sources":["../../lib/HonoContextWrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HonoContextWrapper.js","sourceRoot":"","sources":["../../lib/HonoContextWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
import { type
|
|
5
|
-
import {
|
|
6
|
-
export declare class HonoWebsocketAdapter extends AsenaWebsocketAdapter
|
|
1
|
+
import { AsenaWebsocketAdapter } from '@asenajs/asena/adapter';
|
|
2
|
+
import type { Server } from 'bun';
|
|
3
|
+
import type { AsenaWebSocketService } from '@asenajs/asena/web-socket';
|
|
4
|
+
import { type WSOptions } from '@asenajs/asena/web-socket';
|
|
5
|
+
import { type ServerLogger } from '@asenajs/asena/logger';
|
|
6
|
+
export declare class HonoWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
7
7
|
name: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
registerWebSocket(webSocketService: AsenaWebSocketService<any>, middlewares: BaseMiddleware<HonoAdapterContext>[]): void;
|
|
11
|
-
buildWebsocket(options?: WSOptions): void;
|
|
8
|
+
constructor(logger: ServerLogger);
|
|
9
|
+
registerWebSocket(webSocketService: AsenaWebSocketService<any>): void;
|
|
12
10
|
startWebsocket(server: Server): void;
|
|
13
|
-
|
|
14
|
-
private upgradeWebSocket;
|
|
11
|
+
prepareWebSocket(options?: WSOptions): void;
|
|
15
12
|
private createHandler;
|
|
16
|
-
private prepareMiddlewares;
|
|
17
13
|
}
|
|
@@ -1,44 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {} from "bun";
|
|
5
|
-
import { AsenaSocket, AsenaWebSocketServer, AsenaWebSocketService, } from "@asenajs/asena/web-socket";
|
|
6
|
-
import { green, yellow } from "@asenajs/asena/logger";
|
|
1
|
+
import { AsenaWebsocketAdapter } from '@asenajs/asena/adapter';
|
|
2
|
+
import { AsenaSocket, AsenaWebSocketServer, } from '@asenajs/asena/web-socket';
|
|
3
|
+
import { green, yellow } from '@asenajs/asena/logger';
|
|
7
4
|
export class HonoWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
8
|
-
name =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
super(params);
|
|
5
|
+
name = 'HonoWebsocketAdapter';
|
|
6
|
+
constructor(logger) {
|
|
7
|
+
super(logger);
|
|
12
8
|
}
|
|
13
|
-
registerWebSocket(webSocketService
|
|
9
|
+
registerWebSocket(webSocketService) {
|
|
14
10
|
if (!webSocketService) {
|
|
15
|
-
throw new Error(
|
|
11
|
+
throw new Error('Websocket service is not provided');
|
|
16
12
|
}
|
|
17
13
|
if (this.websockets === undefined) {
|
|
18
14
|
this.websockets = new Map();
|
|
19
15
|
}
|
|
20
16
|
const namespace = webSocketService.namespace;
|
|
21
17
|
if (!namespace) {
|
|
22
|
-
throw new Error(
|
|
18
|
+
throw new Error('Namespace is not provided');
|
|
23
19
|
}
|
|
24
|
-
this.logger.info(`${green(
|
|
25
|
-
this.websockets.set(namespace,
|
|
26
|
-
}
|
|
27
|
-
buildWebsocket(options) {
|
|
28
|
-
if (!this.websockets || !this.websockets?.size)
|
|
29
|
-
return;
|
|
30
|
-
for (const [, websocket] of this.websockets) {
|
|
31
|
-
this.upgradeWebSocket(websocket.socket, websocket.middlewares);
|
|
32
|
-
}
|
|
33
|
-
this.prepareWebSocket(options);
|
|
20
|
+
this.logger.info(`${green('Successfully')} registered ${yellow('WEBSOCKET')} route for PATH: ${green(`/${webSocketService.namespace}`)}`);
|
|
21
|
+
this.websockets.set(namespace, webSocketService);
|
|
34
22
|
}
|
|
35
23
|
startWebsocket(server) {
|
|
36
|
-
this.
|
|
37
|
-
if (!this.websockets) {
|
|
24
|
+
if (!this.websockets || this.websockets.size < 1) {
|
|
38
25
|
return;
|
|
39
26
|
}
|
|
40
27
|
for (const [namespace, websocket] of this.websockets) {
|
|
41
|
-
websocket.
|
|
28
|
+
websocket.server = new AsenaWebSocketServer(server, namespace);
|
|
42
29
|
}
|
|
43
30
|
}
|
|
44
31
|
prepareWebSocket(options) {
|
|
@@ -46,42 +33,25 @@ export class HonoWebsocketAdapter extends AsenaWebsocketAdapter {
|
|
|
46
33
|
return;
|
|
47
34
|
}
|
|
48
35
|
this.websocket = {
|
|
49
|
-
open: this.createHandler(
|
|
50
|
-
message: this.createHandler(
|
|
51
|
-
drain: this.createHandler(
|
|
52
|
-
close: this.createHandler(
|
|
53
|
-
ping: this.createHandler(
|
|
54
|
-
pong: this.createHandler(
|
|
36
|
+
open: this.createHandler('onOpenInternal'),
|
|
37
|
+
message: this.createHandler('onMessage'),
|
|
38
|
+
drain: this.createHandler('onDrain'),
|
|
39
|
+
close: this.createHandler('onCloseInternal'),
|
|
40
|
+
ping: this.createHandler('onPing'),
|
|
41
|
+
pong: this.createHandler('onPong'),
|
|
55
42
|
...options,
|
|
56
43
|
};
|
|
57
44
|
}
|
|
58
|
-
upgradeWebSocket(websocket, middlewares) {
|
|
59
|
-
const path = websocket.namespace;
|
|
60
|
-
const preparedMiddlewares = this.prepareMiddlewares(middlewares);
|
|
61
|
-
this.app.get(`/${path}`, ...preparedMiddlewares, async (c, next) => {
|
|
62
|
-
const websocketData = c.get("_websocketData") || {};
|
|
63
|
-
const id = bun.randomUUIDv7();
|
|
64
|
-
const data = { values: websocketData, id, path: path };
|
|
65
|
-
const upgradeResult = this._server.upgrade(c.req.raw, { data });
|
|
66
|
-
if (upgradeResult) {
|
|
67
|
-
return new Response(null);
|
|
68
|
-
}
|
|
69
|
-
await next(); // Failed
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
45
|
createHandler(type) {
|
|
73
46
|
return (ws, ...args) => {
|
|
74
47
|
const websocket = this.websockets.get(ws.data.path);
|
|
75
|
-
let handler = websocket
|
|
48
|
+
let handler = websocket[type];
|
|
76
49
|
if (!handler) {
|
|
77
50
|
return;
|
|
78
51
|
}
|
|
79
|
-
handler = handler.bind(websocket
|
|
80
|
-
handler(new AsenaSocket(ws, websocket
|
|
52
|
+
handler = handler.bind(websocket);
|
|
53
|
+
handler(new AsenaSocket(ws, websocket), ...args);
|
|
81
54
|
};
|
|
82
55
|
}
|
|
83
|
-
prepareMiddlewares(middlewares) {
|
|
84
|
-
return middlewareParser(middlewares);
|
|
85
|
-
}
|
|
86
56
|
}
|
|
87
57
|
//# sourceMappingURL=HonoWebsocketAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/HonoWebsocketAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HonoWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/HonoWebsocketAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EACL,WAAW,EACX,oBAAoB,GAIrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAqB,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IAEtD,IAAI,GAAG,sBAAsB,CAAC;IAErC,YAAmB,MAAoB;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAEM,iBAAiB,CAAC,gBAA4C;QACnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAsC,CAAC;QAClE,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,MAAM,CAAC,WAAW,CAAC,oBAAoB,KAAK,CAAC,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,CACxH,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrD,SAAS,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,OAAmB;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAClC,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAoB;QACxC,OAAO,CAAC,EAAkC,EAAE,GAAG,IAAW,EAAE,EAAE;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjC,OAAwE,CACvE,IAAI,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,EAC9B,GAAG,IAAI,CACR,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAEF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Context } from
|
|
2
|
-
import type { AsenaConfig } from
|
|
1
|
+
import type { Context } from './Context';
|
|
2
|
+
import type { AsenaConfig } from '@asenajs/asena/server/config';
|
|
3
3
|
export declare abstract class ConfigService implements AsenaConfig<Context> {
|
|
4
4
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { HonoRequest } from
|
|
2
|
-
import type { AsenaContext } from
|
|
3
|
-
export type Context<P extends string = any, I = any, R = Response> = AsenaContext<HonoRequest<P, I>, R>;
|
|
1
|
+
import type { HonoRequest } from 'hono';
|
|
2
|
+
import type { AsenaContext } from '@asenajs/asena/adapter';
|
|
3
|
+
export type Context<P extends string = any, I = any, R extends Response = Response> = AsenaContext<HonoRequest<P, I>, R>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AsenaMiddlewareService } from
|
|
2
|
-
import type { HonoRequest } from
|
|
3
|
-
import type { AsenaContext } from
|
|
1
|
+
import { AsenaMiddlewareService } from '@asenajs/asena/middleware';
|
|
2
|
+
import type { HonoRequest } from 'hono';
|
|
3
|
+
import type { AsenaContext } from '@asenajs/asena/adapter';
|
|
4
4
|
export declare abstract class MiddlewareService<P extends string = any, I = any> extends AsenaMiddlewareService<AsenaContext<HonoRequest<P, I>, Response>> {
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareService.js","sourceRoot":"","sources":["../../../lib/defaults/MiddlewareService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAInE,MAAM,OAAgB,
|
|
1
|
+
{"version":3,"file":"MiddlewareService.js","sourceRoot":"","sources":["../../../lib/defaults/MiddlewareService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAInE,MAAM,OAAgB,iBAAmD,SAAQ,sBAEhF;CAAG"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AsenaStaticServeService } from '@asenajs/asena/middleware';
|
|
2
|
+
import type { StaticServeExtras } from '../types';
|
|
3
|
+
import type { Context } from './Context';
|
|
4
|
+
export declare abstract class StaticServeService extends AsenaStaticServeService<Context, StaticServeExtras> {
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticServeService.js","sourceRoot":"","sources":["../../../lib/defaults/StaticServeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,OAAgB,kBAAmB,SAAQ,uBAAmD;CAAG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { z } from
|
|
2
|
-
import type { Hook } from
|
|
3
|
-
import type { AsenaValidationService } from
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { Hook } from '@hono/zod-validator';
|
|
3
|
+
import type { AsenaValidationService } from '@asenajs/asena/middleware';
|
|
4
4
|
export type ValidationSchema = z.ZodType<any, z.ZodTypeDef, any>;
|
|
5
5
|
export interface ValidationSchemaWithHook {
|
|
6
6
|
schema: z.ZodType<any, z.ZodTypeDef, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationService.js","sourceRoot":"","sources":["../../../lib/defaults/ValidationService.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ValidationService.js","sourceRoot":"","sources":["../../../lib/defaults/ValidationService.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,iBAAiB;CAC4C"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from './Context';
|
|
2
|
+
export * from './MiddlewareService';
|
|
3
|
+
export * from './ValidationService';
|
|
4
|
+
export * from './ConfigService';
|
|
5
|
+
export * from './StaticServeService';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from './Context';
|
|
2
|
+
export * from './MiddlewareService';
|
|
3
|
+
export * from './ValidationService';
|
|
4
|
+
export * from './ConfigService';
|
|
5
|
+
export * from './StaticServeService';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/defaults/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/defaults/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AsenaHandler, ErrorHandler } from
|
|
2
|
-
import type { Context } from
|
|
1
|
+
import type { AsenaHandler, ErrorHandler } from '@asenajs/asena/adapter';
|
|
2
|
+
import type { Context } from '../defaults';
|
|
3
3
|
export type HonoHandler = AsenaHandler<Context>;
|
|
4
4
|
export type HonoErrorHandler = ErrorHandler<Context>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticServeExtras.js","sourceRoot":"","sources":["../../../lib/types/StaticServeExtras.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './HonoHandler';
|
|
2
|
+
export * from '../defaults/Context';
|
|
3
|
+
export * from './StaticServeExtras';
|
package/dist/lib/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { HonoAdapter } from
|
|
2
|
-
import type { ServerLogger } from
|
|
1
|
+
import { HonoAdapter } from '../../index';
|
|
2
|
+
import type { ServerLogger } from '@asenajs/asena/logger';
|
|
3
3
|
export declare const createHonoAdapter: (logger?: ServerLogger) => [HonoAdapter, ServerLogger];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HonoAdapter
|
|
1
|
+
import { HonoAdapter } from '../../index';
|
|
2
2
|
export const createHonoAdapter = (logger) => {
|
|
3
|
-
return [new HonoAdapter(
|
|
3
|
+
return [new HonoAdapter(logger), logger];
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=createHonoAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHonoAdapter.js","sourceRoot":"","sources":["../../../lib/utils/createHonoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"createHonoAdapter.js","sourceRoot":"","sources":["../../../lib/utils/createHonoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAqB,EAA+B,EAAE;IACtF,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MiddlewareHandler } from
|
|
2
|
-
import type { Context as HonoAdapterContext } from
|
|
3
|
-
import type { BaseMiddleware } from
|
|
1
|
+
import type { MiddlewareHandler } from 'hono';
|
|
2
|
+
import type { Context as HonoAdapterContext } from '../defaults';
|
|
3
|
+
import type { BaseMiddleware } from '@asenajs/asena/adapter';
|
|
4
4
|
export declare const middlewareParser: (middlewares: BaseMiddleware<HonoAdapterContext>[]) => MiddlewareHandler[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HonoContextWrapper } from
|
|
2
|
-
import { createFactory } from
|
|
1
|
+
import { HonoContextWrapper } from '../HonoContextWrapper';
|
|
2
|
+
import { createFactory } from 'hono/factory';
|
|
3
3
|
export const middlewareParser = (middlewares) => {
|
|
4
4
|
const factory = createFactory();
|
|
5
5
|
return middlewares.map((middleware) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewareParser.js","sourceRoot":"","sources":["../../../lib/utils/middlewareParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"middlewareParser.js","sourceRoot":"","sources":["../../../lib/utils/middlewareParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAiD,EAAuB,EAAE;IACzG,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,aAAa;YACb,OAAO,CAAC,CAAU,EAAE,IAAc,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,EAAE;YACrE,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"name": "@asenajs/hono-adapter",
|
|
3
3
|
"module": "index.ts",
|
|
4
4
|
"description": "Hono server and websocket adapter for Asenajs ",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"main": "dist/index.js",
|
|
7
6
|
"types": "dist/index.d.ts",
|
|
8
7
|
"files": [
|
|
@@ -10,8 +9,12 @@
|
|
|
10
9
|
"README.md",
|
|
11
10
|
"LICENSE"
|
|
12
11
|
],
|
|
13
|
-
"version": "1.
|
|
12
|
+
"version": "1.1.0",
|
|
14
13
|
"author": "LibirSoft",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/AsenaJs/hono-adapter.git"
|
|
17
|
+
},
|
|
15
18
|
"license": "MIT",
|
|
16
19
|
"scripts": {
|
|
17
20
|
"test": "bun test",
|
|
@@ -22,8 +25,8 @@
|
|
|
22
25
|
"prepublishOnly": "bun run build"
|
|
23
26
|
},
|
|
24
27
|
"devDependencies": {
|
|
25
|
-
"@asenajs/asena": "
|
|
26
|
-
"@changesets/cli": "^2.
|
|
28
|
+
"@asenajs/asena": "^0.3.0",
|
|
29
|
+
"@changesets/cli": "^2.29.3",
|
|
27
30
|
"@types/bun": "latest",
|
|
28
31
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
29
32
|
"eslint": "^8.57.1",
|
|
@@ -32,7 +35,7 @@
|
|
|
32
35
|
"eslint-plugin-alloy": "^1.2.1",
|
|
33
36
|
"eslint-plugin-import": "^2.31.0",
|
|
34
37
|
"eslint-plugin-n": "^16.6.2",
|
|
35
|
-
"eslint-plugin-prettier": "^5.
|
|
38
|
+
"eslint-plugin-prettier": "^5.4.0",
|
|
36
39
|
"eslint-plugin-promise": "^6.6.0",
|
|
37
40
|
"prettier": "^3.5.3"
|
|
38
41
|
},
|
|
@@ -41,7 +44,7 @@
|
|
|
41
44
|
},
|
|
42
45
|
"dependencies": {
|
|
43
46
|
"@hono/zod-validator": "^0.4.3",
|
|
44
|
-
"hono": "^4.7.
|
|
45
|
-
"zod": "^3.24.
|
|
47
|
+
"hono": "^4.7.8",
|
|
48
|
+
"zod": "^3.24.4"
|
|
46
49
|
}
|
|
47
50
|
}
|