1.0.5 • Published 4 years ago

@vladbasin/ts-dependencies v1.0.5

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
4 years ago

ts-dependencies

TypeScript dependency management without magic.

Install

npm install @vladbasin/ts-dependencies --save

Getting Started

This library helps to inject dependencies which are singletons (useful for decoupling business services accross the app).

Given these classes

class Engine {
    private _speed: number = 10;

    public get speed() { 
        return this._speed;
    }
}

class Car {
    private _engine: Engine;

    constructor(dep: { engine: Engine }) {
        this._engine = dep.engine;
    }

    public printSpeed() {
        console.log(this._engine.speed);
    } 
}

Register dependencies

import { ServiceCollectionBuilder } from "@vladbasin/ts-dependencies";

const serviceCollectionBuilder = new ServiceCollectionBuilder();
serviceCollectionBuilder.addPure("engine", Engine);
serviceCollectionBuilder.add("car", Car, ["engine"]);
const services = serviceCollectionBuilder.build();

Resolve dependency

const car = services.get<Car>("car");
car.printSpeed();