0.1.1 • Published 4 years ago

treason-di v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

treason-di

Experimental Dependency injection library

Usage

import { Container, factory } from 'treason-di';

class FooDependency {
  getFoo(): string {
    return 'Foo!';
  }
}

class Foo {
  constructor(
    private dependency: FooDependency,
  ) {}

  getFoo(): string {
    return this.dependency.getFoo();
  }
}

async function fooFactory(container: Container): Promise<Foo> {
  const fooDependency = await container.get<FooDependency>(FooDependency);

  return new Foo(fooDependency);
}

const definitions = new Map();
definitions.set(Foo, factory(fooFactory));

const container = new Container(definitions);

container.get<Foo>(Foo).then(foo => {
  console.log(foo.getFoo()); // Prints "Foo!"
});
0.1.1

4 years ago

0.1.0

4 years ago