@opra/nestjs 0.24.0 → 0.24.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.
- package/cjs/factories/opra-api.factory.js +12 -6
- package/cjs/opra-core.module.js +4 -1
- package/cjs/services/nest-explorer.js +1 -1
- package/cjs/services/opra-api-loader.js +12 -6
- package/esm/factories/opra-api.factory.js +15 -9
- package/esm/opra-core.module.js +5 -2
- package/esm/services/nest-explorer.js +2 -2
- package/esm/services/opra-api-loader.js +11 -5
- package/package.json +6 -6
|
@@ -5,12 +5,14 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const lodash_head_1 = tslib_1.__importDefault(require("lodash.head"));
|
|
6
6
|
const common_1 = require("@nestjs/common");
|
|
7
7
|
const core_1 = require("@nestjs/core");
|
|
8
|
+
const external_context_creator_1 = require("@nestjs/core/helpers/external-context-creator");
|
|
8
9
|
const injector_1 = require("@nestjs/core/injector/injector");
|
|
9
10
|
const internal_core_module_1 = require("@nestjs/core/injector/internal-core-module");
|
|
10
11
|
const request_constants_1 = require("@nestjs/core/router/request/request-constants");
|
|
11
12
|
const common_2 = require("@opra/common");
|
|
12
13
|
const constants_js_1 = require("../constants.js");
|
|
13
14
|
const handler_paramtype_enum_js_1 = require("../enums/handler-paramtype.enum.js");
|
|
15
|
+
const nest_explorer_js_1 = require("../services/nest-explorer.js");
|
|
14
16
|
const function_utils_js_1 = require("../utils/function.utils.js");
|
|
15
17
|
const params_factory_js_1 = require("./params.factory.js");
|
|
16
18
|
const noOpFunction = () => void 0;
|
|
@@ -37,21 +39,22 @@ let OpraApiFactory = exports.OpraApiFactory = class OpraApiFactory {
|
|
|
37
39
|
for (const wrapper of wrappers) {
|
|
38
40
|
const instance = wrapper.instance;
|
|
39
41
|
const ctor = instance.constructor;
|
|
40
|
-
const metadata = Reflect.getMetadata(common_2.
|
|
42
|
+
const metadata = Reflect.getMetadata(common_2.RESOURCE_METADATA, ctor);
|
|
41
43
|
if (common_2.OpraSchema.isSource(metadata))
|
|
42
44
|
resources.push(instance);
|
|
43
45
|
}
|
|
44
46
|
for (const wrapper of wrappers) {
|
|
45
47
|
const instance = wrapper.instance;
|
|
46
48
|
const ctor = instance.constructor;
|
|
47
|
-
const sourceDef = Reflect.getMetadata(common_2.
|
|
49
|
+
const sourceDef = Reflect.getMetadata(common_2.RESOURCE_METADATA, ctor);
|
|
48
50
|
/* istanbul ignore next */
|
|
49
51
|
if (!sourceDef)
|
|
50
52
|
continue;
|
|
51
53
|
resources.push(instance);
|
|
52
54
|
/* Wrap resolver functions */
|
|
53
55
|
const isRequestScoped = !wrapper.isDependencyTreeStatic();
|
|
54
|
-
if (
|
|
56
|
+
if (sourceDef.operations &&
|
|
57
|
+
(common_2.OpraSchema.isCollection(sourceDef) || common_2.OpraSchema.isSingleton(sourceDef) || common_2.OpraSchema.isStorage(sourceDef))) {
|
|
55
58
|
for (const methodName of Object.keys(sourceDef.operations)) {
|
|
56
59
|
const endpointFunction = instance[methodName];
|
|
57
60
|
const nestHandlerName = methodName + '_nestjs';
|
|
@@ -171,13 +174,16 @@ let OpraApiFactory = exports.OpraApiFactory = class OpraApiFactory {
|
|
|
171
174
|
}
|
|
172
175
|
};
|
|
173
176
|
tslib_1.__decorate([
|
|
174
|
-
(0, common_1.Inject)()
|
|
177
|
+
(0, common_1.Inject)(),
|
|
178
|
+
tslib_1.__metadata("design:type", core_1.ModulesContainer)
|
|
175
179
|
], OpraApiFactory.prototype, "modulesContainer", void 0);
|
|
176
180
|
tslib_1.__decorate([
|
|
177
|
-
(0, common_1.Inject)()
|
|
181
|
+
(0, common_1.Inject)(),
|
|
182
|
+
tslib_1.__metadata("design:type", external_context_creator_1.ExternalContextCreator)
|
|
178
183
|
], OpraApiFactory.prototype, "externalContextCreator", void 0);
|
|
179
184
|
tslib_1.__decorate([
|
|
180
|
-
(0, common_1.Inject)()
|
|
185
|
+
(0, common_1.Inject)(),
|
|
186
|
+
tslib_1.__metadata("design:type", nest_explorer_js_1.NestExplorer)
|
|
181
187
|
], OpraApiFactory.prototype, "explorerService", void 0);
|
|
182
188
|
exports.OpraApiFactory = OpraApiFactory = tslib_1.__decorate([
|
|
183
189
|
(0, common_1.Injectable)()
|
package/cjs/opra-core.module.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.OpraCoreModule = void 0;
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const crypto = tslib_1.__importStar(require("crypto"));
|
|
7
7
|
const common_1 = require("@nestjs/common");
|
|
8
|
+
const core_1 = require("@nestjs/core");
|
|
8
9
|
const metadata_scanner_1 = require("@nestjs/core/metadata-scanner");
|
|
9
10
|
const constants_js_1 = require("./constants.js");
|
|
10
11
|
const opra_api_factory_js_1 = require("./factories/opra-api.factory.js");
|
|
@@ -115,5 +116,7 @@ exports.OpraCoreModule = OpraCoreModule = OpraCoreModule_1 = tslib_1.__decorate(
|
|
|
115
116
|
]
|
|
116
117
|
}),
|
|
117
118
|
tslib_1.__param(2, (0, common_1.Inject)(constants_js_1.OPRA_MODULE_OPTIONS)),
|
|
118
|
-
tslib_1.__param(3, (0, common_1.Inject)(constants_js_1.OPRA_INITIALIZER))
|
|
119
|
+
tslib_1.__param(3, (0, common_1.Inject)(constants_js_1.OPRA_INITIALIZER)),
|
|
120
|
+
tslib_1.__metadata("design:paramtypes", [core_1.HttpAdapterHost,
|
|
121
|
+
core_1.ModulesContainer, Object, opra_api_loader_js_1.OpraApiLoader])
|
|
119
122
|
], OpraCoreModule);
|
|
@@ -28,7 +28,7 @@ class NestExplorer {
|
|
|
28
28
|
return !!(wrapper.instance
|
|
29
29
|
&& typeof wrapper.instance === 'object'
|
|
30
30
|
&& wrapper.instance.constructor
|
|
31
|
-
&& common_1.OpraSchema.isSource(Reflect.getMetadata(common_1.
|
|
31
|
+
&& common_1.OpraSchema.isSource(Reflect.getMetadata(common_1.RESOURCE_METADATA, wrapper.instance.constructor)));
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OpraApiLoader = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
+
const core_1 = require("@nestjs/core");
|
|
6
7
|
const common_2 = require("@opra/common");
|
|
7
|
-
const
|
|
8
|
+
const core_2 = require("@opra/core");
|
|
8
9
|
const constants_js_1 = require("../constants.js");
|
|
10
|
+
const opra_api_factory_js_1 = require("../factories/opra-api.factory.js");
|
|
9
11
|
class OpraApiLoader {
|
|
10
12
|
constructor() {
|
|
11
13
|
this.logger = new common_1.Logger(OpraApiLoader.name, { timestamp: true });
|
|
@@ -53,7 +55,7 @@ class OpraApiLoader {
|
|
|
53
55
|
return;
|
|
54
56
|
const app = httpAdapter.getInstance();
|
|
55
57
|
const logger = moduleOptions.logger || new common_1.Logger(service.info.title);
|
|
56
|
-
return await
|
|
58
|
+
return await core_2.ExpressAdapter.create(app, service, {
|
|
57
59
|
...moduleOptions,
|
|
58
60
|
logger,
|
|
59
61
|
});
|
|
@@ -61,14 +63,18 @@ class OpraApiLoader {
|
|
|
61
63
|
}
|
|
62
64
|
exports.OpraApiLoader = OpraApiLoader;
|
|
63
65
|
tslib_1.__decorate([
|
|
64
|
-
(0, common_1.Inject)()
|
|
66
|
+
(0, common_1.Inject)(),
|
|
67
|
+
tslib_1.__metadata("design:type", core_1.HttpAdapterHost)
|
|
65
68
|
], OpraApiLoader.prototype, "httpAdapterHost", void 0);
|
|
66
69
|
tslib_1.__decorate([
|
|
67
|
-
(0, common_1.Inject)()
|
|
70
|
+
(0, common_1.Inject)(),
|
|
71
|
+
tslib_1.__metadata("design:type", core_1.ApplicationConfig)
|
|
68
72
|
], OpraApiLoader.prototype, "applicationConfig", void 0);
|
|
69
73
|
tslib_1.__decorate([
|
|
70
|
-
(0, common_1.Inject)()
|
|
74
|
+
(0, common_1.Inject)(),
|
|
75
|
+
tslib_1.__metadata("design:type", opra_api_factory_js_1.OpraApiFactory)
|
|
71
76
|
], OpraApiLoader.prototype, "opraFactory", void 0);
|
|
72
77
|
tslib_1.__decorate([
|
|
73
|
-
(0, common_1.Inject)(constants_js_1.OPRA_MODULE_OPTIONS)
|
|
78
|
+
(0, common_1.Inject)(constants_js_1.OPRA_MODULE_OPTIONS),
|
|
79
|
+
tslib_1.__metadata("design:type", Object)
|
|
74
80
|
], OpraApiLoader.prototype, "opraModuleOptions", void 0);
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import head from 'lodash.head';
|
|
3
3
|
import { Inject, Injectable } from '@nestjs/common';
|
|
4
|
-
import { ContextIdFactory, createContextId, REQUEST } from '@nestjs/core';
|
|
4
|
+
import { ContextIdFactory, createContextId, ModulesContainer, REQUEST } from '@nestjs/core';
|
|
5
|
+
import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
|
|
5
6
|
import { Injector } from '@nestjs/core/injector/injector';
|
|
6
7
|
import { InternalCoreModule } from '@nestjs/core/injector/internal-core-module';
|
|
7
8
|
import { REQUEST_CONTEXT_ID } from '@nestjs/core/router/request/request-constants';
|
|
8
|
-
import { DocumentFactory, OpraSchema,
|
|
9
|
+
import { DocumentFactory, OpraSchema, RESOURCE_METADATA } from '@opra/common';
|
|
9
10
|
import { PARAM_ARGS_METADATA } from '../constants.js';
|
|
10
11
|
import { HandlerParamType } from '../enums/handler-paramtype.enum.js';
|
|
12
|
+
import { NestExplorer } from '../services/nest-explorer.js';
|
|
11
13
|
import { getNumberOfArguments } from '../utils/function.utils.js';
|
|
12
14
|
import { OpraParamsFactory } from './params.factory.js';
|
|
13
15
|
const noOpFunction = () => void 0;
|
|
@@ -34,21 +36,22 @@ export let OpraApiFactory = class OpraApiFactory {
|
|
|
34
36
|
for (const wrapper of wrappers) {
|
|
35
37
|
const instance = wrapper.instance;
|
|
36
38
|
const ctor = instance.constructor;
|
|
37
|
-
const metadata = Reflect.getMetadata(
|
|
39
|
+
const metadata = Reflect.getMetadata(RESOURCE_METADATA, ctor);
|
|
38
40
|
if (OpraSchema.isSource(metadata))
|
|
39
41
|
resources.push(instance);
|
|
40
42
|
}
|
|
41
43
|
for (const wrapper of wrappers) {
|
|
42
44
|
const instance = wrapper.instance;
|
|
43
45
|
const ctor = instance.constructor;
|
|
44
|
-
const sourceDef = Reflect.getMetadata(
|
|
46
|
+
const sourceDef = Reflect.getMetadata(RESOURCE_METADATA, ctor);
|
|
45
47
|
/* istanbul ignore next */
|
|
46
48
|
if (!sourceDef)
|
|
47
49
|
continue;
|
|
48
50
|
resources.push(instance);
|
|
49
51
|
/* Wrap resolver functions */
|
|
50
52
|
const isRequestScoped = !wrapper.isDependencyTreeStatic();
|
|
51
|
-
if (
|
|
53
|
+
if (sourceDef.operations &&
|
|
54
|
+
(OpraSchema.isCollection(sourceDef) || OpraSchema.isSingleton(sourceDef) || OpraSchema.isStorage(sourceDef))) {
|
|
52
55
|
for (const methodName of Object.keys(sourceDef.operations)) {
|
|
53
56
|
const endpointFunction = instance[methodName];
|
|
54
57
|
const nestHandlerName = methodName + '_nestjs';
|
|
@@ -168,13 +171,16 @@ export let OpraApiFactory = class OpraApiFactory {
|
|
|
168
171
|
}
|
|
169
172
|
};
|
|
170
173
|
__decorate([
|
|
171
|
-
Inject()
|
|
174
|
+
Inject(),
|
|
175
|
+
__metadata("design:type", ModulesContainer)
|
|
172
176
|
], OpraApiFactory.prototype, "modulesContainer", void 0);
|
|
173
177
|
__decorate([
|
|
174
|
-
Inject()
|
|
178
|
+
Inject(),
|
|
179
|
+
__metadata("design:type", ExternalContextCreator)
|
|
175
180
|
], OpraApiFactory.prototype, "externalContextCreator", void 0);
|
|
176
181
|
__decorate([
|
|
177
|
-
Inject()
|
|
182
|
+
Inject(),
|
|
183
|
+
__metadata("design:type", NestExplorer)
|
|
178
184
|
], OpraApiFactory.prototype, "explorerService", void 0);
|
|
179
185
|
OpraApiFactory = __decorate([
|
|
180
186
|
Injectable()
|
package/esm/opra-core.module.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
var OpraCoreModule_1;
|
|
2
|
-
import { __decorate, __param } from "tslib";
|
|
2
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
3
3
|
import * as crypto from 'crypto';
|
|
4
4
|
import { Inject, Module } from '@nestjs/common';
|
|
5
|
+
import { HttpAdapterHost, ModulesContainer } from '@nestjs/core';
|
|
5
6
|
import { MetadataScanner } from '@nestjs/core/metadata-scanner';
|
|
6
7
|
import { OPRA_INITIALIZER, OPRA_MODULE_ID, OPRA_MODULE_OPTIONS } from './constants.js';
|
|
7
8
|
import { OpraApiFactory } from './factories/opra-api.factory.js';
|
|
@@ -112,5 +113,7 @@ OpraCoreModule = OpraCoreModule_1 = __decorate([
|
|
|
112
113
|
]
|
|
113
114
|
}),
|
|
114
115
|
__param(2, Inject(OPRA_MODULE_OPTIONS)),
|
|
115
|
-
__param(3, Inject(OPRA_INITIALIZER))
|
|
116
|
+
__param(3, Inject(OPRA_INITIALIZER)),
|
|
117
|
+
__metadata("design:paramtypes", [HttpAdapterHost,
|
|
118
|
+
ModulesContainer, Object, OpraApiLoader])
|
|
116
119
|
], OpraCoreModule);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OpraSchema,
|
|
1
|
+
import { OpraSchema, RESOURCE_METADATA } from '@opra/common';
|
|
2
2
|
export class NestExplorer {
|
|
3
3
|
exploreProviders(rootModule, predicate) {
|
|
4
4
|
const modules = new Set();
|
|
@@ -25,7 +25,7 @@ export class NestExplorer {
|
|
|
25
25
|
return !!(wrapper.instance
|
|
26
26
|
&& typeof wrapper.instance === 'object'
|
|
27
27
|
&& wrapper.instance.constructor
|
|
28
|
-
&& OpraSchema.isSource(Reflect.getMetadata(
|
|
28
|
+
&& OpraSchema.isSource(Reflect.getMetadata(RESOURCE_METADATA, wrapper.instance.constructor)));
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Inject, Logger } from '@nestjs/common';
|
|
3
|
+
import { ApplicationConfig, HttpAdapterHost } from '@nestjs/core';
|
|
3
4
|
import { OpraURLPath } from '@opra/common';
|
|
4
5
|
import { ExpressAdapter } from '@opra/core';
|
|
5
6
|
import { OPRA_MODULE_OPTIONS } from '../constants.js';
|
|
7
|
+
import { OpraApiFactory } from '../factories/opra-api.factory.js';
|
|
6
8
|
export class OpraApiLoader {
|
|
7
9
|
constructor() {
|
|
8
10
|
this.logger = new Logger(OpraApiLoader.name, { timestamp: true });
|
|
@@ -57,14 +59,18 @@ export class OpraApiLoader {
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
__decorate([
|
|
60
|
-
Inject()
|
|
62
|
+
Inject(),
|
|
63
|
+
__metadata("design:type", HttpAdapterHost)
|
|
61
64
|
], OpraApiLoader.prototype, "httpAdapterHost", void 0);
|
|
62
65
|
__decorate([
|
|
63
|
-
Inject()
|
|
66
|
+
Inject(),
|
|
67
|
+
__metadata("design:type", ApplicationConfig)
|
|
64
68
|
], OpraApiLoader.prototype, "applicationConfig", void 0);
|
|
65
69
|
__decorate([
|
|
66
|
-
Inject()
|
|
70
|
+
Inject(),
|
|
71
|
+
__metadata("design:type", OpraApiFactory)
|
|
67
72
|
], OpraApiLoader.prototype, "opraFactory", void 0);
|
|
68
73
|
__decorate([
|
|
69
|
-
Inject(OPRA_MODULE_OPTIONS)
|
|
74
|
+
Inject(OPRA_MODULE_OPTIONS),
|
|
75
|
+
__metadata("design:type", Object)
|
|
70
76
|
], OpraApiLoader.prototype, "opraModuleOptions", void 0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/nestjs",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"description": "Opra NestJS module",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
"clean:cover": "rimraf ../../coverage/nestjs"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@opra/common": "^0.24.
|
|
29
|
-
"@opra/core": "^0.24.
|
|
28
|
+
"@opra/common": "^0.24.2",
|
|
29
|
+
"@opra/core": "^0.24.2",
|
|
30
30
|
"fast-tokenizer": "^1.2.2",
|
|
31
31
|
"lodash.head": "^4.0.1",
|
|
32
32
|
"lodash.identity": "^3.0.0",
|
|
33
33
|
"reflect-metadata": "^0.1.13"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@nestjs/common": "^10.2.
|
|
36
|
+
"@nestjs/common": "^10.2.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@nestjs/platform-express": "^10.2.
|
|
40
|
-
"@nestjs/testing": "^10.2.
|
|
39
|
+
"@nestjs/platform-express": "^10.2.1",
|
|
40
|
+
"@nestjs/testing": "^10.2.1",
|
|
41
41
|
"@types/lodash": "^4.14.197",
|
|
42
42
|
"filedirname": "^2.7.0",
|
|
43
43
|
"ts-gems": "^2.4.1"
|