@open-norantec/herbal 2.0.0-alpha.5 → 2.0.0-alpha.6

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.
@@ -1,7 +1,7 @@
1
- import { ModuleRef } from '@nestjs/core';
2
1
  import { Constructor } from 'type-fest';
3
2
  import { Request } from 'express';
4
3
  import { Transaction } from 'sequelize';
4
+ import { GetModuleFn } from '../types';
5
5
  export interface AuthenticateReturn {
6
6
  challengeValue: string;
7
7
  identifier: string;
@@ -13,8 +13,8 @@ export interface AuthenticateResult extends AuthenticateReturn {
13
13
  }
14
14
  export declare abstract class AuthAdapter {
15
15
  protected readonly request: Request;
16
- protected readonly ref: ModuleRef;
17
- constructor(request: Request, ref: ModuleRef);
16
+ protected readonly getModule: GetModuleFn;
17
+ constructor(request: Request, getModule: GetModuleFn);
18
18
  abstract match(): boolean;
19
19
  abstract authenticate(transaction?: Transaction): Promise<AuthenticateReturn | null>;
20
20
  }
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthAdapter = void 0;
4
4
  var AuthAdapter = (function () {
5
- function AuthAdapter(request, ref) {
5
+ function AuthAdapter(request, getModule) {
6
6
  this.request = request;
7
- this.ref = ref;
7
+ this.getModule = getModule;
8
8
  }
9
9
  return AuthAdapter;
10
10
  }());
package/dist/core.d.ts CHANGED
@@ -4,11 +4,11 @@ import { Request, RequestContext } from './types/request.type';
4
4
  import { z } from '@open-norantec/utilities';
5
5
  import 'reflect-metadata';
6
6
  import { Request as ExpressRequest } from 'express';
7
- import { ModuleRef } from '@nestjs/core';
8
7
  import { Constructor } from 'type-fest';
9
8
  import { Sequelize } from 'sequelize-typescript';
10
9
  import { AuthAdapter } from './abstracts/auth-adapter.abstract.class';
11
10
  import { PathsObject } from 'openapi3-ts/oas31';
11
+ import { GetModuleFn } from './types';
12
12
  export * from '@nestjs/core';
13
13
  export type MethodHandler<IS extends z.ZodType<any>, OS extends z.ZodType<any>> = (request: Request, input: unknown, headers: ReturnType<typeof HeaderUtil.parse>) => Promise<{
14
14
  request: z.infer<IS>;
@@ -52,8 +52,8 @@ export interface HerbalControllerOptions<C> {
52
52
  ignoreControllerNamePostfix?: boolean;
53
53
  prefix?: string;
54
54
  methods?: (register: MethodRegisterFn<C>) => void;
55
- onAfterParsingRequest?: (request: Request, moduleRef: ModuleRef) => void | Promise<void>;
56
- onBeforeParsingRequest?: (request: Request, moduleRef: ModuleRef) => void | Promise<void>;
55
+ onAfterParsingRequest?: (request: Request, getModule: GetModuleFn) => void | Promise<void>;
56
+ onBeforeParsingRequest?: (request: Request, getModule: GetModuleFn) => void | Promise<void>;
57
57
  }
58
58
  export interface ControllerUtilCreateOptions {
59
59
  prefix?: string;
@@ -61,13 +61,13 @@ export interface ControllerUtilCreateOptions {
61
61
  onAfterParsingRequest?: HerbalControllerOptions<any>['onAfterParsingRequest'];
62
62
  onBeforeParsingRequest?: HerbalControllerOptions<any>['onBeforeParsingRequest'];
63
63
  }
64
- export declare function parseRequest({ request, traceId: inputTraceId, sequelize: sequelizeInstance, moduleRef, handlerName, handlerPrototype, onLog, }: {
64
+ export declare function parseRequest({ request, traceId: inputTraceId, sequelize: sequelizeInstance, handlerName, handlerPrototype, onLog, getModule, }: {
65
65
  handlerPrototype: object;
66
- moduleRef: ModuleRef;
67
66
  request: Request;
68
67
  handlerName?: string;
69
68
  sequelize?: Sequelize;
70
69
  traceId?: string;
70
+ getModule: GetModuleFn;
71
71
  onLog?: (methodName: string, message: string) => void;
72
72
  }): Promise<void>;
73
73
  export declare function getMethodPool(targetPrototype: object): MethodPool | null;
package/dist/core.js CHANGED
@@ -302,7 +302,7 @@ function parseRequest(_a) {
302
302
  var _b, request_1, request_1_1;
303
303
  var _c, e_1, _d, _e;
304
304
  var _f, _g, _h, _j, _k;
305
- var request = _a.request, inputTraceId = _a.traceId, sequelizeInstance = _a.sequelize, moduleRef = _a.moduleRef, handlerName = _a.handlerName, handlerPrototype = _a.handlerPrototype, onLog = _a.onLog;
305
+ var request = _a.request, inputTraceId = _a.traceId, sequelizeInstance = _a.sequelize, handlerName = _a.handlerName, handlerPrototype = _a.handlerPrototype, onLog = _a.onLog, getModule = _a.getModule;
306
306
  return __awaiter(this, void 0, void 0, function () {
307
307
  var transaction, beforeParsingRequestHandlers, afterParsingRequestHandlers, chunks_1, chunk, e_1_1, _l, parsedBody, methodPool, authAdapters, shouldHaveTransaction, error_2, authSucceeded, error_3, _m;
308
308
  var _this = this;
@@ -368,7 +368,7 @@ function parseRequest(_a) {
368
368
  case 16:
369
369
  _.attempt(function () { return onLog === null || onLog === void 0 ? void 0 : onLog('log', "[trace:".concat(request === null || request === void 0 ? void 0 : request.traceId, ":request:body] ").concat(request.rawBody)); });
370
370
  return [4, Promise.all((Array.isArray(beforeParsingRequestHandlers) ? beforeParsingRequestHandlers : []).map(function (handler) {
371
- return handler(request, moduleRef);
371
+ return handler(request, getModule);
372
372
  }))];
373
373
  case 17:
374
374
  _o.sent();
@@ -415,7 +415,7 @@ function parseRequest(_a) {
415
415
  case 1:
416
416
  if (!(_i < authAdapters_1.length)) return [3, 4];
417
417
  AuthAdapterClass = authAdapters_1[_i];
418
- adapter = new AuthAdapterClass(request, moduleRef);
418
+ adapter = new AuthAdapterClass(request, getModule);
419
419
  if (!adapter.match())
420
420
  return [3, 3];
421
421
  return [4, adapter.authenticate(transaction)];
@@ -455,7 +455,7 @@ function parseRequest(_a) {
455
455
  return [3, 30];
456
456
  case 30: throw error_3;
457
457
  case 31: return [4, Promise.all((Array.isArray(afterParsingRequestHandlers) ? afterParsingRequestHandlers : []).map(function (handler) {
458
- return handler(request, moduleRef);
458
+ return handler(request, getModule);
459
459
  }))];
460
460
  case 32:
461
461
  _o.sent();
@@ -490,11 +490,11 @@ function HerbalGuard(options) {
490
490
  traceId = uuid_util_class_1.UUIDUtil.generateV4();
491
491
  return [4, parseRequest({
492
492
  request: request,
493
- moduleRef: this.ref,
494
493
  sequelize: sequelizeInstance instanceof Error ? undefined : sequelizeInstance,
495
494
  handlerPrototype: (_c = (_b = (_a = context === null || context === void 0 ? void 0 : context.getClass) === null || _a === void 0 ? void 0 : _a.call(context)) === null || _b === void 0 ? void 0 : _b.prototype) !== null && _c !== void 0 ? _c : {},
496
495
  handlerName: (_e = (_d = context === null || context === void 0 ? void 0 : context.getHandler) === null || _d === void 0 ? void 0 : _d.call(context)) === null || _e === void 0 ? void 0 : _e.name,
497
496
  traceId: traceId,
497
+ getModule: this.ref.get.bind(this.ref),
498
498
  onLog: function (method, message) {
499
499
  var _a;
500
500
  try {
@@ -1,2 +1,7 @@
1
+ import { Constructor } from 'type-fest';
1
2
  export * from './request.type';
2
3
  export * from './http-response-body.type';
4
+ export type GetModuleFn = <TInput = any, TResult = TInput>(typeOrToken: Constructor<TInput> | Function | string | symbol, options: {
5
+ strict?: boolean;
6
+ each?: undefined | false;
7
+ }) => TResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-norantec/herbal",
3
- "version": "2.0.0-alpha.5",
3
+ "version": "2.0.0-alpha.6",
4
4
  "description": "Herbal is a builder and toolchain for Nest.js applications",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {