TypeDI
TypeDI is a dependency injection tool for TypeScript and JavaScript. With it you can build well-structured and easily testable applications in Node or in the browser.
Main features includes:
- property based injection
- constructor based injection
- singleton and transient services
- support for multiple DI containers
Installation
Note: This installation guide is for usage with TypeScript, if you wish to use
TypeDI without Typescript please read the documentation about how get started.
To start using TypeDI install the required packages via NPM:
npm install typedi reflect-metadata
Import the reflect-metadata
package at the first line of your application:
import 'reflect-metadata';
As a last step, you need to enable emitting decorator metadata in your Typescript config. Add these two lines to your tsconfig.json
file under the compilerOptions
key:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
Now you are ready to use TypeDI with Typescript!
Basic Usage
import { Container, Service } from 'typedi';
@Service()
class ExampleInjectedService {
printMessage() {
console.log('I am alive!');
}
}
@Service()
class ExampleService {
constructor(
public injectedService: ExampleInjectedService
) {}
}
const serviceInstance = Container.get(ExampleService);
serviceInstance.injectedService.printMessage();
Documentation
The detailed usage guide and API documentation for the project can be found:
Contributing
Please read our contributing guidelines to get started.