0.1.1 • Published 8 years ago

another-injector v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

Another Injector

Just another node based dependency injection tool.

Build Status

license

Install

npm install another-injector --save

Basic Injection Example

const Injector = require('another-injector');

class Example {
	constructor (config) {
		this.config = config;
	}
}

var conf = {
	animal: 'penguin',
	plane: 'f14'
};

var injector = new Injector();

injector.register('config', conf);
injector.register('example', Example);

var example = injector.get('example');

console.log(example.config);

Classes

Functions

Injector

Kind: global class

new Injector()

Dependency Injection Module Constructor

injector.inject(dep)

Attempts to inject provided class with dependencies registered within the Injector current Injector instance.

Kind: instance method of Injector

ParamTypeDescription
depfunctionClass / Function to inject

Example

class Testing {
    constructor (config) {
        this.config = config;
    }
}

injector.register('config', {animal: 'penguin'});

var testing = injector.inject(Testing);

injector.get(depName)

Injects and returns new instance / object / etc

Kind: instance method of Injector

ParamTypeDescription
depNameStringName of registered dependency you want

Example

injector.register('test', {animal: 'penguin'});
var test = injector.get('test'); // {animal: 'penguin'}

injector.register(depName, registerItem, onRegister, opts)

Registers a new dependency to the container

Kind: instance method of Injector

ParamTypeDescription
depNameStringDependency name to look for when injecting
registerItem*Item you want to assign
onRegisterfunctionOptional callback
optsObjectOptions to be passed into onRegister function meant for registerFiles method

Example

injector.register('test', {animal: 'penguin'}, (instance) => { console.log('Item Was Registered!'); });
injector.list(); // ['test']

injector.registerFiles(patterns, opts, onRegister)

Registers group of files by a search pattern optional callback is called every time on item is registered

Kind: instance method of Injector

ParamTypeDescription
patternsString | ArrayNote only .js files
optsObjectOptional options can be provided
opts.pathString | ArrayCWD / Path to use pattern in to search for files
opts.nameTransformfunctionHelp determine dependency name
onRegisterfunctionFunction to be called every time an item is registered

Example

// See Injector test for example.

injector.list() ⇒ Array

Returns a list of dependency names currently registered

Kind: instance method of Injector
Returns: Array - - Registered dependency names
Example

injector.register('test', {animal: 'penguin'});
injector.list(); // ['test']

injector.unregister(dep)

Un-Register a specific dependency

Kind: instance method of Injector

ParamTypeDescription
depStringThe dependency

Example

injector.register('test', {animal: 'penguin'});
injector.list(); // ['test']
injector.unregister(test);
injector.list(); // []

injector.reset()

Un-Register All Dependencies

Kind: instance method of Injector
Example

injector.register('test', {animal: 'penguin'});
injector.list(); // ['test']
injector.reset();
injector.list(); // []

nameTransform(exportName, fileName, fullPath, pattern) ⇒ String

Option that can be passed into register files opts object to transform the name of the dependency being registered.

Kind: global function
Returns: String - - Whatever is returned is what the dependency is registered as and must be accessed by

ParamTypeDescription
exportNameStringIf module.exports.name is specified in the file then this will be that value
fileNameStringThe full file name of where the dependency is being loaded from
fullPathStringThe full path of where the dependency is being loaded from
patternStringFile search patterns used to find this file