@quatrain/api-server-express 1.1.10 → 1.1.12

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.
@@ -6,6 +6,7 @@ export declare class ExpressAdapter implements ServerAdapter {
6
6
  constructor(appOrRouter?: express.Application | express.Router, config?: {
7
7
  apiPrefix?: string;
8
8
  });
9
+ private mapRequestResponse;
9
10
  private wrapHandler;
10
11
  get(path: string, handler: ApiHandler): void;
11
12
  post(path: string, handler: ApiHandler): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ExpressAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMnI,qBAAa,cAAe,YAAW,aAAa;IAE9C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;gBADN,WAAW,GAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,MAAkB,EAC7D,MAAM,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAkB9C,OAAO,CAAC,WAAW;IA6CnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU5C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAS/C,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAS1B,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAiD9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAYzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAahD,iBAAiB,IAAI,GAAG;IAYxB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,IAAI;IAiBjE,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;CAUlG"}
1
+ {"version":3,"file":"ExpressAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ExpressAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAMnI,qBAAa,cAAe,YAAW,aAAa;IAE9C,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;gBADN,WAAW,GAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,MAAkB,EAC7D,MAAM,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAkB9C,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,WAAW;IAenB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU5C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAU5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAS/C,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;IAS1B,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAmB9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAYzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAahD,iBAAiB,IAAI,GAAG;IAYxB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,IAAI;IAiBjE,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;CAUlG"}
@@ -25,41 +25,42 @@ class ExpressAdapter {
25
25
  });
26
26
  }
27
27
  }
