http-air 1.0.0 → 1.2.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/lib/client/events.js +1 -1
- package/lib/server/adapters/express.js +2 -0
- package/lib/server/adapters/hono.js +2 -0
- package/lib/server/adapters/micro.js +2 -0
- package/lib/server/adapters/next.js +2 -0
- package/lib/server/router.d.ts +2 -0
- package/lib/server/rpc.d.ts +2 -2
- package/lib/server/rpc.js +1 -1
- package/package.json +4 -4
package/lib/client/events.js
CHANGED
|
@@ -115,7 +115,7 @@ class EventsClient {
|
|
|
115
115
|
this.abortController = abortController;
|
|
116
116
|
const response = await pResponse;
|
|
117
117
|
if (response.status !== 200)
|
|
118
|
-
throw new p_retry_1.AbortError(response.statusText);
|
|
118
|
+
throw new p_retry_1.AbortError(new Error(response.statusText));
|
|
119
119
|
this.response = response;
|
|
120
120
|
this.sessionId = response.headers.get(stream_constants_1.SESSION_ID_KEY) ?? '';
|
|
121
121
|
this.serverId = response.headers.get(stream_constants_1.SERVER_ID_KEY) ?? '';
|
|
@@ -11,6 +11,7 @@ const expressHandler = (server) => {
|
|
|
11
11
|
getUrl: () => req.url,
|
|
12
12
|
getMethod: () => req.method,
|
|
13
13
|
getBody: () => req.body,
|
|
14
|
+
getRaw: () => req,
|
|
14
15
|
}, {
|
|
15
16
|
write: (content) => res.write(content),
|
|
16
17
|
isClosed: () => res.writableEnded,
|
|
@@ -19,6 +20,7 @@ const expressHandler = (server) => {
|
|
|
19
20
|
onClose: (cb) => { res.setMaxListeners(0); res.on('close', cb); },
|
|
20
21
|
end: () => res.end(),
|
|
21
22
|
destroy: () => res.destroy(),
|
|
23
|
+
getRaw: () => res,
|
|
22
24
|
});
|
|
23
25
|
next();
|
|
24
26
|
});
|
|
@@ -16,6 +16,7 @@ const honoHandler = (server) => {
|
|
|
16
16
|
getUrl: () => c.req.url,
|
|
17
17
|
getMethod: () => c.req.method,
|
|
18
18
|
getBody: () => body,
|
|
19
|
+
getRaw: () => c.req,
|
|
19
20
|
}, {
|
|
20
21
|
write: (content) => { writer.write(encoder.encode(content)); return true; },
|
|
21
22
|
isClosed: () => false,
|
|
@@ -27,6 +28,7 @@ const honoHandler = (server) => {
|
|
|
27
28
|
onClose: () => { },
|
|
28
29
|
end: () => writer.close(),
|
|
29
30
|
destroy: () => writer.abort(),
|
|
31
|
+
getRaw: () => c,
|
|
30
32
|
});
|
|
31
33
|
return new Response(readable, { status: statusCode, headers });
|
|
32
34
|
};
|
|
@@ -10,6 +10,7 @@ const microHandler = (server) => {
|
|
|
10
10
|
getUrl: () => req.url ?? '',
|
|
11
11
|
getMethod: () => req.method ?? '',
|
|
12
12
|
getBody: () => body,
|
|
13
|
+
getRaw: () => req,
|
|
13
14
|
}, {
|
|
14
15
|
write: (content) => res.write(content),
|
|
15
16
|
isClosed: () => res.writableEnded,
|
|
@@ -18,6 +19,7 @@ const microHandler = (server) => {
|
|
|
18
19
|
onClose: (cb) => { res.setMaxListeners(0); res.on('close', cb); },
|
|
19
20
|
end: () => res.end(),
|
|
20
21
|
destroy: () => res.destroy(),
|
|
22
|
+
getRaw: () => res,
|
|
21
23
|
});
|
|
22
24
|
};
|
|
23
25
|
};
|
|
@@ -8,6 +8,7 @@ const nextHandler = (server) => {
|
|
|
8
8
|
getUrl: () => req.url ?? '',
|
|
9
9
|
getMethod: () => req.method ?? '',
|
|
10
10
|
getBody: () => req.body ?? '',
|
|
11
|
+
getRaw: () => req,
|
|
11
12
|
}, {
|
|
12
13
|
write: (content) => res.write(content),
|
|
13
14
|
isClosed: () => res.writableEnded,
|
|
@@ -16,6 +17,7 @@ const nextHandler = (server) => {
|
|
|
16
17
|
onClose: (cb) => { res.setMaxListeners(0); res.on('close', cb); },
|
|
17
18
|
end: () => res.end(),
|
|
18
19
|
destroy: () => res.destroy(),
|
|
20
|
+
getRaw: () => res,
|
|
19
21
|
});
|
|
20
22
|
};
|
|
21
23
|
};
|
package/lib/server/router.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface ServerReq {
|
|
|
3
3
|
getUrl(): string;
|
|
4
4
|
getMethod(): string;
|
|
5
5
|
getBody(): string;
|
|
6
|
+
getRaw(): unknown;
|
|
6
7
|
}
|
|
7
8
|
export interface ServerRes {
|
|
8
9
|
write(content: string): boolean;
|
|
@@ -12,6 +13,7 @@ export interface ServerRes {
|
|
|
12
13
|
onClose(callback: Function): void;
|
|
13
14
|
end(): void;
|
|
14
15
|
destroy(): void;
|
|
16
|
+
getRaw(): unknown;
|
|
15
17
|
}
|
|
16
18
|
export interface HttpHandler {
|
|
17
19
|
handleHttp(req: ServerReq, res: ServerRes): void;
|
package/lib/server/rpc.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RequestMessage } from '../shared/message';
|
|
2
|
-
import { Router } from './router';
|
|
3
|
-
export type RpcHandler = (request: RequestMessage) => Promise<any>;
|
|
2
|
+
import { Router, ServerReq, ServerRes } from './router';
|
|
3
|
+
export type RpcHandler = (request: RequestMessage, req: ServerReq, res: ServerRes) => Promise<any>;
|
|
4
4
|
export declare class RpcServer {
|
|
5
5
|
private handler;
|
|
6
6
|
constructor(server: Router);
|
package/lib/server/rpc.js
CHANGED
|
@@ -31,7 +31,7 @@ class RpcServer {
|
|
|
31
31
|
const parser = (0, json_stream_1.createParser)({
|
|
32
32
|
delimiter: stream_constants_1.DELIMITER,
|
|
33
33
|
onData: ({ index, method, params }) => {
|
|
34
|
-
const p = handler({ index, method, params })
|
|
34
|
+
const p = handler({ index, method, params }, req, res)
|
|
35
35
|
.then(result => stringifier.write({ index, result }))
|
|
36
36
|
.catch((err = {}) => stringifier.write({ index, error: { name: err.name, message: err.message } }));
|
|
37
37
|
resultPromises.push(p);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "http-air",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description"
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "HTTP library for batched RPC calls and real-time server-push over a single endpoint.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": "https://github.com/yosbelms/http-air",
|
|
7
7
|
"keywords": [
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"nanoid": "^5.1.7",
|
|
27
|
-
"p-defer": "^
|
|
28
|
-
"p-retry": "^
|
|
27
|
+
"p-defer": "^3.0.0",
|
|
28
|
+
"p-retry": "^4.6.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^25.0.10",
|