@vladbasin/ts-dependencies
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

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();

Package Sidebar

Install

npm i @vladbasin/ts-dependencies

Weekly Downloads

0

Version

1.0.5

License

GPL-3.0-only

Unpacked Size

48.8 kB

Total Files

23

Last publish

Collaborators

  • vladbasin