Как мне ввести объект TypeORM с помощью Inversify?
У меня есть User
субъект, имеющий generateToken
метод. Этот метод имеет зависимость, называемуюcipher
, который я хотел бы ввести с помощью Inverisfy. Это возможно? Если нет, то какая альтернатива?
Исследование
Я видел эту проблему, но ответа не получил. Я также не согласен с тем, чтобы мои функции были перенесены на уровень служб. Мне нужны модели богатой предметной области, а создание токена, безусловно, является задачей богатой модели предметной области.
Что я пробовал
Я могу собрать что-то вместе, добавив public cipher: ICipher
собственность UserEntity
а затем внедрить класс-оболочку, UserRepository
, вот так:
@injectable()
export class UserRepository {
private repository: Repository<UserEntity>;
constructor(@inject(TYPES.Cipher) private cipher: ICipher) {
this.repository = getRepository(UserEntity);
}
create(data: UserEntity): UserEntity {
const user = this.repository.create(data);
user.cipher = this.cipher;
return user;
}
}
Но упаковка каждого Repository
метод вряд ли является хорошим решением.