У меня есть приложение TypeScript, и я использую Inversify для IoC.Как ввести асинхронную зависимость в inversify?
У меня есть класс соединений:
'use strict';
import { injectable } from 'inversify';
import { createConnection, Connection } from "typeorm";
import { Photo, PhotoMetadata, Author, Album } from '../index';
@injectable()
class DBConnectionManager {
public createPGConnection(): Promise<Connection> {
return createConnection({
driver: {
type: "postgres",
host: "host",
port: 5432,
username: "username",
password: "password",
database: "username"
},
entities: [
Photo, PhotoMetadata, Author, Album
],
autoSchemaSync: true,
});
}
}
export { DBConnectionManager };
После того как я создал свою связь, я хочу, чтобы связать соединение в моем контейнере:
kernel.bind<Connection>('DefaultConnection').toConstantValue(getConnectionManager().get());
, а затем я хочу, чтобы ввести его в другой класс:
import { injectable, inject } from 'inversify';
import { Connection, FindOptions } from "typeorm";
import { IGenericRepository, ObjectType } from '../index';
@injectable()
class GenericRepository<T> implements IGenericRepository<T> {
private connection: Connection;
private type: ObjectType<T>;
constructor(@inject('DefaultConnection') connection: Connection) {
this.connection = connection;
}
Так что, в моей конфигурации контейнера, как я могу привязать DefaultConnection, которому нужно подождать для CreateConnection я могу сделать с асинхронным и ждать, но я интересно, если есть способ очистки для того чтобы достигнуть этого в inversify