pwi-plata-type 0.4.62 → 0.4.63

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.
@@ -45,6 +45,14 @@ var Internals;
45
45
  });
46
46
  }
47
47
  Internals.buildRouterObject = buildRouterObject;
48
+ Internals.ResolveOnResponseEventQueue = async (aReq, aRes, body, error) => {
49
+ if (aReq._onResponseEvent.length === 0) {
50
+ return;
51
+ }
52
+ aReq._onResponseEvent.forEach((r) => {
53
+ Plata.FastPromise(() => r(aReq, aRes, body, error)).catch(() => undefined);
54
+ });
55
+ };
48
56
  function buildRequestHandler(r) {
49
57
  if (Array.isArray(r)) {
50
58
  return r.map(h => buildRequestHandler(h));
@@ -58,10 +66,23 @@ var Internals;
58
66
  if (aReq.extras === undefined) {
59
67
  aReq.extras = new Object(null);
60
68
  }
69
+ if (aReq._onResponseEvent === undefined) {
70
+ aReq._onResponseEvent = [];
71
+ }
72
+ if (aRes.addOnResponseEvent === undefined) {
73
+ aRes.addOnResponseEvent = (callback) => {
74
+ aReq._onResponseEvent.push(callback);
75
+ };
76
+ }
61
77
  if (aRes.oldJson === undefined) {
62
78
  aRes.oldJson = aRes.json;
63
79
  }
80
+ aRes.json = (body) => {
81
+ Plata.FastPromise(async () => { Internals.ResolveOnResponseEventQueue(aReq, aRes, body, undefined); });
82
+ return aRes.oldJson(body);
83
+ };
64
84
  aRes.error = error => {
85
+ Plata.FastPromise(async () => { Internals.ResolveOnResponseEventQueue(aReq, aRes, undefined, error); });
65
86
  return aRes.oldJson(error);
66
87
  };
67
88
  return r(aReq, aRes, next);
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/libs/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/libs/router.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pwi-plata-type",
3
- "version": "0.4.62",
3
+ "version": "0.4.63",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -7,11 +7,13 @@ declare global {
7
7
  interface Request extends express.Request {
8
8
  user: any
9
9
  extras: any
10
+ _onResponseEvent: PlataOnResponseEvent[]
10
11
  }
11
12
 
12
13
  interface Response extends express.Response {
13
14
  oldJson(body?: any): this
14
15
  error(error: PlataError | PlataError[]): this
16
+ addOnResponseEvent<T = any>(callback: PlataOnResponseEvent<T>): void
15
17
  }
16
18
 
17
19
  type RequestHandler = (req: Request, res: Response, next: express.NextFunction) => Promise<any>
@@ -71,5 +73,7 @@ declare global {
71
73
  export interface RequiredRoute extends RequiredInterface<RouterBuilder> {
72
74
  httpRoute: string
73
75
  }
76
+
77
+ type PlataOnResponseEvent<T = any> = (aReq: Request, aRes?: Response, body?: T, error?: PlataError | PlataError[]) => Promise<any>
74
78
  }
75
79
  }
@@ -45,6 +45,18 @@ export namespace Internals {
45
45
  }) as Router.Router
46
46
  }
47
47
 
48
+ export const ResolveOnResponseEventQueue = async(aReq: Router.Request, aRes: Router.Response, body?: any, error?: PlataError | PlataError[]) => {
49
+ if (aReq._onResponseEvent.length === 0) {
50
+ return;
51
+ }
52
+
53
+
54
+ aReq._onResponseEvent.forEach((r) => {
55
+ Plata.FastPromise(() => r(aReq, aRes, body, error)).catch(() => undefined)
56
+ })
57
+
58
+ }
59
+
48
60
  export function buildRequestHandler(r: Router.RequestHandler | Router.RequestHandler[]): express.RequestHandler | express.RequestHandler[] {
49
61
  if (Array.isArray(r)) {
50
62
  return r.map(h => buildRequestHandler(h)) as express.RequestHandler[]
@@ -62,11 +74,27 @@ export namespace Internals {
62
74
  aReq.extras = new Object(null)
63
75
  }
64
76
 
77
+ if (aReq._onResponseEvent === undefined) {
78
+ aReq._onResponseEvent = []
79
+ }
80
+
81
+ if (aRes.addOnResponseEvent === undefined) {
82
+ aRes.addOnResponseEvent = (callback) => {
83
+ aReq._onResponseEvent.push(callback)
84
+ }
85
+ }
86
+
65
87
  if (aRes.oldJson === undefined) {
66
88
  aRes.oldJson = aRes.json
67
89
  }
68
90
 
91
+ aRes.json = (body?: any) => {
92
+ Plata.FastPromise(async () => { ResolveOnResponseEventQueue(aReq, aRes, body, undefined) })
93
+ return aRes.oldJson(body)
94
+ }
95
+
69
96
  aRes.error = error => {
97
+ Plata.FastPromise(async () => { ResolveOnResponseEventQueue(aReq, aRes, undefined, error)})
70
98
  return aRes.oldJson(error)
71
99
  }
72
100