http-air 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.
@@ -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
  };
@@ -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;
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "http-air",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
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",