@shrub/express 0.5.27 → 0.5.28
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/dist/controller.js +1 -3
- package/dist/esm/controller.js +1 -3
- package/dist/esm/module.js +5 -4
- package/dist/esm/request-context.js +10 -17
- package/dist/module.js +5 -4
- package/dist/request-context.d.ts +1 -12
- package/dist/request-context.js +9 -16
- package/package.json +4 -4
package/dist/controller.js
CHANGED
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createRouteDecorator = exports.useController = exports.Put = exports.Post = exports.Patch = exports.Get = exports.Delete = exports.Route = void 0;
|
|
4
4
|
const express_1 = require("express");
|
|
5
5
|
const core_1 = require("@shrub/core");
|
|
6
|
-
const internal_1 = require("./internal");
|
|
7
6
|
const controllerKey = "__controller";
|
|
8
7
|
const routerKey = "__router";
|
|
9
8
|
const routesKey = "__routes";
|
|
@@ -93,9 +92,8 @@ function registerRoute(path, handlers, cb) {
|
|
|
93
92
|
/** Middleware that creates a new Controller instance for a request. */
|
|
94
93
|
function createController(ctor) {
|
|
95
94
|
return (req, _, next) => {
|
|
96
|
-
req.context.services.get(internal_1.IControllerRequestService).captureRequest(req);
|
|
97
95
|
req[controllerKey] = req.context.services.get(core_1.IInstantiationService).createInstance(ctor);
|
|
98
96
|
next();
|
|
99
97
|
};
|
|
100
98
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFpRDtBQUVqRCxzQ0FBb0Q7QUFhcEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ3JDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUM3QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUM7QUFFN0IsTUFBTSxZQUFZLEdBQXdELENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO0lBQ2pILE1BQU0sVUFBVSxHQUFTLEdBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksNEJBQTRCLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDekc7SUFFRCxNQUFNLE9BQU8sR0FBbUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsV0FBVyw4QkFBOEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDMUg7SUFFRCxnSUFBZ0k7SUFDaEksMkZBQTJGO0lBQzNGLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUMsQ0FBQztBQUVGLCtGQUErRjtB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
|
package/dist/esm/controller.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Router } from "express";
|
|
2
2
|
import { IInstantiationService } from "@shrub/core";
|
|
3
|
-
import { IControllerRequestService } from "./internal";
|
|
4
3
|
const controllerKey = "__controller";
|
|
5
4
|
const routerKey = "__router";
|
|
6
5
|
const routesKey = "__routes";
|
|
@@ -82,9 +81,8 @@ function registerRoute(path, handlers, cb) {
|
|
|
82
81
|
/** Middleware that creates a new Controller instance for a request. */
|
|
83
82
|
function createController(ctor) {
|
|
84
83
|
return (req, _, next) => {
|
|
85
|
-
req.context.services.get(IControllerRequestService).captureRequest(req);
|
|
86
84
|
req[controllerKey] = req.context.services.get(IInstantiationService).createInstance(ctor);
|
|
87
85
|
next();
|
|
88
86
|
};
|
|
89
87
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWFwRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUM7QUFDckMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQzdCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUU3QixNQUFNLFlBQVksR0FBd0QsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDakgsTUFBTSxVQUFVLEdBQVMsR0FBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxlQUFlLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSw0QkFBNEIsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN6RztJQUVELE1BQU0sT0FBTyxHQUFtQixVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixXQUFXLDhCQUE4QixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztLQUMxSDtJQUVELGdJQUFnSTtJQUNoSSwyRkFBMkY7SUFDM0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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
|
package/dist/esm/module.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import express from "express";
|
|
2
2
|
import { createConfig, createService } from "@shrub/core";
|
|
3
3
|
import { HttpModule, IHttpModuleConfiguration, IHttpServer } from "@shrub/http";
|
|
4
|
-
import { ControllerRequestService, IControllerRequestService } from "./internal";
|
|
5
4
|
import { IRequestContextBuilderRegistration, IRequestContextService, RequestContextBuilderRegistration, RequestContextService } from "./request-context";
|
|
6
5
|
export const IExpressConfiguration = createConfig();
|
|
7
6
|
export const IExpressApplication = createService("express-application");
|
|
@@ -14,7 +13,6 @@ export class ExpressModule {
|
|
|
14
13
|
init.config(IExpressConfiguration).register(({ services }) => services.get(IExpressApplication));
|
|
15
14
|
}
|
|
16
15
|
configureServices(registration) {
|
|
17
|
-
registration.register(IControllerRequestService, ControllerRequestService);
|
|
18
16
|
registration.register(IRequestContextBuilderRegistration, RequestContextBuilderRegistration);
|
|
19
17
|
registration.register(IRequestContextService, RequestContextService);
|
|
20
18
|
registration.registerSingleton(IExpressApplication, {
|
|
@@ -22,7 +20,10 @@ export class ExpressModule {
|
|
|
22
20
|
const app = express();
|
|
23
21
|
this.overrideListen(services, app);
|
|
24
22
|
app.use((req, res, next) => {
|
|
25
|
-
|
|
23
|
+
// use a scoped service collection for the request
|
|
24
|
+
const requestServices = services.createScope();
|
|
25
|
+
const builder = requestServices.get(IRequestContextService).getBuilder();
|
|
26
|
+
res.on("finish", () => requestServices.dispose());
|
|
26
27
|
// note: these properties need to be configurable to support express sub apps
|
|
27
28
|
// when loading a set of modules as an independent sub app the root app will
|
|
28
29
|
// have defined a context on the request but for sub apps we need to overwrite
|
|
@@ -60,4 +61,4 @@ export class ExpressModule {
|
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQThGLE1BQU0sYUFBYSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hGLE9BQU8sRUFDNkIsa0NBQWtDLEVBQUUsc0JBQXNCLEVBQzFGLGlDQUFpQyxFQUFFLHFCQUFxQixFQUMzRCxNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFlBQVksRUFBeUIsQ0FBQztBQVUzRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFJN0YsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDYSxTQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQStEekMsQ0FBQztJQTdERyxVQUFVLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUF3QixRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBa0M7UUFDaEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzdGLFlBQVksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNyRSxZQUFZLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUU7WUFDaEQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ3ZCLGtEQUFrRDtvQkFDbEQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBRXpFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUVsRCw2RUFBNkU7b0JBQzdFLDRFQUE0RTtvQkFDNUUsOEVBQThFO29CQUM5RSwyREFBMkQ7b0JBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRTt3QkFDbEMsWUFBWSxFQUFFLElBQUk7d0JBQ2xCLEdBQUcsS0FBSyxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3ZDLENBQUMsQ0FBQztvQkFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRTt3QkFDekMsWUFBWSxFQUFFLElBQUk7d0JBQ2xCLEdBQUcsS0FBSyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUM7cUJBQzVCLENBQUMsQ0FBQztvQkFFSCxJQUFJLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFFSCx3RkFBd0Y7Z0JBQ3hGLGtEQUFrRDtnQkFDcEIsR0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO29CQUN2RSxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUUsQ0FBQyxDQUFDO2dCQUVGLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUF1QjtRQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUE0QixFQUFFLEdBQW9CO1FBQ3JFLDBFQUEwRTtRQUMxRSxtRkFBbUY7UUFDbkYsNEVBQTRFO1FBQzVFLHNDQUFzQztRQUN0QyxHQUFHLENBQUMsTUFBTSxHQUFHLFNBQVMsTUFBTTtZQUN4QixNQUFNLE1BQU0sR0FBUSxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQTtJQUNMLENBQUM7Q0FDSiJ9
|
|
@@ -7,10 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import { createService, IServiceCollection,
|
|
11
|
-
import { IControllerRequestService } from "./internal";
|
|
10
|
+
import { createService, IServiceCollection, Scoped, Singleton } from "@shrub/core";
|
|
12
11
|
/** @internal */
|
|
13
12
|
export const IRequestContextBuilderRegistration = createService("request-context-registration");
|
|
13
|
+
/** @internal */
|
|
14
14
|
export const IRequestContextService = createService("request-context-service");
|
|
15
15
|
/** @internal */
|
|
16
16
|
let RequestContextBuilderRegistration = class RequestContextBuilderRegistration {
|
|
@@ -30,22 +30,16 @@ RequestContextBuilderRegistration = __decorate([
|
|
|
30
30
|
export { RequestContextBuilderRegistration };
|
|
31
31
|
/** @internal */
|
|
32
32
|
let RequestContextService = class RequestContextService {
|
|
33
|
-
constructor(
|
|
34
|
-
this.services = services;
|
|
33
|
+
constructor(builders, services) {
|
|
35
34
|
this.builders = builders;
|
|
36
|
-
|
|
37
|
-
this.current = req && req.context;
|
|
35
|
+
this.context = { bag: {}, services };
|
|
38
36
|
}
|
|
39
37
|
getBuilder() {
|
|
40
|
-
|
|
41
|
-
bag: {},
|
|
42
|
-
services: this.services
|
|
43
|
-
};
|
|
44
|
-
const builder = { instance: () => context };
|
|
38
|
+
const builder = { instance: () => this.context };
|
|
45
39
|
const map = this.builders.getCallbacks();
|
|
46
40
|
for (const name in map) {
|
|
47
41
|
builder[name] = (...args) => {
|
|
48
|
-
context = map[name](context, ...args);
|
|
42
|
+
this.context = map[name](this.context, ...args);
|
|
49
43
|
return builder;
|
|
50
44
|
};
|
|
51
45
|
}
|
|
@@ -53,10 +47,9 @@ let RequestContextService = class RequestContextService {
|
|
|
53
47
|
}
|
|
54
48
|
};
|
|
55
49
|
RequestContextService = __decorate([
|
|
56
|
-
|
|
57
|
-
__param(0,
|
|
58
|
-
__param(1,
|
|
59
|
-
__param(2, IControllerRequestService)
|
|
50
|
+
Scoped,
|
|
51
|
+
__param(0, IRequestContextBuilderRegistration),
|
|
52
|
+
__param(1, IServiceCollection)
|
|
60
53
|
], RequestContextService);
|
|
61
54
|
export { RequestContextService };
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUF1Rm5GLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxhQUFhLENBQXFDLDhCQUE4QixDQUFDLENBQUM7QUFDcEksZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBeUIseUJBQXlCLENBQUMsQ0FBQztBQUV2RyxnQkFBZ0I7QUFFaEIsSUFBYSxpQ0FBaUMsR0FBOUMsTUFBYSxpQ0FBaUM7SUFBOUM7UUFDcUIsUUFBRyxHQUF1QyxFQUFFLENBQUM7SUFTbEUsQ0FBQztJQVBHLFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBd0M7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQztDQUNKLENBQUE7QUFWWSxpQ0FBaUM7SUFEN0MsU0FBUztHQUNHLGlDQUFpQyxDQVU3QztTQVZZLGlDQUFpQztBQVk5QyxnQkFBZ0I7QUFFaEIsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFHOUIsWUFDeUQsUUFBNEMsRUFDN0UsUUFBNEI7UUFESyxhQUFRLEdBQVIsUUFBUSxDQUFvQztRQUU3RixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sT0FBTyxHQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpDLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDaEQsT0FBTyxPQUFPLENBQUM7WUFDbkIsQ0FBQyxDQUFDO1NBQ0w7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0NBQ0osQ0FBQTtBQXRCWSxxQkFBcUI7SUFEakMsTUFBTTtJQUtFLFdBQUEsa0NBQWtDLENBQUE7SUFDbEMsV0FBQSxrQkFBa0IsQ0FBQTtHQUxkLHFCQUFxQixDQXNCakM7U0F0QlkscUJBQXFCIn0=
|
package/dist/module.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.ExpressModule = exports.IExpressApplication = exports.IExpressConfigurat
|
|
|
7
7
|
const express_1 = __importDefault(require("express"));
|
|
8
8
|
const core_1 = require("@shrub/core");
|
|
9
9
|
const http_1 = require("@shrub/http");
|
|
10
|
-
const internal_1 = require("./internal");
|
|
11
10
|
const request_context_1 = require("./request-context");
|
|
12
11
|
exports.IExpressConfiguration = core_1.createConfig();
|
|
13
12
|
exports.IExpressApplication = core_1.createService("express-application");
|
|
@@ -20,7 +19,6 @@ class ExpressModule {
|
|
|
20
19
|
init.config(exports.IExpressConfiguration).register(({ services }) => services.get(exports.IExpressApplication));
|
|
21
20
|
}
|
|
22
21
|
configureServices(registration) {
|
|
23
|
-
registration.register(internal_1.IControllerRequestService, internal_1.ControllerRequestService);
|
|
24
22
|
registration.register(request_context_1.IRequestContextBuilderRegistration, request_context_1.RequestContextBuilderRegistration);
|
|
25
23
|
registration.register(request_context_1.IRequestContextService, request_context_1.RequestContextService);
|
|
26
24
|
registration.registerSingleton(exports.IExpressApplication, {
|
|
@@ -28,7 +26,10 @@ class ExpressModule {
|
|
|
28
26
|
const app = express_1.default();
|
|
29
27
|
this.overrideListen(services, app);
|
|
30
28
|
app.use((req, res, next) => {
|
|
31
|
-
|
|
29
|
+
// use a scoped service collection for the request
|
|
30
|
+
const requestServices = services.createScope();
|
|
31
|
+
const builder = requestServices.get(request_context_1.IRequestContextService).getBuilder();
|
|
32
|
+
res.on("finish", () => requestServices.dispose());
|
|
32
33
|
// note: these properties need to be configurable to support express sub apps
|
|
33
34
|
// when loading a set of modules as an independent sub app the root app will
|
|
34
35
|
// have defined a context on the request but for sub apps we need to overwrite
|
|
@@ -67,4 +68,4 @@ class ExpressModule {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
exports.ExpressModule = ExpressModule;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzREFBOEI7QUFDOUIsc0NBQXNKO0FBQ3RKLHNDQUFnRjtBQUNoRix1REFHMkI7QUFFZCxRQUFBLHFCQUFxQixHQUFHLG1CQUFZLEVBQXlCLENBQUM7QUFVOUQsUUFBQSxtQkFBbUIsR0FBRyxvQkFBYSxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDO0FBSTdGLE1BQWEsYUFBYTtJQUExQjtRQUNhLFNBQUksR0FBRyxTQUFTLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLGlCQUFVLENBQUMsQ0FBQztJQStEekMsQ0FBQztJQTdERyxVQUFVLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2QkFBcUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUF3QixRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUFtQixDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsWUFBa0M7UUFDaEQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvREFBa0MsRUFBRSxtREFBaUMsQ0FBQyxDQUFDO1FBQzdGLFlBQVksQ0FBQyxRQUFRLENBQUMsd0NBQXNCLEVBQUUsdUNBQXFCLENBQUMsQ0FBQztRQUNyRSxZQUFZLENBQUMsaUJBQWlCLENBQUMsMkJBQW1CLEVBQUU7WUFDaEQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLGlCQUFPLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBRW5DLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO29CQUN2QixrREFBa0Q7b0JBQ2xELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUV6RSxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFFbEQsNkVBQTZFO29CQUM3RSw0RUFBNEU7b0JBQzVFLDhFQUE4RTtvQkFDOUUsMkRBQTJEO29CQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7d0JBQ2xDLFlBQVksRUFBRSxJQUFJO3dCQUNsQixHQUFHLEtBQUssT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUN2QyxDQUFDLENBQUM7b0JBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUU7d0JBQ3pDLFlBQVksRUFBRSxJQUFJO3dCQUNsQixHQUFHLEtBQUssT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUM1QixDQUFDLENBQUM7b0JBRUgsSUFBSSxFQUFFLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsd0ZBQXdGO2dCQUN4RixrREFBa0Q7Z0JBQ3BCLEdBQUssQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtvQkFDdkUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvREFBa0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzlFLENBQUMsQ0FBQztnQkFFRixPQUFPLEdBQUcsQ0FBQztZQUNmLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBdUI7UUFDL0MsTUFBTSxDQUFDLEdBQUcsQ0FBQywrQkFBd0IsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBNEIsRUFBRSxHQUFvQjtRQUNyRSwwRUFBMEU7UUFDMUUsbUZBQW1GO1FBQ25GLDRFQUE0RTtRQUM1RSxzQ0FBc0M7UUFDdEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLE1BQU07WUFDeEIsTUFBTSxNQUFNLEdBQVEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBVyxDQUFDLENBQUM7WUFDOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztDQUNKO0FBakVELHNDQWlFQyJ9
|
|
@@ -27,7 +27,7 @@ export interface IRequestContext {
|
|
|
27
27
|
readonly bag: {
|
|
28
28
|
[key: string]: any;
|
|
29
29
|
};
|
|
30
|
-
/** A reference to the service collection
|
|
30
|
+
/** A reference to the service collection available to the request. */
|
|
31
31
|
readonly services: IServiceCollection;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
@@ -64,14 +64,3 @@ export interface IRequestContextBuilder {
|
|
|
64
64
|
export interface IRequestContextBuilderCallback {
|
|
65
65
|
(context: IRequestContext, ...args: any[]): IRequestContext;
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
* A service that provides access to the current request context.
|
|
69
|
-
*
|
|
70
|
-
* Caution needs to used with this service. It is intended for internal API services that need access
|
|
71
|
-
* to the current request context and any API service that depends on this service must be transient.
|
|
72
|
-
*/
|
|
73
|
-
export interface IRequestContextService {
|
|
74
|
-
readonly current?: IRequestContext;
|
|
75
|
-
getBuilder(): IRequestContextBuilder;
|
|
76
|
-
}
|
|
77
|
-
export declare const IRequestContextService: import("@shrub/core").IService<IRequestContextService>;
|
package/dist/request-context.js
CHANGED
|
@@ -11,9 +11,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.RequestContextService = exports.RequestContextBuilderRegistration = exports.IRequestContextService = exports.IRequestContextBuilderRegistration = void 0;
|
|
13
13
|
const core_1 = require("@shrub/core");
|
|
14
|
-
const internal_1 = require("./internal");
|
|
15
14
|
/** @internal */
|
|
16
15
|
exports.IRequestContextBuilderRegistration = core_1.createService("request-context-registration");
|
|
16
|
+
/** @internal */
|
|
17
17
|
exports.IRequestContextService = core_1.createService("request-context-service");
|
|
18
18
|
/** @internal */
|
|
19
19
|
let RequestContextBuilderRegistration = class RequestContextBuilderRegistration {
|
|
@@ -33,22 +33,16 @@ RequestContextBuilderRegistration = __decorate([
|
|
|
33
33
|
exports.RequestContextBuilderRegistration = RequestContextBuilderRegistration;
|
|
34
34
|
/** @internal */
|
|
35
35
|
let RequestContextService = class RequestContextService {
|
|
36
|
-
constructor(
|
|
37
|
-
this.services = services;
|
|
36
|
+
constructor(builders, services) {
|
|
38
37
|
this.builders = builders;
|
|
39
|
-
|
|
40
|
-
this.current = req && req.context;
|
|
38
|
+
this.context = { bag: {}, services };
|
|
41
39
|
}
|
|
42
40
|
getBuilder() {
|
|
43
|
-
|
|
44
|
-
bag: {},
|
|
45
|
-
services: this.services
|
|
46
|
-
};
|
|
47
|
-
const builder = { instance: () => context };
|
|
41
|
+
const builder = { instance: () => this.context };
|
|
48
42
|
const map = this.builders.getCallbacks();
|
|
49
43
|
for (const name in map) {
|
|
50
44
|
builder[name] = (...args) => {
|
|
51
|
-
context = map[name](context, ...args);
|
|
45
|
+
this.context = map[name](this.context, ...args);
|
|
52
46
|
return builder;
|
|
53
47
|
};
|
|
54
48
|
}
|
|
@@ -56,10 +50,9 @@ let RequestContextService = class RequestContextService {
|
|
|
56
50
|
}
|
|
57
51
|
};
|
|
58
52
|
RequestContextService = __decorate([
|
|
59
|
-
core_1.
|
|
60
|
-
__param(0,
|
|
61
|
-
__param(1,
|
|
62
|
-
__param(2, internal_1.IControllerRequestService)
|
|
53
|
+
core_1.Scoped,
|
|
54
|
+
__param(0, exports.IRequestContextBuilderRegistration),
|
|
55
|
+
__param(1, core_1.IServiceCollection)
|
|
63
56
|
], RequestContextService);
|
|
64
57
|
exports.RequestContextService = RequestContextService;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlcXVlc3QtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBbUY7QUF1Rm5GLGdCQUFnQjtBQUNILFFBQUEsa0NBQWtDLEdBQUcsb0JBQWEsQ0FBcUMsOEJBQThCLENBQUMsQ0FBQztBQUNwSSxnQkFBZ0I7QUFDSCxRQUFBLHNCQUFzQixHQUFHLG9CQUFhLENBQXlCLHlCQUF5QixDQUFDLENBQUM7QUFFdkcsZ0JBQWdCO0FBRWhCLElBQWEsaUNBQWlDLEdBQTlDLE1BQWEsaUNBQWlDO0lBQTlDO1FBQ3FCLFFBQUcsR0FBdUMsRUFBRSxDQUFDO0lBU2xFLENBQUM7SUFQRyxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWSxFQUFFLFFBQXdDO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7Q0FDSixDQUFBO0FBVlksaUNBQWlDO0lBRDdDLGdCQUFTO0dBQ0csaUNBQWlDLENBVTdDO0FBVlksOEVBQWlDO0FBWTlDLGdCQUFnQjtBQUVoQixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUc5QixZQUN5RCxRQUE0QyxFQUM3RSxRQUE0QjtRQURLLGFBQVEsR0FBUixRQUFRLENBQW9DO1FBRTdGLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxPQUFPLEdBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLE9BQU8sQ0FBQztZQUNuQixDQUFDLENBQUM7U0FDTDtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSixDQUFBO0FBdEJZLHFCQUFxQjtJQURqQyxhQUFNO0lBS0UsV0FBQSwwQ0FBa0MsQ0FBQTtJQUNsQyxXQUFBLHlCQUFrQixDQUFBO0dBTGQscUJBQXFCLENBc0JqQztBQXRCWSxzREFBcUIifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shrub/express",
|
|
3
3
|
"description": "A module that adds support for Express based apps.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.28",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@shrub/core": "0.5.
|
|
29
|
-
"@shrub/http": "0.5.
|
|
28
|
+
"@shrub/core": "0.5.28",
|
|
29
|
+
"@shrub/http": "0.5.28",
|
|
30
30
|
"express": "^4.17.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/express": "4.17.9"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "e44c4305d5785b9136179ca7f915ae6b15677383"
|
|
36
36
|
}
|