@pristine-ts/networking 0.0.214 → 0.0.217
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/lib/cjs/cache/cache.js +19 -0
- package/dist/lib/cjs/cache/cache.js.map +1 -0
- package/dist/lib/cjs/cache/cached.router-route.js +33 -0
- package/dist/lib/cjs/cache/cached.router-route.js.map +1 -0
- package/dist/lib/cjs/cache/router.cache.js +66 -0
- package/dist/lib/cjs/cache/router.cache.js.map +1 -0
- package/dist/lib/cjs/handlers/request.event-handler.js.map +1 -1
- package/dist/lib/cjs/interceptors/default-content-type-response-header.interceptor.js.map +1 -1
- package/dist/lib/cjs/interceptors/request-body-converter.interceptor.js.map +1 -1
- package/dist/lib/cjs/interceptors/response-headers.interceptor.js.map +1 -1
- package/dist/lib/cjs/mappers/request.mapper.js.map +1 -1
- package/dist/lib/cjs/models/cached.router-route.js +33 -0
- package/dist/lib/cjs/models/cached.router-route.js.map +1 -0
- package/dist/lib/cjs/models/router.cache.js +52 -0
- package/dist/lib/cjs/models/router.cache.js.map +1 -0
- package/dist/lib/cjs/networking.module.js +12 -0
- package/dist/lib/cjs/networking.module.js.map +1 -1
- package/dist/lib/cjs/resolvers/body-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/controller-method-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/headers-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/identity-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/query-parameter-decorator.resolver.js +3 -6
- package/dist/lib/cjs/resolvers/query-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/query-parameters-decorator.resolver.js +10 -7
- package/dist/lib/cjs/resolvers/query-parameters-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/request-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/resolvers/route-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/cjs/router.js +51 -18
- package/dist/lib/cjs/router.js.map +1 -1
- package/dist/lib/esm/cache/cache.js +3 -0
- package/dist/lib/esm/cache/cache.js.map +1 -0
- package/dist/lib/esm/cache/cached.router-route.js +29 -0
- package/dist/lib/esm/cache/cached.router-route.js.map +1 -0
- package/dist/lib/esm/cache/router.cache.js +63 -0
- package/dist/lib/esm/cache/router.cache.js.map +1 -0
- package/dist/lib/esm/handlers/request.event-handler.js.map +1 -1
- package/dist/lib/esm/interceptors/default-content-type-response-header.interceptor.js.map +1 -1
- package/dist/lib/esm/interceptors/request-body-converter.interceptor.js.map +1 -1
- package/dist/lib/esm/interceptors/response-headers.interceptor.js.map +1 -1
- package/dist/lib/esm/mappers/request.mapper.js.map +1 -1
- package/dist/lib/esm/models/cached.router-route.js +29 -0
- package/dist/lib/esm/models/cached.router-route.js.map +1 -0
- package/dist/lib/esm/models/router.cache.js +49 -0
- package/dist/lib/esm/models/router.cache.js.map +1 -0
- package/dist/lib/esm/networking.module.js +12 -0
- package/dist/lib/esm/networking.module.js.map +1 -1
- package/dist/lib/esm/resolvers/body-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/controller-method-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/headers-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/identity-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/query-parameter-decorator.resolver.js +3 -3
- package/dist/lib/esm/resolvers/query-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/query-parameters-decorator.resolver.js +10 -4
- package/dist/lib/esm/resolvers/query-parameters-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/request-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/resolvers/route-parameter-decorator.resolver.js.map +1 -1
- package/dist/lib/esm/router.js +51 -15
- package/dist/lib/esm/router.js.map +1 -1
- package/dist/types/cache/cache.d.ts +2 -0
- package/dist/types/cache/cached.router-route.d.ts +13 -0
- package/dist/types/cache/router.cache.d.ts +15 -0
- package/dist/types/decorators/response-header.decorator.d.ts +1 -1
- package/dist/types/models/cached.router-route.d.ts +13 -0
- package/dist/types/models/router.cache.d.ts +15 -0
- package/dist/types/networking.module.d.ts +1 -0
- package/dist/types/router.d.ts +4 -1
- package/package.json +7 -8
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cached.router-route"), exports);
|
|
18
|
+
__exportStar(require("./router.cache"), exports);
|
|
19
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/cache/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,iDAA+B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachedRouterRoute = void 0;
|
|
4
|
+
const common_1 = require("@pristine-ts/common");
|
|
5
|
+
class CachedRouterRoute {
|
|
6
|
+
constructor(methodNode) {
|
|
7
|
+
this.methodNode = methodNode;
|
|
8
|
+
this.cachedControllerMethodArguments = {};
|
|
9
|
+
}
|
|
10
|
+
hashRequest(request) {
|
|
11
|
+
return common_1.RequestUtil.hash(request);
|
|
12
|
+
}
|
|
13
|
+
getCachedControllerMethodArguments(request) {
|
|
14
|
+
// Hashed the request
|
|
15
|
+
const hash = this.hashRequest(request);
|
|
16
|
+
if (hash === null) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Return the arguments if the hashed request exists
|
|
20
|
+
return this.cachedControllerMethodArguments[hash];
|
|
21
|
+
}
|
|
22
|
+
cacheControllerMethodArguments(request, methodArguments) {
|
|
23
|
+
// Hashed the request
|
|
24
|
+
const hash = this.hashRequest(request);
|
|
25
|
+
if (hash === null) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Save the method arguments
|
|
29
|
+
this.cachedControllerMethodArguments[hash] = methodArguments;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.CachedRouterRoute = CachedRouterRoute;
|
|
33
|
+
//# sourceMappingURL=cached.router-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached.router-route.js","sourceRoot":"","sources":["../../../../src/cache/cached.router-route.ts"],"names":[],"mappings":";;;AACA,gDAAyD;AAEzD,MAAa,iBAAiB;IAI1B,YAA4B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAHhD,oCAA+B,GAAqC,EAAE,CAAC;IAK/E,CAAC;IAEO,WAAW,CAAC,OAAgB;QAChC,OAAO,oBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC,CAAC,OAAgB;QAC/C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,8BAA8B,CAAC,OAAgB,EAAE,eAAsB;QACnE,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,4BAA4B;QAC5B,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;IACjE,CAAC;CACJ;AAnCD,8CAmCC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RouterCache = void 0;
|
|
16
|
+
const tsyringe_1 = require("tsyringe");
|
|
17
|
+
const cached_router_route_1 = require("./cached.router-route");
|
|
18
|
+
const networking_module_keyname_1 = require("../networking.module.keyname");
|
|
19
|
+
let RouterCache = class RouterCache {
|
|
20
|
+
constructor(isActive) {
|
|
21
|
+
this.isActive = isActive;
|
|
22
|
+
this.routes = {};
|
|
23
|
+
}
|
|
24
|
+
cleanIfNeeded() {
|
|
25
|
+
// todo: implement a proper LRU cache and also, remove the two layers of cache and flatten it to one.
|
|
26
|
+
}
|
|
27
|
+
get(keyname) {
|
|
28
|
+
if (this.isActive === false) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return this.routes[keyname];
|
|
32
|
+
}
|
|
33
|
+
set(keyname, methodNode) {
|
|
34
|
+
const cachedRouterRoute = new cached_router_route_1.CachedRouterRoute(methodNode);
|
|
35
|
+
if (this.isActive === false) {
|
|
36
|
+
return cachedRouterRoute;
|
|
37
|
+
}
|
|
38
|
+
// todo Calculate the size and add it to the current total
|
|
39
|
+
// Whenever we add a new element to the cache, we have to check if the cache needs to be cleaned
|
|
40
|
+
this.cleanIfNeeded();
|
|
41
|
+
this.routes[keyname] = cachedRouterRoute;
|
|
42
|
+
return cachedRouterRoute;
|
|
43
|
+
}
|
|
44
|
+
getCachedControllerMethodArguments(keyname, request) {
|
|
45
|
+
var _a;
|
|
46
|
+
if (this.isActive === false) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.getCachedControllerMethodArguments(request);
|
|
50
|
+
}
|
|
51
|
+
setControllerMethodArguments(keyname, request, methodArguments) {
|
|
52
|
+
var _a;
|
|
53
|
+
if (this.isActive === false) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
(_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.cacheControllerMethodArguments(request, methodArguments);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
RouterCache = __decorate([
|
|
61
|
+
(0, tsyringe_1.injectable)(),
|
|
62
|
+
__param(0, (0, tsyringe_1.inject)(`%${networking_module_keyname_1.NetworkingModuleKeyname}.routerCache.isActive%`)),
|
|
63
|
+
__metadata("design:paramtypes", [Boolean])
|
|
64
|
+
], RouterCache);
|
|
65
|
+
exports.RouterCache = RouterCache;
|
|
66
|
+
//# sourceMappingURL=router.cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.cache.js","sourceRoot":"","sources":["../../../../src/cache/router.cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,uCAAuD;AACvD,+DAAwD;AAExD,4EAAqE;AAG9D,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGpB,YAAiG,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;QAF3G,WAAM,GAAkD,EAAE,CAAC;IAGlE,CAAC;IAEO,aAAa;QACjB,qGAAqG;IACzG,CAAC;IAEM,GAAG,CAAC,OAAe;QACtB,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAA4B;QACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,iBAAiB,CAAC;SAC5B;QAED,0DAA0D;QAE1D,gGAAgG;QAChG,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;QAEzC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEM,kCAAkC,CAAC,OAAe,EAAE,OAAgB;;QACvE,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,4BAA4B,CAAC,OAAe,EAAE,OAAgB,EAAE,eAAsB;;QACzF,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO;SACV;QAED,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE/E,OAAO;IACX,CAAC;CAEJ,CAAA;AArDY,WAAW;IADvB,IAAA,qBAAU,GAAE;IAIW,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,wBAAwB,CAAC,CAAA;;GAHtE,WAAW,CAqDvB;AArDY,kCAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.event-handler.js","sourceRoot":"","sources":["../../../../src/handlers/request.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8E;AAC9E,uCAAiE;AAEjE,gDAAmG;AAEnG,4EAAqE;
|
|
1
|
+
{"version":3,"file":"request.event-handler.js","sourceRoot":"","sources":["../../../../src/handlers/request.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8E;AAC9E,uCAAiE;AAEjE,gDAAmG;AAEnG,4EAAqE;AAM9D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAG5B,YAAwD,MAAuB,EACnB,UAA+B,EAC3B,cAAuC,EAClB,mBAAwC;QAHrE,WAAM,GAAN,MAAM,CAAiB;QACnB,eAAU,GAAV,UAAU,CAAqB;QAC3B,mBAAc,GAAd,cAAc,CAAyB;QAClB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAL7H,aAAQ,GAAW,KAAK,CAAC,CAAC,wHAAwH;IAMlJ,CAAC;IAED,QAAQ,CAAI,KAAe;QACvB,OAAO,KAAK,CAAC,OAAO,YAAY,gBAAO,CAAC;IAC5C,CAAC;IAEK,MAAM,CAAC,KAAqB;;YAC9B,8CAA8C;YAC9C,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,gBAAgB;YAChB,qEAAqE;YACrE,EAAE;YACF,0BAA0B;YAC1B,0BAA0B;YAC1B,EAAE;YACF,4CAA4C;YAC5C,yDAAyD;YAGzD,iDAAiD;YACjD,qEAAqE;YAErE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,4DAA4D,EAAE;gBAChF,KAAK;aACR,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0DAA0D,EAAE;gBAC9E,KAAK;gBACL,QAAQ;aACX,CAAC,CAAA;YAEF,gBAAgB;YAChB,kFAAkF;YAElF,OAAO,IAAI,oBAAa,CAAoB,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;KAAA;CAEJ,CAAA;AA/CY,mBAAmB;IAH/B,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,YAAY,CAAC;IAC1C,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,yBAAyB,CAAC,CAAA;IACjC,WAAA,IAAA,iBAAM,EAAC,iCAAwB,CAAC,qBAAqB,CAAC,CAAA;;GAN1D,mBAAmB,CA+C/B;AA/CY,kDAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-content-type-response-header.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/default-content-type-response-header.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAA4C;AAG5C;;;GAGG;
|
|
1
|
+
{"version":3,"file":"default-content-type-response-header.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/default-content-type-response-header.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAA4C;AAG5C;;;GAGG;AAII,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IAEpD;;;;;;OAMG;IACH,YAAsG,gCAAwC,EAC/B,QAAiB,EACpE,UAA+B;QAFW,qCAAgC,GAAhC,gCAAgC,CAAQ;QAC/B,aAAQ,GAAR,QAAQ,CAAS;QACpE,eAAU,GAAV,UAAU,CAAqB;IAAE,CAAC;IAE9F;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,QAAQ,CAAC;aACnB;YAED,IAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAC;gBAClC,OAAO,QAAQ,CAAC;aACnB;YAED,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;YAElF,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAjCY,2CAA2C;IAHvD,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IAUI,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,oCAAoC,CAAC,CAAA;IACvE,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,6CAA6C,CAAC,CAAA;IAChF,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAXjC,2CAA2C,CAiCvD;AAjCY,kGAA2C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-body-converter.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/request-body-converter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAE5C,gDAAyF;AACzF,4EAAqE;AAErE,+EAAuE;AAEvE;;;GAGG;
|
|
1
|
+
{"version":3,"file":"request-body-converter.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/request-body-converter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAE5C,gDAAyF;AACzF,4EAAqE;AAErE,+EAAuE;AAEvE;;;GAGG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;OAKG;IACH,YAAwG,QAAiB,EAC7D,UAA+B;QADa,aAAQ,GAAR,QAAQ,CAAS;QAC7D,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IAED;;;OAGG;IACG,gBAAgB,CAAC,OAAgB;;YACnC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,OAAO,CAAC;aAClB;YAED,IAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBAC5C,OAAO,OAAO,CAAC;aAClB;YAED,MAAM,WAAW,GAAW,OAAO,CAAC,SAAS,CAAC,cAAc,CAAW,CAAC;YAExE,QAAQ,WAAW,CAAC,WAAW,EAAE,EAAE;gBAC/B,KAAK,kBAAkB;oBAGnB,QAAQ,OAAO,OAAO,CAAC,IAAI,EAAE;wBACzB,KAAK,WAAW;4BACZ,OAAO,OAAO,CAAC;wBACnB,KAAK,QAAQ;4BACT,IAAG,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;gCAClC,MAAM,YAAY,GAAG,kHAAkH,CAAC;gCACxI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,OAAO,OAAO,CAAC;wBAEnB,KAAK,QAAQ;4BACT,IAAI;gCACA,IAAG,OAAO,CAAC,IAAI,EAAE;oCACb,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iCAC3C;6BACJ;4BACD,OAAO,CAAC,EAAE;gCACN,MAAM,YAAY,GAAG,kIAAkI,CAAC;gCACxJ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,MAAM;wBAEV;4BACI,MAAM,YAAY,GAAG,iGAAiG,CAAC;4BACvH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;qBACpD;aAGR;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CAEJ,CAAA;AAtEY,+BAA+B;IAH3C,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IASI,WAAA,IAAA,iBAAM,EAAC,GAAG,GAAG,mDAAuB,GAAG,iCAAiC,CAAC,CAAA;IACzE,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GATjC,+BAA+B,CAsE3C;AAtEY,0EAA+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-headers.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/response-headers.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAAoC;AACpC;;;GAGG;
|
|
1
|
+
{"version":3,"file":"response-headers.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/response-headers.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAAoC;AACpC;;;GAGG;AAII,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAEnC;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAC;gBACpG,QAAQ,CAAC,UAAU,iCAAK,QAAQ,CAAC,OAAO,GAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;aAC3F;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAfY,0BAA0B;IAHtC,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;GACA,0BAA0B,CAetC;AAfY,gEAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/request.mapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gDAAmG;AACnG,uCAAoC;AACpC,4EAAqE;AACrE,4CAM2B;
|
|
1
|
+
{"version":3,"file":"request.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/request.mapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gDAAmG;AACnG,uCAAoC;AACpC,4EAAqE;AACrE,4CAM2B;AAKpB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACtB,eAAe,CAAC,QAAa,EAAE,gBAAgD;QAC3E,OAAO,QAAQ,YAAY,gBAAO,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,QAAa,EAAE,gBAAgD;QAC/D,OAAO;YACH,cAAc,EAAE,YAAY;YAC5B,MAAM,EAAE,CAAC,IAAI,YAAK,CAAU,SAAS,EAAE,QAAQ,CAAC,CAAC;SACpD,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACnI,OAAO,aAAa,CAAC,QAAQ,YAAY,iBAAQ,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACvH,OAAO,aAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;CAEJ,CAAA;AApBY,aAAa;IAHzB,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,WAAW,CAAC;IACzC,IAAA,qBAAU,GAAE;GACA,aAAa,CAoBzB;AApBY,sCAAa"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachedRouterRoute = void 0;
|
|
4
|
+
const common_1 = require("@pristine-ts/common");
|
|
5
|
+
class CachedRouterRoute {
|
|
6
|
+
constructor(methodNode) {
|
|
7
|
+
this.methodNode = methodNode;
|
|
8
|
+
this.cachedControllerMethodArguments = {};
|
|
9
|
+
}
|
|
10
|
+
hashRequest(request) {
|
|
11
|
+
return common_1.RequestUtil.hash(request);
|
|
12
|
+
}
|
|
13
|
+
getCachedControllerMethodArguments(request) {
|
|
14
|
+
// Hashed the request
|
|
15
|
+
const hash = this.hashRequest(request);
|
|
16
|
+
if (hash === null) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Return the arguments if the hashed request exists
|
|
20
|
+
return this.cachedControllerMethodArguments[hash];
|
|
21
|
+
}
|
|
22
|
+
cacheControllerMethodArguments(request, methodArguments) {
|
|
23
|
+
// Hashed the request
|
|
24
|
+
const hash = this.hashRequest(request);
|
|
25
|
+
if (hash === null) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Save the method arguments
|
|
29
|
+
this.cachedControllerMethodArguments[hash] = methodArguments;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.CachedRouterRoute = CachedRouterRoute;
|
|
33
|
+
//# sourceMappingURL=cached.router-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached.router-route.js","sourceRoot":"","sources":["../../../../src/models/cached.router-route.ts"],"names":[],"mappings":";;;AACA,gDAAyD;AAEzD,MAAa,iBAAiB;IAI1B,YAA4B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAHhD,oCAA+B,GAAqC,EAAE,CAAC;IAK/E,CAAC;IAEO,WAAW,CAAC,OAAgB;QAChC,OAAO,oBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC,CAAC,OAAgB;QAC/C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,8BAA8B,CAAC,OAAgB,EAAE,eAAsB;QACnE,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,4BAA4B;QAC5B,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;IACjE,CAAC;CACJ;AAnCD,8CAmCC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RouterCache = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const cached_router_route_1 = require("./cached.router-route");
|
|
12
|
+
let RouterCache = class RouterCache {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.currentSize = 0;
|
|
15
|
+
this.maximumSize = 100; // In Bytes
|
|
16
|
+
this.routes = {};
|
|
17
|
+
}
|
|
18
|
+
cleanIfNeeded() {
|
|
19
|
+
if (this.currentSize < this.maximumSize) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// For now, we will eliminate starting from the first key to the last, when the maximum size is achieved.
|
|
23
|
+
// We will eliminate 25% of the cache whenever we go over the threshold.
|
|
24
|
+
}
|
|
25
|
+
get(keyname) {
|
|
26
|
+
return this.routes[keyname];
|
|
27
|
+
}
|
|
28
|
+
set(keyname, methodNode) {
|
|
29
|
+
const cachedRouterRoute = new cached_router_route_1.CachedRouterRoute(methodNode);
|
|
30
|
+
// todo Calculate the size and add it to the current total
|
|
31
|
+
// Whenever we add a new elemen to the cache, we have to check if the cache needs to be cleaned
|
|
32
|
+
this.cleanIfNeeded();
|
|
33
|
+
this.routes[keyname] = cachedRouterRoute;
|
|
34
|
+
return cachedRouterRoute;
|
|
35
|
+
}
|
|
36
|
+
getCachedControllerMethodArguments(keyname, request) {
|
|
37
|
+
var _a;
|
|
38
|
+
return (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.getCachedControllerMethodArguments(request);
|
|
39
|
+
}
|
|
40
|
+
setControllerMethodArguments(keyname, request, methodArguments) {
|
|
41
|
+
var _a;
|
|
42
|
+
(_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.cacheControllerMethodArguments(request, methodArguments);
|
|
43
|
+
// todo Increase the size and add it to the current total;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
RouterCache = __decorate([
|
|
48
|
+
(0, tsyringe_1.injectable)(),
|
|
49
|
+
(0, tsyringe_1.singleton)()
|
|
50
|
+
], RouterCache);
|
|
51
|
+
exports.RouterCache = RouterCache;
|
|
52
|
+
//# sourceMappingURL=router.cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.cache.js","sourceRoot":"","sources":["../../../../src/models/router.cache.ts"],"names":[],"mappings":";;;;;;;;;AACA,uCAA+C;AAC/C,+DAAwD;AAKxD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAAxB;QACW,gBAAW,GAAG,CAAC,CAAC;QAEhB,gBAAW,GAAG,GAAG,CAAC,CAAC,WAAW;QAE9B,WAAM,GAAkD,EAAE,CAAC;IAwCtE,CAAC;IAtCW,aAAa;QACjB,IAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACpC,OAAO;SACV;QAED,yGAAyG;QACzG,wEAAwE;IAC5E,CAAC;IAEM,GAAG,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAA4B;QACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,0DAA0D;QAE1D,+FAA+F;QAC/F,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;QAEzC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEM,kCAAkC,CAAC,OAAe,EAAE,OAAgB;;QACvE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,4BAA4B,CAAC,OAAe,EAAE,OAAgB,EAAE,eAAsB;;QACzF,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE/E,0DAA0D;QAE1D,OAAO;IACX,CAAC;CAEJ,CAAA;AA7CY,WAAW;IAFvB,IAAA,qBAAU,GAAE;IACZ,IAAA,oBAAS,GAAE;GACC,WAAW,CA6CvB;AA7CY,kCAAW"}
|
|
@@ -19,6 +19,7 @@ const networking_module_keyname_1 = require("./networking.module.keyname");
|
|
|
19
19
|
const security_1 = require("@pristine-ts/security");
|
|
20
20
|
const telemetry_1 = require("@pristine-ts/telemetry");
|
|
21
21
|
const configuration_1 = require("@pristine-ts/configuration");
|
|
22
|
+
__exportStar(require("./cache/cache"), exports);
|
|
22
23
|
__exportStar(require("./decorators/decorators"), exports);
|
|
23
24
|
__exportStar(require("./errors/errors"), exports);
|
|
24
25
|
__exportStar(require("./handlers/handlers"), exports);
|
|
@@ -69,6 +70,17 @@ exports.NetworkingModule = {
|
|
|
69
70
|
defaultResolvers: [
|
|
70
71
|
new configuration_1.EnvironmentVariableResolver("PRISTINE_NETWORKING_DEFAULT_CONTENT_TYPE_RESPONSE_HEADER"),
|
|
71
72
|
],
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Activates or deactivates whether the Router Cache is on or off.
|
|
76
|
+
*/
|
|
77
|
+
{
|
|
78
|
+
parameterName: networking_module_keyname_1.NetworkingModuleKeyname + ".routerCache.isActive",
|
|
79
|
+
isRequired: false,
|
|
80
|
+
defaultValue: false,
|
|
81
|
+
defaultResolvers: [
|
|
82
|
+
new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_NETWORKING_ROUTER_CACHE_IS_ACTIVE")),
|
|
83
|
+
],
|
|
72
84
|
}
|
|
73
85
|
],
|
|
74
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networking.module.js","sourceRoot":"","sources":["../../../src/networking.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,oDAAqD;AACrD,sDAAuD;AACvD,8DAAwF;AAExF,0DAAwC;AACxC,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAE9B,2CAAyB;AAEZ,QAAA,gBAAgB,GAAoB;IAC7C,OAAO,EAAE,mDAAuB;IAChC,aAAa,EAAE;QACX,yBAAc;QACd,2BAAe;KAClB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,gCAAgC;YACzE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,sDAAsD,CAAC,CAAC;aAC/G;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,4CAA4C;YACrF,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,oEAAoE,CAAC,CAAC;aAC7H;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,mCAAmC;YAC5E,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,kBAAkB;YAChC,gBAAgB,EAAE;gBACd,IAAI,2CAA2B,CAAC,0DAA0D,CAAC;aAC9F;SACJ;KACJ;CACJ,CAAA"}
|
|
1
|
+
{"version":3,"file":"networking.module.js","sourceRoot":"","sources":["../../../src/networking.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,oDAAqD;AACrD,sDAAuD;AACvD,8DAAwF;AAExF,gDAA8B;AAC9B,0DAAwC;AACxC,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAE9B,2CAAyB;AAEZ,QAAA,gBAAgB,GAAoB;IAC7C,OAAO,EAAE,mDAAuB;IAChC,aAAa,EAAE;QACX,yBAAc;QACd,2BAAe;KAClB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,gCAAgC;YACzE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,sDAAsD,CAAC,CAAC;aAC/G;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,4CAA4C;YACrF,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,oEAAoE,CAAC,CAAC;aAC7H;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,mCAAmC;YAC5E,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,kBAAkB;YAChC,gBAAgB,EAAE;gBACd,IAAI,2CAA2B,CAAC,0DAA0D,CAAC;aAC9F;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,uBAAuB;YAChE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,4CAA4C,CAAC,CAAC;aACrG;SACJ;KACJ;CACJ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/body-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"body-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/body-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,cAA+C,EAC/C,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC;IACrG,CAAC;CACJ,CAAA;AAzBY,8BAA8B;IAH1C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,8BAA8B,CAyB1C;AAzBY,wEAA8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-method-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/controller-method-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,gDAAgF;AAKhF;;GAEG;
|
|
1
|
+
{"version":3,"file":"controller-method-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/controller-method-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,gDAAgF;AAKhF;;GAEG;AAEI,IAAM,0CAA0C,GAAhD,MAAM,0CAA0C;IACnD;;;OAGG;IACH,YAAmG,iCAAwF;QAAxF,sCAAiC,GAAjC,iCAAiC,CAAuD;IAC3L,CAAC;IAGD;;;;;;OAMG;IACI,OAAO,CAAC,cAA2C,EAC3C,OAAgB,EAChB,eAA0C,EAC1C,QAA4B;QAEvC,KAAK,MAAM,gCAAgC,IAAI,IAAI,CAAC,iCAAiC,EAAE;YACnF,IAAG,gCAAgC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1D,OAAO,gCAAgC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACvG;SACJ;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AA7BY,0CAA0C;IADtD,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,oBAAS,EAAC,iCAAwB,CAAC,gCAAgC,CAAC,CAAA;;GALxE,0CAA0C,CA6BtD;AA7BY,gGAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/headers-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"headers-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/headers-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/identity-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"identity-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/identity-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAE3C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAmD,EACnD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,CAAC;IACzG,CAAC;CACJ,CAAA;AAzBY,kCAAkC;IAH9C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,kCAAkC,CAyB9C;AAzBY,gFAAkC"}
|
|
@@ -5,15 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.QueryParameterDecoratorResolver = void 0;
|
|
13
10
|
const tsyringe_1 = require("tsyringe");
|
|
14
11
|
const common_1 = require("@pristine-ts/common");
|
|
15
12
|
const networking_module_keyname_1 = require("../networking.module.keyname");
|
|
16
|
-
const
|
|
13
|
+
const url_1 = require("url");
|
|
17
14
|
/**
|
|
18
15
|
* The QueryParameterDecoratorResolver resolves the value of the query parameter with the name passed to the decorator
|
|
19
16
|
* of the request so that it can be injected it into the parameter of the route of the controller that was annotated
|
|
@@ -31,8 +28,8 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
|
|
|
31
28
|
*/
|
|
32
29
|
resolve(methodArgument, request, routeParameters, identity) {
|
|
33
30
|
var _a;
|
|
34
|
-
const url = new
|
|
35
|
-
return Promise.resolve((_a = url.
|
|
31
|
+
const url = new url_1.URL(request.url);
|
|
32
|
+
return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* Returns whether or not the resolver support such a method argument.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAI1B;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AA3BY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CA2B3C;AA3BY,0EAA+B"}
|
|
@@ -5,15 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.QueryParametersDecoratorResolver = void 0;
|
|
13
10
|
const tsyringe_1 = require("tsyringe");
|
|
14
11
|
const common_1 = require("@pristine-ts/common");
|
|
15
12
|
const networking_module_keyname_1 = require("../networking.module.keyname");
|
|
16
|
-
const
|
|
13
|
+
const url_1 = require("url");
|
|
17
14
|
/**
|
|
18
15
|
* The QueryParametersDecoratorResolver resolves the value (a map) of the query parameters of the request so that it can be injected it into the
|
|
19
16
|
* parameter of the route of the controller that was annotated with the @queryParameters decorator.
|
|
@@ -29,9 +26,15 @@ let QueryParametersDecoratorResolver = class QueryParametersDecoratorResolver {
|
|
|
29
26
|
* @param identity The identity making the request
|
|
30
27
|
*/
|
|
31
28
|
resolve(methodArgument, request, routeParameters, identity) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
const url = new url_1.URL(request.url);
|
|
30
|
+
let queryParameters = undefined;
|
|
31
|
+
for (const [key, value] of url.searchParams.entries()) {
|
|
32
|
+
if (queryParameters === undefined) {
|
|
33
|
+
queryParameters = {};
|
|
34
|
+
}
|
|
35
|
+
queryParameters[key] = value;
|
|
36
|
+
}
|
|
37
|
+
return Promise.resolve(queryParameters !== null && queryParameters !== void 0 ? queryParameters : null);
|
|
35
38
|
}
|
|
36
39
|
/**
|
|
37
40
|
* Returns whether or not the resolver support such a method argument.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAI1B;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,eAAe,GAAuC,SAAS,CAAC;QAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;YACnD,IAAG,eAAe,KAAK,SAAS,EAAE;gBAC9B,eAAe,GAAG,EAAE,CAAC;aACxB;YAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAChC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AApCY,gCAAgC;IAH5C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,gCAAgC,CAoC5C;AApCY,4EAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/request-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"request-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/request-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/route-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAGrE;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"route-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/route-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAGrE;;;;GAIG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,eAAe,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AAzBY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAyB3C;AAzBY,0EAA+B"}
|
package/dist/lib/cjs/router.js
CHANGED
|
@@ -20,9 +20,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
-
};
|
|
26
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
24
|
exports.Router = void 0;
|
|
28
25
|
const tsyringe_1 = require("tsyringe");
|
|
@@ -33,13 +30,14 @@ const route_1 = require("./models/route");
|
|
|
33
30
|
const method_router_node_1 = require("./nodes/method-router.node");
|
|
34
31
|
const forbidden_http_error_1 = require("./errors/forbidden.http-error");
|
|
35
32
|
const controller_method_parameter_decorator_resolver_1 = require("./resolvers/controller-method-parameter-decorator.resolver");
|
|
36
|
-
const
|
|
33
|
+
const url_1 = require("url");
|
|
37
34
|
const common_1 = require("@pristine-ts/common");
|
|
38
35
|
const networking_module_keyname_1 = require("./networking.module.keyname");
|
|
39
36
|
const telemetry_1 = require("@pristine-ts/telemetry");
|
|
40
37
|
const controller_decorator_1 = require("./decorators/controller.decorator");
|
|
41
38
|
const lodash_1 = require("lodash");
|
|
42
39
|
const http_error_1 = require("./errors/http.error");
|
|
40
|
+
const router_cache_1 = require("./cache/router.cache");
|
|
43
41
|
/**
|
|
44
42
|
* The router service is the service that creates the routing tree from the controllers.
|
|
45
43
|
* It also executes a request properly by routing it to the intended controller and returns the response.
|
|
@@ -49,15 +47,17 @@ let Router = class Router {
|
|
|
49
47
|
* The router service is the service that creates the routing tree from the controllers.
|
|
50
48
|
* It also executes a request properly by routing it to the intended controller and returns the response.
|
|
51
49
|
* @param loghandler The log handler
|
|
50
|
+
* @param cache The cache that optimizes the response time by caching frequent requests.
|
|
52
51
|
* @param controllerMethodParameterDecoratorResolver The controller method parameter decorator resolver used to resolve the values.
|
|
53
52
|
* @param authorizerManager The authorizer manager to validate authorization.
|
|
54
53
|
* @param authenticationManager The authentication manager to validate authentication.
|
|
55
54
|
*/
|
|
56
|
-
constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager) {
|
|
55
|
+
constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager, cache) {
|
|
57
56
|
this.loghandler = loghandler;
|
|
58
57
|
this.controllerMethodParameterDecoratorResolver = controllerMethodParameterDecoratorResolver;
|
|
59
58
|
this.authorizerManager = authorizerManager;
|
|
60
59
|
this.authenticationManager = authenticationManager;
|
|
60
|
+
this.cache = cache;
|
|
61
61
|
this.root = new path_router_node_1.PathRouterNode("/");
|
|
62
62
|
// This property is used to track whether the router has been already been properly instantiated or not.
|
|
63
63
|
this.setupCompleted = false;
|
|
@@ -171,14 +171,26 @@ let Router = class Router {
|
|
|
171
171
|
const tracingManager = container.resolve("TracingManagerInterface");
|
|
172
172
|
const routerRequestExecutionSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterRequestExecution, telemetry_1.SpanKeynameEnum.RequestExecution);
|
|
173
173
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
var _a;
|
|
174
175
|
// Start by decomposing the URL. Set second parameter to true since we want to parse the query strings
|
|
175
|
-
|
|
176
|
+
// Node's URL default package absolutely needs a base (or a host) if none is provided in the URL. Pristine doesn't
|
|
177
|
+
// care at all about the host. If one is provided in the url, the base provided will do nothing.
|
|
178
|
+
// If none is provided, then the default base will be used and all is well.
|
|
179
|
+
const url = new url_1.URL(request.url, "http://localhost");
|
|
176
180
|
// Split the path name
|
|
177
181
|
const splitPath = url_util_1.UrlUtil.splitPath(url.pathname);
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
+
// We cache the method node
|
|
183
|
+
const cacheKeyname = request.httpMethod + "_" + url.pathname;
|
|
184
|
+
let cachedRouterRoute = this.cache.get(cacheKeyname);
|
|
185
|
+
let methodNode = cachedRouterRoute === null || cachedRouterRoute === void 0 ? void 0 : cachedRouterRoute.methodNode;
|
|
186
|
+
if (methodNode === undefined) {
|
|
187
|
+
const methodNodeSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterFindMethodRouterNode, telemetry_1.SpanKeynameEnum.RouterRequestExecution);
|
|
188
|
+
// Retrieve the node to have information about the controller
|
|
189
|
+
methodNode = this.root.find(splitPath, request.httpMethod);
|
|
190
|
+
methodNodeSpan.end();
|
|
191
|
+
// Cache the method node.
|
|
192
|
+
cachedRouterRoute = this.cache.set(cacheKeyname, methodNode);
|
|
193
|
+
}
|
|
182
194
|
this.loghandler.debug("Router - Execute request", {
|
|
183
195
|
rootNode: this.root,
|
|
184
196
|
request,
|
|
@@ -196,7 +208,10 @@ let Router = class Router {
|
|
|
196
208
|
return resolve(this.executeErrorResponseInterceptors(new not_found_http_error_1.NotFoundHttpError("No route found for path: '" + url.pathname + "'."), request, container));
|
|
197
209
|
}
|
|
198
210
|
// Get the route parameters
|
|
199
|
-
const routeParameters = methodNode.parent.getRouteParameters(splitPath.reverse());
|
|
211
|
+
const routeParameters = (_a = cachedRouterRoute === null || cachedRouterRoute === void 0 ? void 0 : cachedRouterRoute.routeParameters) !== null && _a !== void 0 ? _a : methodNode.parent.getRouteParameters(splitPath.reverse());
|
|
212
|
+
if (cachedRouterRoute !== undefined && cachedRouterRoute.routeParameters === undefined) {
|
|
213
|
+
cachedRouterRoute.routeParameters = routeParameters;
|
|
214
|
+
}
|
|
200
215
|
// Instantiate the controller
|
|
201
216
|
const routerControllerResolverSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterControllerResolver, telemetry_1.SpanKeynameEnum.RouterRequestExecution);
|
|
202
217
|
const controller = container.resolve(methodNode.route.controllerInstantiationToken);
|
|
@@ -251,13 +266,31 @@ let Router = class Router {
|
|
|
251
266
|
interceptedRequest,
|
|
252
267
|
}, networking_module_keyname_1.NetworkingModuleKeyname);
|
|
253
268
|
// Resolve the value to inject in the method arguments that have a decorator resolver
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
269
|
+
let resolvedMethodArguments = this.cache.getCachedControllerMethodArguments(cacheKeyname, interceptedRequest);
|
|
270
|
+
// If the cache did not contain the cached controller method arguments
|
|
271
|
+
if (resolvedMethodArguments === undefined) {
|
|
272
|
+
this.loghandler.debug("Resolved method arguments were not cached, currently resolving", {
|
|
273
|
+
request,
|
|
274
|
+
interceptedRequest,
|
|
275
|
+
}, networking_module_keyname_1.NetworkingModuleKeyname);
|
|
276
|
+
resolvedMethodArguments = [];
|
|
277
|
+
for (const methodArgument of methodNode.route.methodArguments) {
|
|
278
|
+
resolvedMethodArguments.push(yield this.controllerMethodParameterDecoratorResolver.resolve(methodArgument, interceptedRequest, routeParameters, identity));
|
|
279
|
+
}
|
|
280
|
+
this.cache.setControllerMethodArguments(cacheKeyname, interceptedRequest, resolvedMethodArguments);
|
|
281
|
+
this.loghandler.debug("Resolved method arguments cached for next call.", {
|
|
282
|
+
request,
|
|
283
|
+
interceptedRequest,
|
|
284
|
+
resolvedMethodArguments,
|
|
285
|
+
}, networking_module_keyname_1.NetworkingModuleKeyname);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
this.loghandler.debug("Method arguments were successfully cached and will be used.", {
|
|
289
|
+
request,
|
|
290
|
+
interceptedRequest,
|
|
291
|
+
resolvedMethodArguments,
|
|
292
|
+
}, networking_module_keyname_1.NetworkingModuleKeyname);
|
|
257
293
|
}
|
|
258
|
-
this.loghandler.debug("Router - Controller argument resolved", {
|
|
259
|
-
resolvedMethodArguments,
|
|
260
|
-
}, networking_module_keyname_1.NetworkingModuleKeyname);
|
|
261
294
|
const controllerResponse = controller[methodNode.route.methodPropertyKey](...resolvedMethodArguments);
|
|
262
295
|
// This resolves the promise if it's a promise or promisifies the value
|
|
263
296
|
// https://stackoverflow.com/a/27760489/684101
|
|
@@ -469,7 +502,7 @@ Router = __decorate([
|
|
|
469
502
|
__param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
|
|
470
503
|
__param(2, (0, tsyringe_1.inject)("AuthorizerManagerInterface")),
|
|
471
504
|
__param(3, (0, tsyringe_1.inject)("AuthenticationManagerInterface")),
|
|
472
|
-
__metadata("design:paramtypes", [Object, controller_method_parameter_decorator_resolver_1.ControllerMethodParameterDecoratorResolver, Object, Object])
|
|
505
|
+
__metadata("design:paramtypes", [Object, controller_method_parameter_decorator_resolver_1.ControllerMethodParameterDecoratorResolver, Object, Object, router_cache_1.RouterCache])
|
|
473
506
|
], Router);
|
|
474
507
|
exports.Router = Router;
|
|
475
508
|
//# sourceMappingURL=router.js.map
|