Singleton в пределах экземпляра класса

Я использую tsyringe и хочу реализовать подобное поведение: Классы A и B будут инстанцированы отдельно для каждого Module инстанса. Т.е. каждый Module будет иметь свои A и B инстансы, при этом если B зависит от A, он использует инстанс в пределах своего Module. Проще говоря что-то вроде отдельного контейнера с синглтонами для каждого Module.

@injectable()
class A {
  constructor() {
    console.log('Instance A')
  }
}

@injectable()
class B {
  constructor(private readonly a: A) {
    console.log('Instance A')
  }
}

@autoInjectable()
class Module {
  constructor(private readonly a?: A, private readonly b?: B) {}
}

console.log(new Module())
// Instance A
// Instance B
// Module { a: A {}, b: B { a: A {} } }

console.log(new Module())
// Instance A
// Instance B
// Module { a: A {}, b: B { a: A {} } }

Могу ли я это реализовать в декораторе, например ContainerModule

@ContainerModule
class Module {
  constructor(private readonly a?: A, private readonly b?: B) {}
}

Ответы (0 шт):