Injecting externally created instances
May 21, 2021 ยท View on GitHub
You can register classes and use instances created by yourself. Imagine you have these services:
export abstract class Logger {
//...
}
export class ConsoleLogger implements Logger {
//...
}
export class Mailer {
//...
}
You will need to register them like this:
import { ContainerBuilder } from 'diod'
// Other imports...
const logger = new ConsoleLogger(/**/)
const mailer = new Mailer(/**/)
const builder = new ContainerBuilder()
// ...
builder.register(Logger).useInstance(logger)
builder.register(Mailer).useInstance(mailer)
// ...
const container = builder.build()
// ...
Now you will be able to query any of the services normally and they will be injected like any other dependency if some service request them on its constructor.