🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

typedioc

Package Overview
Dependencies
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typedioc

TypedIOC is the IOC Container for Typescript

latest
npmnpm
Version
0.0.4
Version published
Maintainers
2
Created
Source

TypedIOC

TypedIOC is the IOC Container for Typescript

Installation

npm install typedioc --save

Basic usage

Add experimentalDecorators": true and "emitDecoratorMetadata": true to your compilerOptions

import {Container, Lifetime,resolvable} from "typedioc";
@resolvable()
class Car{

    public engine: Engine;

    constructor(engine: Engine){
        this.engine=engine;
    }
}
var container: Container = new Container();
var car: Car = container.resolve<Car>(Car);

Register types

import {Container, Lifetime,resolvable} from "typedioc";

@resolvable()
class Vehicle{

    public serialNumber: number;

    constructor(){
        this.serialNumber=Math.random();
    }

}

@resolvable()
class Car extends Vehicle{

    public engine: Engine;

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

}
//Option 1: Singleton, each resolved Vehicle will point to the same instance
var container: Container = new Container();
container.registerType(Vehicle,Car,Lifetime.Singleton);
var vehicle1: Vehicle = container.resolve<Vehicle>(Vehicle);//vehicle1 is a instance of Car
var vehicle2: Vehicle = container.resolve<Vehicle>(Vehicle);
//vehicle1.serialNumber == vehicle2.serialNumber

//Option 2: transient, each resolved Vehicle will be a new instance
var container2: Container = new Container();
container2.registerType(Vehicle,Car,Lifetime.Transient);
var vehicle3: Vehicle = container2.resolve<Vehicle>(Vehicle);
var vehicle4: Vehicle = container2.resolve<Vehicle>(Vehicle);
//vehicle3.serialNumber != vehicle4.serialNumber

Register instances

import {Container, Lifetime,resolvable} from "typedioc";

@resolvable()
class Vehicle{

    public serialNumber: number;

    constructor(){
        this.serialNumber=Math.random();
    }

}

@resolvable()
class Car extends Vehicle{

    public engine: Engine;

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

}
var container: Container = new Container();
var carInstance: Car = new Car();
carInstance.serialNumber=1234;
container.registerInstance(Vehicle,carInstance);
var resolvedVehicle: Vehicle = container.resolve<Vehicle>(Vehicle);

FAQs

Package last updated on 05 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts