I've got a proposal to include target instance (which I suppose is not possible since there isn't async resolution logic yet) or target Class (Type) name (I mean, TargetClass.constructor.name or even TargetClass.constructor) in factory binder context.
One of the most popular commonly used dependency is Logger, but the logger often include extra params, like Category or Module Name, that describes the place module logs comes from. Conventionally it looks like this:
Container.bind(Logger).factory(context => {
// proposal: 'context.target' here is actual constructor (function) of target class
return Log.createLogger(context.target.name));
}
and then in service:
export class SomeService {
constructor(@Inject private logger:Logger) { }
}
But currently there is no way to get any suitable target instance info within factory context.
I've got a proposal to include target instance (which I suppose is not possible since there isn't async resolution logic yet) or target Class (Type) name (I mean,
TargetClass.constructor.name
or evenTargetClass.constructor
) in factory binder context.One of the most popular commonly used dependency is Logger, but the logger often include extra params, like Category or Module Name, that describes the place module logs comes from. Conventionally it looks like this:
So, with IoC I would like to have smth like this:
But currently there is no way to get any suitable target instance info within factory context.