1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.ContextIdFactory = exports.createContextId = void 0;
|
4 | const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
|
5 | const request_constants_1 = require("../router/request/request-constants");
|
6 | function createContextId() {
|
7 | |
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | return { id: Math.random() };
|
16 | }
|
17 | exports.createContextId = createContextId;
|
18 | class ContextIdFactory {
|
19 | |
20 |
|
21 |
|
22 | static create() {
|
23 | return createContextId();
|
24 | }
|
25 | |
26 |
|
27 |
|
28 |
|
29 | static getByRequest(request, propsToInspect = ['raw']) {
|
30 | if (!request) {
|
31 | return ContextIdFactory.create();
|
32 | }
|
33 | if (request[request_constants_1.REQUEST_CONTEXT_ID]) {
|
34 | return request[request_constants_1.REQUEST_CONTEXT_ID];
|
35 | }
|
36 | for (const key of propsToInspect) {
|
37 | if (request[key]?.[request_constants_1.REQUEST_CONTEXT_ID]) {
|
38 | return request[key][request_constants_1.REQUEST_CONTEXT_ID];
|
39 | }
|
40 | }
|
41 | if (!this.strategy) {
|
42 | return ContextIdFactory.create();
|
43 | }
|
44 | const contextId = createContextId();
|
45 | const resolverObjectOrFunction = this.strategy.attach(contextId, request);
|
46 | if (this.isContextIdResolverWithPayload(resolverObjectOrFunction)) {
|
47 | contextId.getParent = resolverObjectOrFunction.resolve;
|
48 | contextId.payload = resolverObjectOrFunction.payload;
|
49 | }
|
50 | else {
|
51 | contextId.getParent = resolverObjectOrFunction;
|
52 | }
|
53 | return contextId;
|
54 | }
|
55 | |
56 |
|
57 |
|
58 |
|
59 |
|
60 | static apply(strategy) {
|
61 | this.strategy = strategy;
|
62 | }
|
63 | static isContextIdResolverWithPayload(resolverOrResolverFn) {
|
64 | return (0, shared_utils_1.isObject)(resolverOrResolverFn);
|
65 | }
|
66 | }
|
67 | exports.ContextIdFactory = ContextIdFactory;
|