Skip to content

ascoders/dependency-inject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 24, 2018
a370ef9 · Nov 24, 2018

History

36 Commits
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Sep 9, 2017
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018

Repository files navigation

DependencyInject

Live Demo

import { Container, inject } from 'dependency-inject'

class Store {
    num = 1
}

class Action {
    @inject(Store)
    private store: Store

    setNum(num: number) {
        this.store.num = num
    }
}

// init store
const container = new Container()
container.set(Store, new Store())
container.set(Action, new Action())

// get data with injected
const store = container.get(Store)
const action = container.get(Action)

action.setNum(2)
console.log(store.num) // 2

Simple useage by injectFactory

import { injectFactory } from 'dependency-inject'
class Store {
    num = 1
}

class Action {
    @inject(Store)
    private store: Store

    setNum(num: number) {
        this.store.num = num
    }
}

const stores = injectFactory({Store, Action})
// stores.Store.num === 1
// stores.Action.setNum

nested object

import { injectFactory } from 'dependency-inject'
class Store {
    num = 1
}

class Action {
    @inject(Store)
    private store: Store

    setNum(num: number) {
        this.store.num = num
    }
}

const stores = injectFactory({
    groupA: Store,
    groupB: {
        groupC: Action
    }
})

About

Powerful dependency injection tool

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published