another-injector v0.1.1
Another Injector
Just another node based dependency injection tool.
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
Param | Type | Description |
---|---|---|
dep | function | Class / 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
Param | Type | Description |
---|---|---|
depName | String | Name 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
Param | Type | Description |
---|---|---|
depName | String | Dependency name to look for when injecting |
registerItem | * | Item you want to assign |
onRegister | function | Optional callback |
opts | Object | Options 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
Param | Type | Description |
---|---|---|
patterns | String | Array | Note only .js files |
opts | Object | Optional options can be provided |
opts.path | String | Array | CWD / Path to use pattern in to search for files |
opts.nameTransform | function | Help determine dependency name |
onRegister | function | Function 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
Param | Type | Description |
---|---|---|
dep | String | The 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
Param | Type | Description |
---|---|---|
exportName | String | If module.exports.name is specified in the file then this will be that value |
fileName | String | The full file name of where the dependency is being loaded from |
fullPath | String | The full path of where the dependency is being loaded from |
pattern | String | File search patterns used to find this file |