Peque DI
Peque DI is an IoC container for TypeScript and JavaScript applications.
Install
npm install @pequehq/di reflect-metadata
Note: tsconfig's compilerOptions
must have both experimentalDecorators
and emitDecoratorMetadata
set to true.
Example
import { Container, Injectable } from '@pequehq/di';
@Injectable()
class Foo {
getPizza() {
return 'pizza';
}
}
@Injectable()
class Bar {
constructor(private foo: Foo) {}
test() {
console.log(this.foo.getPizza())
}
}
@Injectable()
class Counter {
#counter = 0;
count() {
this.#counter++;
return this.#counter;
}
}
const DI = new Container();
DI.set(Foo, 'Foo');
DI.set(Bar, 'Bar');
DI.set(Counter, 'Counter').nonSingleton();
DI.get<Bar>('Bar').test();