@sigi/di
Version:
Dependencies injection library for sigi framework
20 lines (17 loc) • 449 B
text/typescript
import { rootInjector } from './root-injector'
import { Provider } from './type'
export interface InjectableOptions {
providers: Provider[]
}
export function Injectable(options?: InjectableOptions) {
return function (target: any) {
rootInjector.addProvider({
useClass: target,
provide: target,
})
for (const provider of options?.providers ?? []) {
rootInjector.addProvider(provider)
}
return target
}
}