1.1.0 • Published 9 months ago

dinkyinject v1.1.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
9 months ago

DinkyInject

A simple and lightweight Dependency Injector

Installation

npm i dinkyinject

Usage

import { Inject, InjectorFactory } from 'dinkyinject';

// first service
interface IUserRepository {
    loadUser(): any[];
}

class MyUserRepository implements IUserRepository {
    loadUser(): any[] {
        return ['Peter', 'Lois', 'Brian', 'Stewie']
    }
}

// second service
interface IMyService {
    readonly repository: IUserRepository;
}

class MyService implements IMyService {
    @Inject('userRepository')
    public repository: IUserRepository = null;
}

// create injector factory
const factory = new InjectorFactory();

// register services
factory.registerService('userRepository', () => new MyUserRepository())
factory.registerService(MyService, new MyService())

// create injector
const injector = factory.createInjector();

// resolve autowired service
const service = injector.get<IMyService>(MyService);

// 'Peter', 'Lois', 'Brian', 'Stewie'
console.log(service.repository.loadUser());
1.1.0

9 months ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago