The injectable decorator
This decorator targets a class and allows to provide options to set its binding.
import { injectable, BindingScope } from '@cuaklabs/iocuak';
/**
* Foo is injectable on transient scope and its service id is the type Foo itself
*/
@injectable()
class Foo {}
const barSymbol: symbol = Symbol();
/**
* Bar is injectable on singleton scope. Its service id is the barSymbol symbol
*/
@injectable({
id: barSymbol,
scope: BindingScope.singleton,
})
class Bar {}
const bazSymbol: symbol = Symbol();
/**
* Bar is injectable on request scope. Its service id is the bazSymbol symbol.
* It's associated to the providers tag
*/
@injectable({
id: bazSymbol,
scope: BindingScope.request,
tags: [providers]
})
class Baz {}
info
Consider binding docs as reference.