power-di v2.4.47
Power DI
A lightweight Dependency Injection library. Using es6 and other features, remove unnecessary concepts, easy and convenient to use.
Install
npm i power-di --saveExample
a simple example
import { IocContext } from 'power-di';
class AService { }
// default instance, you can also new IocContext to get a instance.
const context = IocContext.DefaultInstance;
context.register(AService);
const aService = context.get(AService); // a instance of AServiceinject with key
class AService { }
const context = IocContext.DefaultInstance;
context.register(AService, 'XService'); // key need a string or class, e.g super class or whatever class.
context.get('XService');use with decorators
const context = new IocContext();
@injectable()
class NRService { }
@injectable()
class LITestService {
@inject()
public testService: NRService;
}
const test = context.get(LITestService);collect impl or extends of some interface/base class
class A { }
@classInfo()
class B extends A { }
@classInfo()
class C extends A { }
@injectable()
class LITestService {
@imports({ type: A })
public testService: A[];
}
const test = context.get(LITestService); // test.testService as A[];use in react
const context = new IocContext;
class NRService { }
context.register(NRService);
class TestComponent extends Component<{}, {}> {
@inject()
service: NRService;
componentDidMount() {
t.true(this.service instanceof NRService);
}
render(): any {
return null;
}
}
create(
<IocProvider context={context}>
<TestComponent />
</IocProvider>
);Class Loader
Power DI introduced the concept of class loader. We can customize the find rule of ioc.
See the test case for details.
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
2 years ago
2 years ago
1 year ago
1 year ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago