@unicreators/injector
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

Tests npm (scoped) License

Injector is a inversion of control (IoC) container for TypeScript and JavaScript applications.

Injector 是一个用于 TypeScript 和 JavaScript 应用程序的控制反转 (IoC) 容器。

import { ValueProvider, injectable, inject, injector } from '@unicreators/injector';

@injectable()
class B { }

@injectable()
class A { constructor(public b: B, @inject('value1') v1: number) { } }

injector.register(new ValueProvider('value1', 10));

let a = injector.get<A>(A);
let b = injector.get<B>(B);

expect(a).instanceOf(A);
expect(a.b).equals(b);
expect(a.v1).equals(10);

🍉 Example

Install

$ npm install @unicreators/injector reflect-metadata

使用 injector 时 TypeScript 版本需 >= 4,并且需配置 tsconfig.json 开启 experimentalDecoratorsemitDecoratorMetadata 选项。

{
    "compilerOptions": {
        "target": "es5",        
        "types": ["reflect-metadata"],
        "module": "commonjs",
        "moduleResolution": "node",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true
    }
}

License

MIT

Package Sidebar

Install

npm i @unicreators/injector

Weekly Downloads

2

Version

0.0.1

License

MIT

Unpacked Size

101 kB

Total Files

63

Last publish

Collaborators

  • unicreators