1.1.6 • Published 11 months ago

anydi v1.1.6

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

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago