@ff00ff/dependency-injection
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Dependency Injection

Simple idiomatic dependency injection library which doesn't force you to use classes and decorators.

npm i @ff00ff/dependency-injection

Use di(..) to initialize all your dependencies. You pass all dependency factories to di and every factory will receive the dependencies of the previous factories.

di(
  // Pass any singletons over here. The first argument accepts just an object of your initial
  // dependencies.
  { mySingleton },

  // Collect your configuration which is automatically passed to the next factories. All without
  // losing type information.
  () => ({
    NODE_ENV: process.env.NODE_ENV!,
    FOO: process.env.FOO!,
    BAR: process.env.BAR!,
  }),

  // Create your repositories. `makeRepositories` gets passed all the previous dependencies.
  makeRepositories,

  // `makeServices` is invoked with the result of `makeRepositories` combined with all other
  // previous factory functions.
  makeServices,
);

Readme

Keywords

none

Package Sidebar

Install

npm i @ff00ff/dependency-injection

Weekly Downloads

5

Version

1.0.2

License

MIT

Unpacked Size

6.18 kB

Total Files

6

Last publish

Collaborators

  • ff00ffbot
  • martijndeh