-
Unlike Java and C#, when TypeScript is transpiled to JavaScript the type information gets lost, making a TypeScript interface become nothing in JS. Because of this, it's not possible to use the interface itself as a token in the IoC Container. Decorators come in handy here to configure the service metadata in the Container.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
tsyringe
-
Let's start with the example of REST APIs built over fastify:
-
typedi
-
InversifyJS
Powerful and lightweight inversion of control container. Moved to https://github.com/inversify/monorepo
inversify
-
injection-js
Dependency injection library for JavaScript and TypeScript in 5.1K. It is an extraction of the Angular's ReflectiveInjector which means that it's well designed, feature complete, fast, reliable and well tested.
injection-js
-
ioc
:unicorn: lightweight (<1kb) inversion of control javascript library for dependency injection written in typescript (by owja)
ioc
-
diod
A very opinionated inversion of control (IoC) container and dependency injector for Typescript, Node.js or browser apps. (by artberri)
diod
-
DI-compiler
-
typed-inject
-
dataloader
DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching.
The one example of using Scoped dependency that comes to my mind, it's HTTP request level caching for libs like dataloader.
-
Note: You can find complete source code here.