Skip to content

davidcblaney/di-ts

 
 

Repository files navigation

Dependency Injection for Typescript

Lightweight wrap and extension of di.js for TypeScript.

Install

npm install di-ts

Usage

You need to use --emitDecoratorMetadata flag when compile you typescript files. "emitDecoratorMetadata" flag is supported by the 1.5 beta version of TypeScript.

car.ts

import {Inject} from 'di-ts'
import {Engine} from './engine'

@Inject
export class Car {
  constructor(public engine: Engine) {}
}

engine.ts

export class Engine {

}

mockEngine.ts

import {Provide} from 'di-ts'
import {Engine} from './engine'

@Provide(Engine)
export class MockEngine {

}

main.ts

/// <reference path="node_modules/di-ts/di-ts.d.ts"/>

import {Injector} from 'di-ts'
import {Car} from './car'
import {Engine} from './engine'

var injector = new Injector();
var car: Car = injector.get(Car); //instantiate car, car.engine is magically instance of Engine! :)


import {MockEngine} from './mockEngine'
var injector2 = new Injector([MockEngine]);
var car2: Car = injector2.get(Car); //instantiate car, car.engine is instance of MockEngine! :)

About

Dependency injection for TypeScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 78.1%
  • JavaScript 21.9%