2.0.0-beta.3 • Published 4 years ago

@bonbons/di v2.0.0-beta.3

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Bonbons-DI

@bonbons/di

Build Status Coverage Status package version

依赖注入 node.js 实现

安装

npm install @bonbons/di --save
yarn add @bonbons/di

接入指南

import { DIContainer, InjectScope } from "@bonbons/di";
import { AbstractClass as Interface, ImplementClass as Implement } from "your/code";

// 创建di容器
const di = new DIContainer();

// 注入一个全局单例
di.register({ token: Interface, imp: Implement, scope: InjectScope.Singleton });

// 注入一个范围单例
di.register({ token: Interface, imp: Implement, scope: InjectScope.Scoped });

// 注入一个总是新建的实例
di.register({ token: Interface, imp: Implement, scope: InjectScope.New });

// 工厂方法来进行设置(最底层)
di.register({ token: Interface, imp: (scopeId?, {...}) => new Implement(...), scope: InjectScope.Singleton });

// 依赖注入工厂方法来进行设置
di.register({
  token: Interface,
  depts: [Class1, Class2],
  imp: (...args: [Class1, Class2]) => new Implement(...args),
  scope: InjectScope.Singleton
});

// 直接使用创建好的实例来解析
di.register({ token: Interface, imp: new Implement(...), scope: InjectScope.New });

// 完成解析构建
di.complete();

// 获取实例
const imp = di.get(Interface);

// 创建一个scope
di.createScope("scope_id", {...});

// 在某一个范围内获得实例
const scope_imp = di.get(Interface, "scope_id");

// 释放当前范围
di.dispose("scope_id");
2.0.0-beta.2

4 years ago

2.0.0-beta.1

4 years ago

2.0.0-beta.3

4 years ago

1.4.1-rc.2

5 years ago

1.4.1-rc.1

5 years ago

1.4.1

5 years ago

1.4.0-rc.12

5 years ago

1.4.0-rc.11

5 years ago

1.4.0-rc.10

5 years ago

1.4.0-rc.9

5 years ago

1.4.0-rc.8

5 years ago

1.4.0-rc.7

5 years ago

1.4.0-rc.6

5 years ago

1.4.0-rc.5

5 years ago

1.4.0-rc.4

5 years ago

1.4.0-rc.3

5 years ago

1.4.0-rc.2

5 years ago

1.4.0-rc.1

5 years ago

1.4.0

5 years ago

1.3.5-rc.4

5 years ago

1.3.5-rc.3

5 years ago

1.3.5-rc.2

5 years ago

1.3.5-rc.1

5 years ago

1.3.5

5 years ago

1.3.4

5 years ago

1.3.4-rc.5

5 years ago

1.3.4-rc.4

5 years ago

1.3.4-rc.3

5 years ago

1.3.4-rc.2

5 years ago

1.3.4-rc.1

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.10-beta

6 years ago

1.0.9-beta

6 years ago

1.0.8-beta

6 years ago

1.0.7-beta

6 years ago

1.0.6-beta

6 years ago

1.0.5-beta

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago