1.1.6 • Published 1 year ago

anydi v1.1.6

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

AnyDI

Install

$ npm install anydi --save

Usage

import { Container, Destroy, Inject, Lazy, DiContainer, Service, Root, setConfig } from "../src"

setConfig({ defaultLazy: true })

@Service()
class ChildValue {
  static id = 0
  id = ChildValue.id++
  constructor() {
    console.log('Child value:', this.id)
  }

  @Destroy
  destroy() {
    console.log('Child value destroy:', this.id)
  }
}

@Service()
class Child {
  @Lazy() value!: ChildValue

  constructor() {
    console.log('Child init')
  }

  @Destroy
  destroy() {
    console.log('Child destroy')
  }
}

@Container()
@Service()
class Test2 {
  @Inject() child!: Child
}

@Service()
class Test3 {
  @Inject() value!: ChildValue
}

@Root()
@Service()
class Test {
  @Inject() private test2!: Test2
  @Inject() private test3!: Test3
  @Inject() private value!: ChildValue
  constructor() {
    console.log(this.test2.child.value.id)
    console.log(this.test3)
    console.log(this.value.id === this.test3.value.id, this.value.id !== this.test2.child.value.id)
  }

  @Destroy
  destroy() {
    console.log('Test destroy')
  }
}

const test = new Test
test.destroy()

// or without @Root

const test2 = new DiContainer().factory(Test) // or new DiContainer().track(() => new Test)
test2.destroy()

changelog

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago