Comparing version 1.0.0 to 1.1.0
42
index.js
@@ -6,17 +6,45 @@ module.exports = () => { | ||
sLoc.factory = (name, factory) => { | ||
factories[name] = factory; | ||
if(typeof factory === 'object') { | ||
factories[name] = {}; | ||
factories[name].orig = factory[Object.keys(factory)[0]]; | ||
if(factory[Object.keys(factory)[1]]) { | ||
factories[name].second = factory[Object.keys(factory)[1]]; | ||
} | ||
factories[name].parent = factory | ||
} else { | ||
factories[name] = {}; | ||
factories[name].orig = factory | ||
} | ||
}; | ||
sLoc.register = (name, instance) => { | ||
dependencies[name] = instance; | ||
if(typeof instance === 'object') { | ||
dependencies[name] = {}; | ||
dependencies[name].orig = instance[Object.keys(instance)[0]]; | ||
if(instance[Object.keys(instance)[1]]) { | ||
dependencies[name].second = instance[Object.keys(instance)[1]]; | ||
} | ||
dependencies[name].parent = instance | ||
} else { | ||
dependencies[name] = {}; | ||
dependencies[name].orig = instance | ||
} | ||
}; | ||
sLoc.get = (name) => { | ||
if(!dependencies[name]) { | ||
sLoc.get = (name,override, overrideName) => { | ||
if(overrideName){ | ||
return dependencies[name].parent[overrideName]; | ||
} | ||
else if(override === true) { | ||
return dependencies[name].second | ||
} | ||
else { | ||
if(!dependencies[name].orig) { | ||
var factory = factories[name]; | ||
dependencies[name] = factory && factory(sLoc); | ||
if(dependencies[name]) { | ||
dependencies[name].orig = factory && factory(sLoc); | ||
if(dependencies[name].orig) { | ||
throw new Error (`Cannot locate ${name}`) | ||
} | ||
} | ||
return dependencies[name] | ||
return dependencies[name].orig | ||
} | ||
}; | ||
@@ -23,0 +51,0 @@ return sLoc; |
{ | ||
"name": "s-loc", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "A simple service locator", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
var locator = require('./index')(); | ||
var orig = function() { | ||
var obj = { | ||
orig : function() { | ||
console.log('THIS HAPPENED'); | ||
}, | ||
backup: function() { | ||
console.log('THIS RIGHT HERE') | ||
}, | ||
third: function() { | ||
console.log('last one happened'); | ||
}, | ||
last: function() { | ||
console.log('real lastone'); | ||
} | ||
}; | ||
locator.register('testGet',orig); | ||
locator.register('testGet',obj); | ||
locator.register('func',obj.last); | ||
var func = locator.get('func'); | ||
var testGet = locator.get('testGet'); | ||
testGet(); | ||
var testSecond = locator.get('testGet',true); | ||
var testThird = locator.get('testGet',true,'third'); | ||
func(); | ||
testGet(); | ||
testSecond(); | ||
testThird(); |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
5057
5
74
1
60