@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.
@@ -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.SOURCE_METADATA, ctor);
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.SOURCE_METADATA, ctor);
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 ((common_2.OpraSchema.isCollection(sourceDef) || common_2.OpraSchema.isSingleton(sourceDef)) && sourceDef.operations) {
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)()
@@ -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.SOURCE_METADATA, wrapper.instance.constructor)));
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 core_1 = require("@opra/core");
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 core_1.ExpressAdapter.create(app, service, {
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, SOURCE_METADATA } from '@opra/common';
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(SOURCE_METADATA, ctor);
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(SOURCE_METADATA, ctor);
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 ((OpraSchema.isCollection(sourceDef) || OpraSchema.isSingleton(sourceDef)) && sourceDef.operations) {
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()
@@ -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, SOURCE_METADATA } from '@opra/common';
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(SOURCE_METADATA, wrapper.instance.constructor)));
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.0",
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.0",
29
- "@opra/core": "^0.24.0",
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.0"
36
+ "@nestjs/common": "^10.2.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@nestjs/platform-express": "^10.2.0",
40
- "@nestjs/testing": "^10.2.0",
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"