diff --git a/README.md b/README.md
index 4447ece..fde6589 100644
--- a/README.md
+++ b/README.md
@@ -420,22 +420,15 @@ Param | Type | Details
Used to register a service factory function. Works exactly like `factory` except the factory arguments will be injected instead of receiving the `container`. This is useful when implementing the Module Pattern or adding dependencies to your Higher Order Functions.
```js
-function createApiActions(axios) {
+function packageKeg(Barrel, Beer, Love) {
+ Barrel.add(Beer, Love);
return {
- createUser: function(user) {
- return axios.post('/users', user);
+ tap : function() {
+ return Barrel.dispense();
}
};
}
-
-var bottle = new Bottle();
-
-bottle.serviceFactory('api', createApiActions, 'axios');
-bottle.factory('axios', function() {
- return axios.create({baseURL: 'http://api.mydomain'});
-});
-
-bottle.container.api.createUser({name: "BottleJS"});
+bottle.serviceFactory('Keg', packageKeg, 'Barrel', 'Beer', 'Love');
```
If `Bottle.config.strict` is set to `true`, this method will throw an error if an injected dependency is `undefined`.
@@ -444,7 +437,7 @@ Param | Type | Details
:--------------------------------|:-----------|:--------
**name** | *String* | The name of the service. Must be unique to each Bottle instance.
**serviceFactory** | *Function* | A function that will be invoked to create the service object/value.
-**dependency**
*(optional)* | *String* | An optional name for a dependency to be passed to the service function. A dependency will be passed to the service function for each name passed to `Bottle#serviceFn` in the order they are listed.
+**dependency**
*(optional)* | *String* | An optional name for a dependency to be passed to the service function. A dependency will be passed to the service function for each name passed to `Bottle#serviceFactory` in the order they are listed.
#### value(name, val)
diff --git a/bower.json b/bower.json
index b6b754e..15b7edb 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "bottlejs",
- "version": "1.6.3",
+ "version": "1.7.0",
"description": "A powerful dependency injection micro container",
"main": "dist/bottle.min.js",
"license": "MIT",
diff --git a/dist/bottle.js b/dist/bottle.js
index 39ffd14..fb5e8e9 100644
--- a/dist/bottle.js
+++ b/dist/bottle.js
@@ -1,12 +1,20 @@
;(function(undefined) {
'use strict';
/**
- * BottleJS v1.6.3 - 2017-12-06
+ * BottleJS v1.7.0 - 2018-01-29
* A powerful dependency injection micro container
*
- * Copyright (c) 2017 Stephen Young
+ * Copyright (c) 2018 Stephen Young
* Licensed MIT
*/
+ /**
+ * String constants
+ */
+ var DELIMITER = '.';
+ var FUNCTION_TYPE = 'function';
+ var STRING_TYPE = 'string';
+ var GLOBAL_NAME = '__global__';
+ var PROVIDER_SUFFIX = 'Provider';
/**
* Unique id counter;
@@ -66,7 +74,7 @@
* @return Service
*/
var getNestedService = function getNestedService(fullname) {
- return fullname.split('.').reduce(getNested, this);
+ return fullname.split(DELIMITER).reduce(getNested, this);
};
/**
@@ -77,7 +85,7 @@
* @return Bottle
*/
var constant = function constant(name, value) {
- var parts = name.split('.');
+ var parts = name.split(DELIMITER);
name = parts.pop();
defineConstant.call(parts.reduce(setValueObject, this.container), name, value);
return this;
@@ -101,15 +109,15 @@
*/
var decorator = function decorator(fullname, func) {
var parts, name;
- if (typeof fullname === 'function') {
+ if (typeof fullname === FUNCTION_TYPE) {
func = fullname;
- fullname = '__global__';
+ fullname = GLOBAL_NAME;
}
- parts = fullname.split('.');
+ parts = fullname.split(DELIMITER);
name = parts.shift();
if (parts.length) {
- getNestedBottle.call(this, name).decorator(parts.join('.'), func);
+ getNestedBottle.call(this, name).decorator(parts.join(DELIMITER), func);
} else {
if (!this.decorators[name]) {
this.decorators[name] = [];
@@ -234,15 +242,15 @@
*/
var middleware = function middleware(fullname, func) {
var parts, name;
- if (typeof fullname === 'function') {
+ if (typeof fullname === FUNCTION_TYPE) {
func = fullname;
- fullname = '__global__';
+ fullname = GLOBAL_NAME;
}
- parts = fullname.split('.');
+ parts = fullname.split(DELIMITER);
name = parts.shift();
if (parts.length) {
- getNestedBottle.call(this, name).middleware(parts.join('.'), func);
+ getNestedBottle.call(this, name).middleware(parts.join(DELIMITER), func);
} else {
if (!this.middlewares[name]) {
this.middlewares[name] = [];
@@ -270,7 +278,7 @@
*/
var pop = function pop(name) {
var instance;
- if (typeof name === 'string') {
+ if (typeof name === STRING_TYPE) {
instance = bottles[name];
if (!instance) {
bottles[name] = instance = new Bottle();
@@ -285,7 +293,7 @@
* Clear all named bottles.
*/
var clear = function clear(name) {
- if (typeof name === 'string') {
+ if (typeof name === STRING_TYPE) {
delete bottles[name];
} else {
bottles = {};
@@ -312,8 +320,8 @@
*/
var provider = function provider(fullname, Provider) {
var parts, name;
- parts = fullname.split('.');
- if (this.providerMap[fullname] && parts.length === 1 && !this.container[fullname + 'Provider']) {
+ parts = fullname.split(DELIMITER);
+ if (this.providerMap[fullname] && parts.length === 1 && !this.container[fullname + PROVIDER_SUFFIX]) {
return console.error(fullname + ' provider already instantiated.');
}
this.originalProviders[fullname] = Provider;
@@ -322,7 +330,7 @@
name = parts.shift();
if (parts.length) {
- getNestedBottle.call(this, name).provider(parts.join('.'), Provider);
+ getNestedBottle.call(this, name).provider(parts.join(DELIMITER), Provider);
return this;
}
return createProvider.call(this, name, Provider);
@@ -351,7 +359,7 @@
container = this.container;
decorators = this.decorators;
middlewares = this.middlewares;
- providerName = name + 'Provider';
+ providerName = name + PROVIDER_SUFFIX;
properties = Object.create(null);
properties[providerName] = {
@@ -416,7 +424,7 @@
var removeProviderMap = function resetProvider(name) {
delete this.providerMap[name];
delete this.container[name];
- delete this.container[name + 'Provider'];
+ delete this.container[name + PROVIDER_SUFFIX];
};
/**
@@ -427,7 +435,7 @@
var resetProviders = function resetProviders() {
var providers = this.originalProviders;
Object.keys(this.originalProviders).forEach(function resetPrvider(provider) {
- var parts = provider.split('.');
+ var parts = provider.split(DELIMITER);
if (parts.length > 1) {
parts.forEach(removeProviderMap, getNestedBottle.call(this, parts[0]));
}
@@ -452,23 +460,41 @@
};
/**
- * Register a service inside a generic factory.
+ * Register a function service
+ */
+ var serviceFactory = function serviceFactory(name, factoryService) {
+ return createService.apply(this, [name, factoryService, false].concat(slice.call(arguments, 2)));
+ };
+
+ /**
+ * Register a class service
*
* @param String name
* @param Function Service
* @return Bottle
*/
var service = function service(name, Service) {
- var deps = arguments.length > 2 ? slice.call(arguments, 2) : null;
+ return createService.apply(this, [name, Service, true].concat(slice.call(arguments, 2)));
+ };
+
+ /**
+ * Private helper for creating service and service factories.
+ *
+ * @param String name
+ * @param Function Service
+ * @return Bottle
+ */
+ var createService = function createService(name, Service, isClass) {
+ var deps = arguments.length > 3 ? slice.call(arguments, 3) : [];
var bottle = this;
return factory.call(this, name, function GenericFactory() {
- var ServiceCopy = Service;
- if (deps) {
- var args = deps.map(getNestedService, bottle.container);
- args.unshift(Service);
- ServiceCopy = Service.bind.apply(Service, args);
+ var serviceFactory = Service; // alias for jshint
+ var args = deps.map(getNestedService, bottle.container);
+
+ if (!isClass) {
+ return serviceFactory.apply(null, args);
}
- return new ServiceCopy();
+ return new (Service.bind.apply(Service, [null].concat(args)))();
});
};
@@ -481,7 +507,7 @@
*/
var value = function value(name, val) {
var parts;
- parts = name.split('.');
+ parts = name.split(DELIMITER);
name = parts.pop();
defineValue.call(parts.reduce(setValueObject, this.container), name, val);
return this;
@@ -562,6 +588,7 @@
register : register,
resolve : resolve,
service : service,
+ serviceFactory : serviceFactory,
value : value
};
@@ -631,7 +658,7 @@
/**
* Export
*/
- if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
+ if (typeof define === FUNCTION_TYPE && typeof define.amd === 'object' && define.amd) {
root.Bottle = Bottle;
define(function() { return Bottle; });
} else if (freeExports && freeModule) {
diff --git a/dist/bottle.min.js b/dist/bottle.min.js
index 8e36ce9..84b8959 100644
--- a/dist/bottle.min.js
+++ b/dist/bottle.min.js
@@ -1,10 +1,10 @@
/**
- * BottleJS v1.6.3 - 2017-12-06
+ * BottleJS v1.7.0 - 2018-01-29
* A powerful dependency injection micro container
*
- * Copyright (c) 2017 Stephen Young
+ * Copyright (c) 2018 Stephen Young
* Licensed MIT
*/
-(function(a){"use strict";var b=0,c=Array.prototype.slice,d=function(b,c){var d=b[c];if(d===a&&H.strict)throw new Error("Bottle was unable to resolve a service. `"+c+"` is undefined.");return d},e=function(a){var b;return this.nested[a]||(b=G.pop(),this.nested[a]=b,this.factory(a,function(){return b.container})),this.nested[a]},f=function(a){return a.split(".").reduce(d,this)},g=function(a,b){var c=a.split(".");return a=c.pop(),h.call(c.reduce(E,this.container),a,b),this},h=function(a,b){Object.defineProperty(this,a,{configurable:!1,enumerable:!0,value:b,writable:!1})},i=function(a,b){var c,d;return"function"==typeof a&&(b=a,a="__global__"),c=a.split("."),d=c.shift(),c.length?e.call(this,d).decorator(c.join("."),b):(this.decorators[d]||(this.decorators[d]=[]),this.decorators[d].push(b)),this},j=function(a){return this.deferred.push(a),this},k=function(a){return(a||[]).map(f,this.container)},l=function(a,b){return v.call(this,a,function(){this.$get=b})},m=function(a,b){return l.call(this,a,function(a){return{instance:b.bind(b,a)}})},n=function(a){return!/^\$(?:decorator|register|list)$|Provider$/.test(a)},o=function(a){return Object.keys(a||this.container||{}).filter(n)},p=function(a,b,c,d){var e={configurable:!0,enumerable:!0};return a.length?e.get=function(){var b=0,d=function(e){if(e)throw e;a[b]&&a[b++](c,d)};return d(),c}:(e.value=c,e.writable=!0),Object.defineProperty(d,b,e),d[b]},q=function(a,b){var c,d;return"function"==typeof a&&(b=a,a="__global__"),c=a.split("."),d=c.shift(),c.length?e.call(this,d).middleware(c.join("."),b):(this.middlewares[d]||(this.middlewares[d]=[]),this.middlewares[d].push(b)),this},r={},s=function(a){var b;return"string"==typeof a?(b=r[a],b||(r[a]=b=new G,b.constant("BOTTLE_NAME",a)),b):new G},t=function(a){"string"==typeof a?delete r[a]:r={}},u=function(a,b){return b(a)},v=function(a,b){var c,d;if(c=a.split("."),!this.providerMap[a]||1!==c.length||this.container[a+"Provider"])return this.originalProviders[a]=b,this.providerMap[a]=!0,d=c.shift(),c.length?(e.call(this,d).provider(c.join("."),b),this):x.call(this,d,b)},w=function(a,b){return(a[b]||[]).concat(a.__global__||[])},x=function(b,c){var d,e,f,g,h;return this.id,f=this.container,g=this.decorators,h=this.middlewares,d=b+"Provider",e=Object.create(null),e[d]={configurable:!0,enumerable:!0,get:function(){var a=new c;return delete f[d],f[d]=a,a}},e[b]={configurable:!0,enumerable:!0,get:function(){var c,e=f[d];return e&&(c=w(g,b).reduce(u,e.$get(f)),delete f[d],delete f[b]),c===a?c:p(w(h,b),b,c,f)}},Object.defineProperties(f,e),this},y=function(b){var c=b.$value===a?b:b.$value;return this[b.$type||"service"].apply(this,[b.$name,c].concat(b.$inject||[]))},z=function(a){delete this.providerMap[a],delete this.container[a],delete this.container[a+"Provider"]},A=function(){var a=this.originalProviders;Object.keys(this.originalProviders).forEach(function(b){var c=b.split(".");c.length>1&&c.forEach(z,e.call(this,c[0])),z.call(this,b),this.provider(b,a[b])},this)},B=function(a){return this.deferred.forEach(function(b){b(a)}),this},C=function(a,b){var d=arguments.length>2?c.call(arguments,2):null,e=this;return l.call(this,a,function(){var a=b;if(d){var c=d.map(f,e.container);c.unshift(b),a=b.bind.apply(b,c)}return new a})},D=function(a,b){var c;return c=a.split("."),a=c.pop(),F.call(c.reduce(E,this.container),a,b),this},E=function(a,b){var c=a[b];return c||(c={},F.call(a,b,c)),c},F=function(a,b){Object.defineProperty(this,a,{configurable:!0,enumerable:!0,value:b,writable:!0})},G=function a(c){if(!(this instanceof a))return a.pop(c);this.id=b++,this.decorators={},this.middlewares={},this.nested={},this.providerMap={},this.originalProviders={},this.deferred=[],this.container={$decorator:i.bind(this),$register:y.bind(this),$list:o.bind(this)}};G.prototype={constant:g,decorator:i,defer:j,digest:k,factory:l,instanceFactory:m,list:o,middleware:q,provider:v,resetProviders:A,register:y,resolve:B,service:C,value:D},G.pop=s,G.clear=t,G.list=o;var H=G.config={strict:!1},I={function:!0,object:!0};!function(a){var b=I[typeof exports]&&exports&&!exports.nodeType&&exports,c=I[typeof module]&&module&&!module.nodeType&&module,d=c&&c.exports===b&&b,e=I[typeof global]&&global;!e||e.global!==e&&e.window!==e||(a=e),"function"==typeof define&&"object"==typeof define.amd&&define.amd?(a.Bottle=G,define(function(){return G})):b&&c?d?(c.exports=G).Bottle=G:b.Bottle=G:a.Bottle=G}(I[typeof window]&&window||this)}).call(this);
+(function(a){"use strict";var b=".",c="function",d="string",e="__global__",f="Provider",g=0,h=Array.prototype.slice,i=function(b,c){var d=b[c];if(d===a&&O.strict)throw new Error("Bottle was unable to resolve a service. `"+c+"` is undefined.");return d},j=function(a){var b;return this.nested[a]||(b=N.pop(),this.nested[a]=b,this.factory(a,function(){return b.container})),this.nested[a]},k=function(a){return a.split(b).reduce(i,this)},l=function(a,c){var d=a.split(b);return a=d.pop(),m.call(d.reduce(L,this.container),a,c),this},m=function(a,b){Object.defineProperty(this,a,{configurable:!1,enumerable:!0,value:b,writable:!1})},n=function(a,d){var f,g;return typeof a===c&&(d=a,a=e),f=a.split(b),g=f.shift(),f.length?j.call(this,g).decorator(f.join(b),d):(this.decorators[g]||(this.decorators[g]=[]),this.decorators[g].push(d)),this},o=function(a){return this.deferred.push(a),this},p=function(a){return(a||[]).map(k,this.container)},q=function(a,b){return A.call(this,a,function(){this.$get=b})},r=function(a,b){return q.call(this,a,function(a){return{instance:b.bind(b,a)}})},s=function(a){return!/^\$(?:decorator|register|list)$|Provider$/.test(a)},t=function(a){return Object.keys(a||this.container||{}).filter(s)},u=function(a,b,c,d){var e={configurable:!0,enumerable:!0};return a.length?e.get=function(){var b=0,d=function(e){if(e)throw e;a[b]&&a[b++](c,d)};return d(),c}:(e.value=c,e.writable=!0),Object.defineProperty(d,b,e),d[b]},v=function(a,d){var f,g;return typeof a===c&&(d=a,a=e),f=a.split(b),g=f.shift(),f.length?j.call(this,g).middleware(f.join(b),d):(this.middlewares[g]||(this.middlewares[g]=[]),this.middlewares[g].push(d)),this},w={},x=function(a){var b;return typeof a===d?(b=w[a],b||(w[a]=b=new N,b.constant("BOTTLE_NAME",a)),b):new N},y=function(a){typeof a===d?delete w[a]:w={}},z=function(a,b){return b(a)},A=function(a,c){var d,e;if(d=a.split(b),!this.providerMap[a]||1!==d.length||this.container[a+f])return this.originalProviders[a]=c,this.providerMap[a]=!0,e=d.shift(),d.length?(j.call(this,e).provider(d.join(b),c),this):C.call(this,e,c)},B=function(a,b){return(a[b]||[]).concat(a.__global__||[])},C=function(b,c){var d,e,g,h,i;return this.id,g=this.container,h=this.decorators,i=this.middlewares,d=b+f,e=Object.create(null),e[d]={configurable:!0,enumerable:!0,get:function(){var a=new c;return delete g[d],g[d]=a,a}},e[b]={configurable:!0,enumerable:!0,get:function(){var c,e=g[d];return e&&(c=B(h,b).reduce(z,e.$get(g)),delete g[d],delete g[b]),c===a?c:u(B(i,b),b,c,g)}},Object.defineProperties(g,e),this},D=function(b){var c=b.$value===a?b:b.$value;return this[b.$type||"service"].apply(this,[b.$name,c].concat(b.$inject||[]))},E=function(a){delete this.providerMap[a],delete this.container[a],delete this.container[a+f]},F=function(){var a=this.originalProviders;Object.keys(this.originalProviders).forEach(function(c){var d=c.split(b);d.length>1&&d.forEach(E,j.call(this,d[0])),E.call(this,c),this.provider(c,a[c])},this)},G=function(a){return this.deferred.forEach(function(b){b(a)}),this},H=function(a,b){return J.apply(this,[a,b,!1].concat(h.call(arguments,2)))},I=function(a,b){return J.apply(this,[a,b,!0].concat(h.call(arguments,2)))},J=function(a,b,c){var d=arguments.length>3?h.call(arguments,3):[],e=this;return q.call(this,a,function(){var a=b,f=d.map(k,e.container);return c?new(b.bind.apply(b,[null].concat(f))):a.apply(null,f)})},K=function(a,c){var d;return d=a.split(b),a=d.pop(),M.call(d.reduce(L,this.container),a,c),this},L=function(a,b){var c=a[b];return c||(c={},M.call(a,b,c)),c},M=function(a,b){Object.defineProperty(this,a,{configurable:!0,enumerable:!0,value:b,writable:!0})},N=function a(b){if(!(this instanceof a))return a.pop(b);this.id=g++,this.decorators={},this.middlewares={},this.nested={},this.providerMap={},this.originalProviders={},this.deferred=[],this.container={$decorator:n.bind(this),$register:D.bind(this),$list:t.bind(this)}};N.prototype={constant:l,decorator:n,defer:o,digest:p,factory:q,instanceFactory:r,list:t,middleware:v,provider:A,resetProviders:F,register:D,resolve:G,service:I,serviceFactory:H,value:K},N.pop=x,N.clear=y,N.list=t;var O=N.config={strict:!1},P={function:!0,object:!0};!function(a){var b=P[typeof exports]&&exports&&!exports.nodeType&&exports,d=P[typeof module]&&module&&!module.nodeType&&module,e=d&&d.exports===b&&b,f=P[typeof global]&&global;!f||f.global!==f&&f.window!==f||(a=f),typeof define===c&&"object"==typeof define.amd&&define.amd?(a.Bottle=N,define(function(){return N})):b&&d?e?(d.exports=N).Bottle=N:b.Bottle=N:a.Bottle=N}(P[typeof window]&&window||this)}).call(this);
//# sourceMappingURL=bottle.min.js.map
\ No newline at end of file
diff --git a/dist/bottle.min.js.map b/dist/bottle.min.js.map
index 86a5fbf..5035047 100644
--- a/dist/bottle.min.js.map
+++ b/dist/bottle.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["bottle.js"],"names":["undefined","id","slice","Array","prototype","getNested","obj","prop","service","globalConfig","strict","Error","getNestedBottle","name","bottle","this","nested","Bottle","pop","factory","container","getNestedService","fullname","split","reduce","constant","value","parts","defineConstant","call","setValueObject","Object","defineProperty","configurable","enumerable","writable","decorator","func","shift","length","join","decorators","push","defer","deferred","digest","services","map","Factory","provider","$get","instanceFactory","instance","bind","byMethod","test","list","keys","filter","applyMiddleware","middleware","descriptor","get","index","next","err","middlewares","bottles","clear","reducer","Provider","providerMap","originalProviders","createProvider","getWithGlobal","collection","concat","__global__","providerName","properties","create","defineProperties","register","Obj","$value","$type","apply","$name","$inject","removeProviderMap","resetProviders","providers","forEach","resolve","data","Service","deps","arguments","ServiceCopy","args","unshift","val","defineValue","nestedContainer","$decorator","$register","$list","config","objectTypes","function","object","root","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","window","define","amd"],"mappings":"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","file":"bottle.min.js"}
\ No newline at end of file
+{"version":3,"sources":["bottle.js"],"names":["undefined","DELIMITER","FUNCTION_TYPE","STRING_TYPE","GLOBAL_NAME","PROVIDER_SUFFIX","id","slice","Array","prototype","getNested","obj","prop","service","globalConfig","strict","Error","getNestedBottle","name","bottle","this","nested","Bottle","pop","factory","container","getNestedService","fullname","split","reduce","constant","value","parts","defineConstant","call","setValueObject","Object","defineProperty","configurable","enumerable","writable","decorator","func","shift","length","join","decorators","push","defer","deferred","digest","services","map","Factory","provider","$get","instanceFactory","instance","bind","byMethod","test","list","keys","filter","applyMiddleware","middleware","descriptor","get","index","next","err","middlewares","bottles","clear","reducer","Provider","providerMap","originalProviders","createProvider","getWithGlobal","collection","concat","__global__","providerName","properties","create","defineProperties","register","Obj","$value","$type","apply","$name","$inject","removeProviderMap","resetProviders","providers","forEach","resolve","data","serviceFactory","factoryService","createService","arguments","Service","isClass","deps","args","val","defineValue","nestedContainer","$decorator","$register","$list","config","objectTypes","function","object","root","freeExports","exports","nodeType","freeModule","module","moduleExports","freeGlobal","global","window","define","amd"],"mappings":"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","file":"bottle.min.js"}
\ No newline at end of file
diff --git a/grunt/tasks/bump.js b/grunt/tasks/bump.js
index 501aaa1..453ce14 100644
--- a/grunt/tasks/bump.js
+++ b/grunt/tasks/bump.js
@@ -5,6 +5,14 @@ module.exports = function(grunt) {
grunt.fatal('Must provide `tag` param.');
return false;
}
+
+ /**
+ * Normalizing 'v' part of tag so I don't have to remember the format.
+ */
+ if (tag[0] === 'v') {
+ tag = tag.slice(1);
+ }
+
['bower.json', 'package.json'].forEach(function(filename) {
var data = grunt.file.readJSON(filename);
data.version = tag;
diff --git a/package.json b/package.json
index 534c101..265bcbb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "bottlejs",
- "version": "1.6.3",
+ "version": "1.7.0",
"description": "A powerful dependency injection micro container",
"main": "dist/bottle.js",
"typings": "dist/bottle.d.ts",