Lightweight dependency injection for TypeScript
Explore the docs »
Automatic dependency injection for TypeScript projects. Supports advanced use cases through easy, flexible configuration.
Install the reflect-metadata
and @fraziersoft/di
packages.
- npm
npm install -D reflect-metadata @fraziersoft/di
- yarn
yarn add -D reflect-metadata @fraziersoft/di
Enable decorator support in your project's tsconfig.json
file.
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
import 'reflect-metadata';
import { create, Injectable } from '@fraziersoft/di';
class Ninja {
attack() {
console.log('The Ninja Attacks!');
}
}
@Injectable()
class Game {
constructor(public ninja: Ninja) {}
play() {
this.ninja.attack();
}
}
const app = create(Game);
app.play();
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.