1.1.6 • Published 9 months ago

anydi v1.1.6

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months 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

9 months ago

1.1.5

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.1.1

9 months ago

1.1.0

9 months ago

1.0.9

9 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago