Я использую NestJ для создания пары приложений и хочу перенести код из NestInterceptor для внешнего пакета NPM, чтобы я мог использовать один и тот же перехватчик в нескольких приложениях.
Проблема в том, что тот же код, который работает при локальном использовании, просто перестает работать при перемещении во внешний пакет.
Вот код для перехватчика:
import { Injectable, NestInterceptor, CallHandler, ExecutionContext } from '@nestjs/common'
import { map } from 'rxjs/operators'
import { getManager } from 'typeorm'
import jwt_decode from 'jwt-decode'
@Injectable()
export class MyInterceptor implements NestInterceptor {
entity: any
constructor(entity: any) {
this.entity = entity
}
async intercept(context: ExecutionContext, next: CallHandler): Promise<any> {
const request = context.switchToHttp().getRequest()
const repository = getManager().getRepository(this.entity)
return next.handle().pipe(map((data) => data))
}
}
Вот данный контроллер:
import { myInterceptor } from "../src/interceptors/interceptor.ts";
@UseInterceptors(new CompanyIdInterceptor(User))
export class UserController {
}
Это работает нормально, но если переместить файл во внешний пакет NPM и импортировать из него, как показано ниже:
import { myInterceptor } from "mynpmpackage";
Я получаю следующую ошибку:
[Nest] 24065 - 04/18/2019, 10:04 AM [ExceptionsHandler] Connection "default" was not found. +26114ms
ConnectionNotFoundError: Connection "default" was not found.
at new ConnectionNotFoundError (/home/andre/Services/npm-sdk/src/error/ConnectionNotFoundError.ts:8:9)
at ConnectionManager.get (/home/andre/Services/npm-sdk/src/connection/ConnectionManager.ts:40:19)
Есть идеи, как это происходит и как ее решить?