@thisisagile/easy-express 7.37.1 → 7.37.2
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,8 +6,8 @@ export declare class ExpressProvider implements AppProvider {
|
|
|
6
6
|
constructor(app?: Express);
|
|
7
7
|
use: (handler: Handler) => void;
|
|
8
8
|
route: (service: Service, resource: Resource) => void;
|
|
9
|
-
protected addSecurityMiddleware(requires: RouteRequires): RequestHandler[];
|
|
10
9
|
listen: (port: number, message?: string) => void;
|
|
10
|
+
protected addSecurityMiddleware(requires: RouteRequires): RequestHandler[];
|
|
11
11
|
protected handle: (endpoint: Endpoint, options?: VerbOptions | undefined) => RequestHandler;
|
|
12
12
|
protected toResponse(res: Response, result: unknown, options: Required<VerbOptions>): void;
|
|
13
13
|
protected json(res: Response, result: unknown, options: Required<VerbOptions>): void;
|
|
@@ -47,7 +47,8 @@ class ExpressProvider {
|
|
|
47
47
|
toResponse(res, result, options) {
|
|
48
48
|
res.status(options.onOk.status);
|
|
49
49
|
res.type(options.type.code);
|
|
50
|
-
options.cache.
|
|
50
|
+
if (options.cache.enabled)
|
|
51
|
+
res.setHeader(options.cache.name, options.cache.value());
|
|
51
52
|
(this[options.type.name] ?? this.json)(res, result, options);
|
|
52
53
|
}
|
|
53
54
|
json(res, result, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressProvider.js","sourceRoot":"","sources":["../../src/express/ExpressProvider.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4F;AAC5F,uDAAyE;AACzE,4CAiB2B;AAI3B,MAAa,eAAe;IAC1B,YAAsB,MAAe,IAAA,iBAAO,GAAE;QAAxB,QAAG,GAAH,GAAG,CAAqB;QAI9C,QAAG,GAAG,CAAC,OAAgB,EAAQ,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,UAAK,GAAG,CAAC,OAAgB,EAAE,QAAkB,EAAQ,EAAE;YACrD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,IAAA,cAAO,EAAC,UAAU,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YAE5E,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAS,EAAE,EAAE;gBACpE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAiB,CAAC,CACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACzB,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EACvC,GAAG,UAAU,EACb,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CACpC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpressProvider.js","sourceRoot":"","sources":["../../src/express/ExpressProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy-express",
|
|
3
|
-
"version": "7.37.
|
|
3
|
+
"version": "7.37.2",
|
|
4
4
|
"description": "Straightforward library for building domain-driven microservice architectures",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "7.37.
|
|
34
|
+
"@thisisagile/easy-test": "7.37.2",
|
|
35
35
|
"@types/cls-hooked": "^4.3.3",
|
|
36
36
|
"@types/form-urlencoded": "^4.4.0",
|
|
37
37
|
"@types/jsonwebtoken": "^8.5.5",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/validator": "^13.6.5"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@thisisagile/easy": "7.37.
|
|
44
|
+
"@thisisagile/easy": "7.37.2",
|
|
45
45
|
"@types/express": "^4.17.13",
|
|
46
46
|
"cls-hooked": "^4.2.2",
|
|
47
47
|
"express": "^4.17.1",
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
Endpoint,
|
|
6
6
|
Handler,
|
|
7
7
|
HttpStatus,
|
|
8
|
+
isEmpty,
|
|
8
9
|
Resource,
|
|
9
10
|
rest,
|
|
10
11
|
Route,
|
|
@@ -12,11 +13,10 @@ import {
|
|
|
12
13
|
routes,
|
|
13
14
|
Service,
|
|
14
15
|
toList,
|
|
15
|
-
isEmpty,
|
|
16
16
|
toOriginatedError,
|
|
17
17
|
toReq,
|
|
18
18
|
toVerbOptions,
|
|
19
|
-
VerbOptions
|
|
19
|
+
VerbOptions,
|
|
20
20
|
} from '@thisisagile/easy';
|
|
21
21
|
|
|
22
22
|
export type ExpressVerb = 'get' | 'post' | 'put' | 'patch' | 'delete';
|
|
@@ -41,13 +41,19 @@ export class ExpressProvider implements AppProvider {
|
|
|
41
41
|
route.route(service.name),
|
|
42
42
|
...this.addSecurityMiddleware(requires),
|
|
43
43
|
...middleware,
|
|
44
|
-
this.handle(endpoint, verb.options)
|
|
44
|
+
this.handle(endpoint, verb.options),
|
|
45
45
|
);
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
this.app.use(router);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
+
listen = (port: number, message = `Service is listening on port ${port}.`): void => {
|
|
52
|
+
this.app.listen(port, () => {
|
|
53
|
+
console.log(message);
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
51
57
|
protected addSecurityMiddleware(requires: RouteRequires): RequestHandler[] {
|
|
52
58
|
const middleware: RequestHandler[] = [];
|
|
53
59
|
if (requires.token) middleware.push(checkToken());
|
|
@@ -56,23 +62,17 @@ export class ExpressProvider implements AppProvider {
|
|
|
56
62
|
return middleware;
|
|
57
63
|
}
|
|
58
64
|
|
|
59
|
-
listen = (port: number, message = `Service is listening on port ${port}.`): void => {
|
|
60
|
-
this.app.listen(port, () => {
|
|
61
|
-
console.log(message);
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
|
|
65
65
|
protected handle =
|
|
66
66
|
(endpoint: Endpoint, options?: VerbOptions): RequestHandler =>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
(req: Request, res: Response, next: NextFunction) =>
|
|
68
|
+
endpoint(toReq(req))
|
|
69
|
+
.then((r: any) => this.toResponse(res, r, toVerbOptions(options)))
|
|
70
|
+
.catch(error => next(toOriginatedError(error, options)));
|
|
71
71
|
|
|
72
72
|
protected toResponse(res: Response, result: unknown, options: Required<VerbOptions>): void {
|
|
73
73
|
res.status(options.onOk.status);
|
|
74
74
|
res.type(options.type.code);
|
|
75
|
-
options.cache.
|
|
75
|
+
if (options.cache.enabled) res.setHeader(options.cache.name, options.cache.value());
|
|
76
76
|
|
|
77
77
|
((this as any)[options.type.name] ?? this.json)(res, result, options);
|
|
78
78
|
}
|