28
+ mapRequestResponse(req, res) {
29
+ const apiReq = {
30
+ body: req.body,
31
+ params: req.params,
32
+ query: req.query,
33
+ headers: req.headers
34
+ };
35
+ const apiRes = {
36
+ status: (code) => {
37
+ res.status(code);
38
+ return apiRes;
39
+ },
40
+ json: (data) => {
41
+ res.json(data);
42
+ },
43
+ send: (data) => {
44
+ res.send(data);
45
+ },
46
+ setHeader: (name, value) => {
47
+ res.setHeader(name, value);
48
+ },
49
+ write: (data) => {
50
+ res.write(data);
51
+ },
52
+ end: () => {
53
+ res.end();
54
+ }
55
+ };
56
+ return { apiReq, apiRes };
57
+ }
28
58
  wrapHandler(handler) {
29
- return async (req, res, next) => {
30
- try {
31
- const apiReq = {
32
- body: req.body,
33
- params: req.params,
34
- query: req.query,
35
- headers: req.headers
36
- };
37
- const apiRes = {
38
- status: (code) => {
39
- res.status(code);
40
- return apiRes;
41
- },
42
- json: (data) => {
43
- res.json(data);
44
- },
45
- send: (data) => {
46
- res.send(data);
47
- },
48
- setHeader: (name, value) => {
49
- res.setHeader(name, value);
50
- },
51
- write: (data) => {
52
- res.write(data);
53
- },
54
- end: () => {
55
- res.end();
56
- }
57
- };
59
+ return (req, res, next) => {
60
+ void (async () => {
61
+ const { apiReq, apiRes } = this.mapRequestResponse(req, res);
58
62
  await handler(apiReq, apiRes);
59
- }
60
- catch (err) {
61
- next(err);
62
- }
63
+ })().catch(next);
63
64
  };
64
65
  }
65
66
  get(path, handler) {
@@ -78,43 +79,14 @@ class ExpressAdapter {
78
79
  this.appOrRouter.use(middleware);
79
80
  }
80
81
  addMiddleware(middleware) {
81
- const expressMiddleware = async (req, res, next) => {
82
- const apiReq = {
83
- body: req.body,
84
- params: req.params,
85
- query: req.query,
86
- headers: req.headers
87
- };
88
- const apiRes = {
89
- status: (code) => {
90
- res.status(code);
91
- return apiRes;
92
- },
93
- json: (data) => {
94
- res.json(data);
95
- },
96
- send: (data) => {
97
- res.send(data);
98
- },
99
- setHeader: (name, value) => {
100
- res.setHeader(name, value);
101
- },
102
- write: (data) => {
103
- res.write(data);
104
- },
105
- end: () => {
106
- res.end();
107
- }
108
- };
109
- try {
82
+ const expressMiddleware = (req, res, next) => {
83
+ void (async () => {
84
+ const { apiReq, apiRes } = this.mapRequestResponse(req, res);
110
85
  const shouldContinue = await middleware(apiReq, apiRes);
111
86
  if (shouldContinue) {
112
87
  next();
113
88
  }
114
- }
115
- catch (err) {
116
- next(err);
117
- }
89
+ })().catch(next);
118
90
  };
119
91
  this.appOrRouter.use(expressMiddleware);
120
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressAdapter.js","sourceRoot":"","sources":["../../src/adapters/ExpressAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressAdapter.js","sourceRoot":"","sources":["../../src/adapters/ExpressAdapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/api-server-express",
3
- "version": "1.1.10",
3
+ "version": "1.1.12",
4
4
  "description": "Express Adapter for Quatrain API Server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -26,42 +26,45 @@ export class ExpressAdapter implements ServerAdapter {
26
26
  }
27
27
  }
28
28
 
29
- private wrapHandler(handler: ApiHandler): express.RequestHandler {
30
- return async (req: express.Request, res: express.Response, next: express.NextFunction) => {
31
- try {
32
- const apiReq: ApiRequest = {
33
- body: req.body,
34
- params: req.params,
35
- query: req.query,
36
- headers: req.headers as Record<string, string | string[] | undefined>
37
- }
29
+ private mapRequestResponse(req: express.Request, res: express.Response): { apiReq: ApiRequest; apiRes: ApiResponse } {
30
+ const apiReq: ApiRequest = {
31
+ body: req.body,
32
+ params: req.params,
33
+ query: req.query,
34
+ headers: req.headers as Record<string, string | string[] | undefined>
35
+ }
38
36
 
39
- const apiRes: ApiResponse = {
40
- status: (code: number) => {
41
- res.status(code)
42
- return apiRes
43
- },
44
- json: (data: any) => {
45
- res.json(data)
46
- },
47
- send: (data: string) => {
48
- res.send(data)
49
- },
50
- setHeader: (name: string, value: string) => {
51
- res.setHeader(name, value)
52
- },
53
- write: (data: string) => {
54
- res.write(data)
55
- },
56
- end: () => {
57
- res.end()
58
- }
59
- }
37
+ const apiRes: ApiResponse = {
38
+ status: (code: number) => {
39
+ res.status(code)
40
+ return apiRes
41
+ },
42
+ json: (data: any) => {
43
+ res.json(data)
44
+ },
45
+ send: (data: string) => {
46
+ res.send(data)
47
+ },
48
+ setHeader: (name: string, value: string) => {
49
+ res.setHeader(name, value)
50
+ },
51
+ write: (data: string) => {
52
+ res.write(data)
53
+ },
54
+ end: () => {
55
+ res.end()
56
+ }
57
+ }
58
+
59
+ return { apiReq, apiRes }
60
+ }
60
61
 
62
+ private wrapHandler(handler: ApiHandler): express.RequestHandler {
63
+ return (req: express.Request, res: express.Response, next: express.NextFunction): void => {
64
+ void (async () => {
65
+ const { apiReq, apiRes } = this.mapRequestResponse(req, res)
61
66
  await handler(apiReq, apiRes)
62
- } catch (err) {
63
- next(err)
64
- }
67
+ })().catch(next)
65
68
  }
66
69
  }
67
70
 
@@ -120,44 +123,14 @@ export class ExpressAdapter implements ServerAdapter {
120
123
  * @param middleware - The Quatrain ApiMiddleware function.
121
124
  */
122
125
  addMiddleware(middleware: ApiMiddleware): void {
123
- const expressMiddleware = async (req: express.Request, res: express.Response, next: express.NextFunction) => {
124
- const apiReq: ApiRequest = {
125
- body: req.body,
126
- params: req.params,
127
- query: req.query,
128
- headers: req.headers as Record<string, string | string[] | undefined>
129
- }
130
-
131
- const apiRes: ApiResponse = {
132
- status: (code: number) => {
133
- res.status(code)
134
- return apiRes
135
- },
136
- json: (data: any) => {
137
- res.json(data)
138
- },
139
- send: (data: string) => {
140
- res.send(data)
141
- },
142
- setHeader: (name: string, value: string) => {
143
- res.setHeader(name, value)
144
- },
145
- write: (data: string) => {
146
- res.write(data)
147
- },
148
- end: () => {
149
- res.end()
150
- }
151
- }
152
-
153
- try {
126
+ const expressMiddleware = (req: express.Request, res: express.Response, next: express.NextFunction): void => {
127
+ void (async () => {
128
+ const { apiReq, apiRes } = this.mapRequestResponse(req, res)
154
129
  const shouldContinue = await middleware(apiReq, apiRes)
155
130
  if (shouldContinue) {
156
131
  next()
157
132
  }
158
- } catch (err) {
159
- next(err)
160
- }
133
+ })().catch(next)
161
134
  }
162
135
  (this.appOrRouter as express.Router).use(expressMiddleware)
163
136
  }