4.0.21 • Published 3 years ago

@nger/di v4.0.21

Weekly downloads
93
License
ISC
Repository
-
Last release
3 years ago

@nger/di

一款零依赖的依赖注入工具 - from angular

package size: 10.2 kB unpacked size: 40.6 kB

static create

Injector.create([])

scope

injector 作用域

import { Injector } from '@nger/di';
// scope = null
const nullInjector = Injector.create([])
// scope = root , parent scope = null
const injector = nullInjector.create([{provide: INJECTOR_SCOPE, useValue: 'root'}])
// scope = platform , parent scope = root , parent parent scope = null
const injector = injector.create([{provide: INJECTOR_SCOPE, useValue: 'platform'}])

multi provider

用于渐进式注入

import { rootInjector, InjectionToken } from '@nger/di';
const token = new InjectionToken(`token`)
const inejctor = rootInjector.create([{ provide: INJECTOR_SCOPE, useValue: 'platform' }, { provide: token, useValue: 1, multi: true }])
const appModuleInjector = inejctor.create([
    { provide: token, useValue: 2, multi: true }, 
    { provide: token, useValue: 3, multi: true }
], 'AppModule')
// token wile be [1,2,3]
const tokens = appModuleInjector.get(token)

ValueProvider

使用指定值

rootInjector.create([{
    provide: Car,
    useValue: new Car()
}])

ConstructorProvider

快捷注入,使用自身

rootInjector.create([{
    provide: Car,
    deps: [CarNum]
}])

ExistingProvider

使用已注入的

rootInjector.create([{
    provide: Car,
    useExisting: Car2
}])

StaticClassProvider

使用useClass指定的类

rootInjector.create([{
    provide: Car,
    useClass: Car,
    deps: [CarNum]
}])

FactoryProvider

使用指定factory进行创建

rootInjector.create([{
    provide: Car,
    useFactory: ()=>new Car(),
    deps: []
}])

SkipSelf

跳过当前

rootInjector.create([{
    provide: Car,
    useFactory: ()=>new Car(),
    deps: [new SkipSelf(), CarNum]
}])

Self

使用当前

rootInjector.create([{
    provide: Car,
    useFactory: ()=>new Car(),
    deps: [new Self(), CarNum]
}])

Optional

当找不到时,不报错,可以为空

rootInjector.create([{
    provide: Car,
    useFactory: ()=>new Car(),
    deps: [new Optional(), CarNum]
}])

组合使用

使用当前,并可以为空

rootInjector.create([{
    provide: Car,
    useFactory: ()=>new Car(),
    deps: [new Self(), new Optional(), CarNum]
}])
4.0.21

3 years ago

4.0.16

3 years ago

4.0.15

3 years ago

4.0.18

3 years ago

4.0.17

3 years ago

4.0.12

3 years ago

4.0.14

3 years ago

4.0.13

3 years ago

4.0.5

3 years ago

4.0.4

3 years ago

4.0.7

3 years ago

4.0.6

3 years ago

4.0.1

3 years ago

4.0.3

3 years ago

4.0.2

3 years ago

4.0.9

3 years ago

4.0.8

3 years ago

4.0.11

3 years ago

1.6.0

4 years ago

1.5.58

4 years ago

1.5.56

4 years ago

1.5.55

4 years ago

1.5.54

4 years ago

1.5.53

4 years ago

1.5.48

4 years ago

1.5.47

4 years ago

1.5.45

4 years ago

1.5.46

4 years ago

1.5.44

4 years ago

1.5.43

4 years ago

1.5.42

4 years ago

1.5.41

4 years ago

1.5.39

4 years ago

1.5.40

4 years ago

1.5.38

4 years ago

1.5.37

4 years ago

1.5.36

4 years ago

1.5.35

4 years ago

1.5.34

4 years ago

1.5.33

4 years ago

1.5.32

4 years ago

1.5.31

4 years ago

1.5.30

4 years ago

1.5.29

4 years ago

1.5.28

4 years ago

1.5.27

4 years ago

1.5.26

4 years ago

1.5.25

4 years ago

1.5.24

4 years ago

1.5.23

4 years ago

1.5.19

4 years ago

1.5.21

4 years ago

1.5.20

4 years ago

1.5.22

4 years ago

1.5.18

4 years ago

1.5.17

4 years ago

1.5.14

4 years ago

1.5.16

4 years ago

1.5.15

4 years ago

1.5.13

4 years ago

1.5.10

4 years ago

1.5.12

4 years ago

1.5.11

4 years ago

1.5.8

4 years ago

1.5.7

4 years ago

1.5.6

4 years ago

1.5.5

4 years ago

1.5.4

4 years ago

1.4.6

4 years ago

1.4.4

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.9

4 years ago

1.4.8

4 years ago

1.4.7

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.9

4 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.8

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.5

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.1

4 years ago

1.1.2

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago