peppermint-di
Advanced tools
Comparing version 1.0.4 to 1.0.5
# Change Log | ||
## [1.0.5 - 2018-05-19](https://github.com/alonrbar/peppermint-di/tree/v1.0.5) | ||
### Fixed | ||
- Change webpack configuration for UMD bundling to workaround a bug in Webpack 4 (see: https://stackoverflow.com/questions/49111086/webpack-4-universal-library-target). | ||
- Fix ModuleConcatenation bailout. | ||
## [1.0.4 - 2018-05-19](https://github.com/alonrbar/peppermint-di/tree/v1.0.4) | ||
@@ -4,0 +11,0 @@ |
@@ -10,3 +10,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
root["peppermint-di"] = factory(); | ||
})(window, function() { | ||
})(this, function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -85,20 +85,119 @@ /******/ // The module cache | ||
/***/ "./src/container.ts": | ||
/*!**************************!*\ | ||
!*** ./src/container.ts ***! | ||
\**************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
/***/ "./src/index.ts": | ||
/*!**********************************!*\ | ||
!*** ./src/index.ts + 8 modules ***! | ||
\**********************************/ | ||
/*! exports provided: Container, i, injectable, ResolveOptions, NestedError, ResolveError, TypeInferenceError */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); | ||
var errors_1 = __webpack_require__(/*! ./errors */ "./src/errors/index.ts"); | ||
var resolveOptions_1 = __webpack_require__(/*! ./resolveOptions */ "./src/resolveOptions.ts"); | ||
// CONCATENATED MODULE: ./src/errors/nestedError.ts | ||
var __extends = (undefined && undefined.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var NestedError = (function (_super) { | ||
__extends(NestedError, _super); | ||
function NestedError(message, innerError) { | ||
var _this = _super.call(this, message) || this; | ||
_this.stack = NestedError.createStack(_this.stack, innerError); | ||
Object.setPrototypeOf(_this, NestedError.prototype); | ||
return _this; | ||
} | ||
NestedError.createStack = function (myStack, innerError) { | ||
if (!innerError) | ||
return myStack; | ||
myStack += '\n------------------------------------------------\n'; | ||
myStack += 'Inner Error: '; | ||
if (innerError instanceof Error) { | ||
myStack += innerError.stack; | ||
} | ||
else { | ||
myStack += innerError.toString(); | ||
} | ||
return myStack; | ||
}; | ||
return NestedError; | ||
}(Error)); | ||
// CONCATENATED MODULE: ./src/errors/resolveError.ts | ||
var resolveError_extends = (undefined && undefined.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var ResolveError = (function (_super) { | ||
resolveError_extends(ResolveError, _super); | ||
function ResolveError(key, innerErr) { | ||
var _this = _super.call(this, "Failed to resolve '" + key + "'.", innerErr) || this; | ||
Object.setPrototypeOf(_this, ResolveError.prototype); | ||
return _this; | ||
} | ||
return ResolveError; | ||
}(NestedError)); | ||
// CONCATENATED MODULE: ./src/errors/typeInferenceError.ts | ||
var typeInferenceError_extends = (undefined && undefined.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
var TypeInferenceError = (function (_super) { | ||
typeInferenceError_extends(TypeInferenceError, _super); | ||
function TypeInferenceError(message) { | ||
var _this = _super.call(this, message) || this; | ||
Object.setPrototypeOf(_this, TypeInferenceError.prototype); | ||
return _this; | ||
} | ||
return TypeInferenceError; | ||
}(Error)); | ||
// CONCATENATED MODULE: ./src/errors/index.ts | ||
// EXTERNAL MODULE: external "reflect-metadata" | ||
var external_reflect_metadata_ = __webpack_require__("reflect-metadata"); | ||
// CONCATENATED MODULE: ./src/resolveOptions.ts | ||
var ResolveOptions = (function () { | ||
function ResolveOptions() { | ||
this.optionalParameters = false; | ||
this.constructUnregistered = true; | ||
this.params = {}; | ||
} | ||
return ResolveOptions; | ||
}()); | ||
// CONCATENATED MODULE: ./src/container.ts | ||
var defaultsDeep = __webpack_require__(/*! lodash.defaultsdeep */ "lodash.defaultsdeep"); | ||
function emptyLogger(msg) { | ||
} | ||
var Container = (function () { | ||
var container_Container = (function () { | ||
function Container(logger) { | ||
@@ -208,3 +307,3 @@ this.factories = new Map(); | ||
var keyStr = this.getKeyString(key); | ||
options = defaultsDeep(options, new resolveOptions_1.ResolveOptions()); | ||
options = defaultsDeep(options, new ResolveOptions()); | ||
var fromParams = options.params[keyStr]; | ||
@@ -238,3 +337,3 @@ if (fromParams !== undefined) { | ||
} | ||
throw new errors_1.ResolveError(keyStr, new Error('Dependency is not registered.')); | ||
throw new ResolveError(keyStr, new Error('Dependency is not registered.')); | ||
}; | ||
@@ -247,3 +346,3 @@ Container.prototype.resolveFactory = function (key, factory) { | ||
var keyStr = this.getKeyString(key); | ||
throw new errors_1.ResolveError(keyStr, e); | ||
throw new ResolveError(keyStr, e); | ||
} | ||
@@ -258,3 +357,3 @@ }; | ||
catch (e) { | ||
throw new errors_1.ResolveError(keyStr, e); | ||
throw new ResolveError(keyStr, e); | ||
} | ||
@@ -265,3 +364,3 @@ try { | ||
catch (e) { | ||
throw new errors_1.ResolveError(keyStr, e); | ||
throw new ResolveError(keyStr, e); | ||
} | ||
@@ -296,3 +395,3 @@ this.potentialSingletons.delete(key); | ||
catch (e) { | ||
throw new errors_1.ResolveError(func.name || '<anonymous>', e); | ||
throw new ResolveError(func.name || '<anonymous>', e); | ||
} | ||
@@ -312,3 +411,3 @@ dependencies.push(dependency); | ||
if (!type) | ||
throw new errors_1.TypeInferenceError("Can not infer type of argument in index " + index + " of the function '" + func.name + "'."); | ||
throw new TypeInferenceError("Can not infer type of argument in index " + index + " of the function '" + func.name + "'."); | ||
if (type.name !== 'Object' && type.name !== 'String') | ||
@@ -357,160 +456,6 @@ return type; | ||
}()); | ||
exports.Container = Container; | ||
/***/ }), | ||
// CONCATENATED MODULE: ./src/i.ts | ||
/***/ "./src/errors/index.ts": | ||
/*!*****************************!*\ | ||
!*** ./src/errors/index.ts ***! | ||
\*****************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
function __export(m) { | ||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__export(__webpack_require__(/*! ./nestedError */ "./src/errors/nestedError.ts")); | ||
__export(__webpack_require__(/*! ./resolveError */ "./src/errors/resolveError.ts")); | ||
__export(__webpack_require__(/*! ./typeInferenceError */ "./src/errors/typeInferenceError.ts")); | ||
/***/ }), | ||
/***/ "./src/errors/nestedError.ts": | ||
/*!***********************************!*\ | ||
!*** ./src/errors/nestedError.ts ***! | ||
\***********************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var NestedError = (function (_super) { | ||
__extends(NestedError, _super); | ||
function NestedError(message, innerError) { | ||
var _this = _super.call(this, message) || this; | ||
_this.stack = NestedError.createStack(_this.stack, innerError); | ||
Object.setPrototypeOf(_this, NestedError.prototype); | ||
return _this; | ||
} | ||
NestedError.createStack = function (myStack, innerError) { | ||
if (!innerError) | ||
return myStack; | ||
myStack += '\n------------------------------------------------\n'; | ||
myStack += 'Inner Error: '; | ||
if (innerError instanceof Error) { | ||
myStack += innerError.stack; | ||
} | ||
else { | ||
myStack += innerError.toString(); | ||
} | ||
return myStack; | ||
}; | ||
return NestedError; | ||
}(Error)); | ||
exports.NestedError = NestedError; | ||
/***/ }), | ||
/***/ "./src/errors/resolveError.ts": | ||
/*!************************************!*\ | ||
!*** ./src/errors/resolveError.ts ***! | ||
\************************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var nestedError_1 = __webpack_require__(/*! ./nestedError */ "./src/errors/nestedError.ts"); | ||
var ResolveError = (function (_super) { | ||
__extends(ResolveError, _super); | ||
function ResolveError(key, innerErr) { | ||
var _this = _super.call(this, "Failed to resolve '" + key + "'.", innerErr) || this; | ||
Object.setPrototypeOf(_this, ResolveError.prototype); | ||
return _this; | ||
} | ||
return ResolveError; | ||
}(nestedError_1.NestedError)); | ||
exports.ResolveError = ResolveError; | ||
/***/ }), | ||
/***/ "./src/errors/typeInferenceError.ts": | ||
/*!******************************************!*\ | ||
!*** ./src/errors/typeInferenceError.ts ***! | ||
\******************************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var __extends = (this && this.__extends) || (function () { | ||
var extendStatics = Object.setPrototypeOf || | ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
return function (d, b) { | ||
extendStatics(d, b); | ||
function __() { this.constructor = d; } | ||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
}; | ||
})(); | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var TypeInferenceError = (function (_super) { | ||
__extends(TypeInferenceError, _super); | ||
function TypeInferenceError(message) { | ||
var _this = _super.call(this, message) || this; | ||
Object.setPrototypeOf(_this, TypeInferenceError.prototype); | ||
return _this; | ||
} | ||
return TypeInferenceError; | ||
}(Error)); | ||
exports.TypeInferenceError = TypeInferenceError; | ||
/***/ }), | ||
/***/ "./src/i.ts": | ||
/*!******************!*\ | ||
!*** ./src/i.ts ***! | ||
\******************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); | ||
function i(interfaceSymbol) { | ||
@@ -523,70 +468,22 @@ return function (target, parameterName, parameterIndex) { | ||
} | ||
exports.i = i; | ||
/***/ }), | ||
/***/ "./src/index.ts": | ||
/*!**********************!*\ | ||
!*** ./src/index.ts ***! | ||
\**********************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
function __export(m) { | ||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
// CONCATENATED MODULE: ./src/injectable.ts | ||
function injectable(constructor) { | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__export(__webpack_require__(/*! ./errors */ "./src/errors/index.ts")); | ||
__export(__webpack_require__(/*! ./container */ "./src/container.ts")); | ||
__export(__webpack_require__(/*! ./i */ "./src/i.ts")); | ||
__export(__webpack_require__(/*! ./injectable */ "./src/injectable.ts")); | ||
__export(__webpack_require__(/*! ./resolveOptions */ "./src/resolveOptions.ts")); | ||
// CONCATENATED MODULE: ./src/index.ts | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "NestedError", function() { return NestedError; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "ResolveError", function() { return ResolveError; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "TypeInferenceError", function() { return TypeInferenceError; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "Container", function() { return container_Container; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "i", function() { return i; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "injectable", function() { return injectable; }); | ||
/* concated harmony reexport */__webpack_require__.d(__webpack_exports__, "ResolveOptions", function() { return ResolveOptions; }); | ||
/***/ }), | ||
/***/ "./src/injectable.ts": | ||
/*!***************************!*\ | ||
!*** ./src/injectable.ts ***! | ||
\***************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
function injectable(constructor) { | ||
} | ||
exports.injectable = injectable; | ||
/***/ }), | ||
/***/ "./src/resolveOptions.ts": | ||
/*!*******************************!*\ | ||
!*** ./src/resolveOptions.ts ***! | ||
\*******************************/ | ||
/*! no static exports found */ | ||
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var ResolveOptions = (function () { | ||
function ResolveOptions() { | ||
this.optionalParameters = false; | ||
this.constructUnregistered = true; | ||
this.params = {}; | ||
} | ||
return ResolveOptions; | ||
}()); | ||
exports.ResolveOptions = ResolveOptions; | ||
/***/ }), | ||
@@ -593,0 +490,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("peppermint-di",[],e):"object"==typeof exports?exports["peppermint-di"]=e():t["peppermint-di"]=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=11)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){return function(){this.optionalParameters=!1,this.constructUnregistered=!0,this.params={}}}();e.ResolveOptions=r},function(t,e){t.exports=require("reflect-metadata")},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(n,r){var o=t.call(this,n)||this;return o.stack=e.createStack(o.stack,r),Object.setPrototypeOf(o,e.prototype),o}return o(e,t),e.createStack=function(t,e){return e?(t+="\n------------------------------------------------\n",t+="Inner Error: ",e instanceof Error?t+=e.stack:t+=e.toString(),t):t},e}(Error);e.NestedError=i},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(2)),r(n(9)),r(n(8))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.injectable=function(t){}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(1),e.i=function(t){return function(e,n,r){var o=Reflect.getMetadata("design:paramtypes",e);o[r]=t,Reflect.defineMetadata("design:paramtypes",o,e)}}},function(t,e){t.exports=require("lodash.defaultsdeep")},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(1);var r=n(3),o=n(0),i=n(6);function s(t){}var c=function(){function t(t){this.factories=new Map,this.potentialSingletons=new Map,this.singletons=new Map,this.logger=t||s}return Object.defineProperty(t,"canReflect",{get:function(){if(void 0===t._canReflect)try{t._canReflect=!(!Reflect||!Reflect.construct)}catch(e){t._canReflect=!1}return t._canReflect},enumerable:!0,configurable:!0}),t.prototype.register=function(t,e){var n=this;this.validateKey(t);var r=this.getKeyString(t);if(null!==e&&void 0!==e||"function"!=typeof t){if(!e)throw new Error("Missing argument 'type'.");if("function"!=typeof e)throw new Error("Invalid argument 'type'. Constructor function expected.");this.logger("Registering '"+r+"' (type as constructor)"),this.factories.set(t,function(){return n.resolveCTor(e,null)})}else this.logger("Registering '"+r+"' (key as constructor)"),this.factories.set(t,function(){return n.resolveCTor(t,null)})},t.prototype.registerFactory=function(t,e){if(this.validateKey(t),"function"!=typeof e)throw new Error("Invalid argument '"+e+"'. Factory function expected.");var n=this.getKeyString(t);this.logger("Registering '"+n+"' (factory callback)"),this.factories.set(t,e)},t.prototype.registerSingle=function(t,e){var n=this;this.validateKey(t);var r=this.getKeyString(t);if(null!==e&&void 0!==e||"function"!=typeof t)if("object"==typeof e)this.logger("Registering '"+r+"' as singleton (value as instance)"),this.singletons.set(t,e);else{if("function"!=typeof e)throw new Error("Invalid argument 'value'. Expected object or function.");this.logger("Registering '"+r+"' as singleton (value as constructor)"),this.potentialSingletons.set(t,function(){return n.resolveCTor(e,null)})}else this.logger("Registering '"+r+"' as singleton (key as constructor)"),this.potentialSingletons.set(t,function(){return n.resolveCTor(t,null)})},t.prototype.registerSingleFactory=function(t,e){if(this.validateKey(t),"function"!=typeof e)throw new Error("Invalid argument '"+e+"'. Factory function expected.");var n=this.getKeyString(t);this.logger("Registering '"+n+"' as singleton (factory callback)"),this.potentialSingletons.set(t,e)},t.prototype.get=function(t,e){return this.validateKey(t),this.resolveSingleDependency(t,e)},t.prototype.call=function(t,e,n){var r=this.resolveDependencies(t,n);return t.apply(e,r)},t.prototype.validateKey=function(t){if("string"!=typeof t&&"function"!=typeof t&&"symbol"!=typeof t)throw new Error("Invalid argument 'key'. Expected string, symbol or function. Received: "+JSON.stringify(t)+".")},t.prototype.getKeyString=function(t){return"string"==typeof t?t:"function"==typeof t?t.name:t.toString()},t.prototype.resolveSingleDependency=function(t,e){var n=this.getKeyString(t),s=(e=i(e,new o.ResolveOptions)).params[n];if(void 0!==s)return this.logger("Resolving '"+n+"' from params"),s;var c=this.factories.get(t);if(void 0!==c)return this.logger("Resolving '"+n+"' from internal registry"),this.resolveFactory(t,c);var a=this.singletons.get(t);if(void 0!==a)return this.logger("Resolving '"+n+"' from internal registry (singleton)"),a;var u=this.potentialSingletons.get(t);if(void 0!==u)return this.logger("Resolving '"+n+"' from internal registry (singleton factory)"),this.resolveSingletonFactory(t,u);if(e.constructUnregistered&&"function"==typeof t)return this.logger("Resolving '"+n+"' by invoking as constructor"),this.resolveCTor(t,e);if(!e.optionalParameters)throw new r.ResolveError(n,new Error("Dependency is not registered."));this.logger("Resolving '"+n+"' as optional parameter (undefined)")},t.prototype.resolveFactory=function(t,e){try{return e()}catch(e){var n=this.getKeyString(t);throw new r.ResolveError(n,e)}},t.prototype.resolveSingletonFactory=function(t,e){var n,o=this.getKeyString(t);try{n=e()}catch(t){throw new r.ResolveError(o,t)}try{this.singletons.set(t,n)}catch(t){throw new r.ResolveError(o,t)}return this.potentialSingletons.delete(t),n},t.prototype.resolveCTor=function(e,n){var r=this.resolveDependencies(e,n);if(t.canReflect)return Reflect.construct(e,r);var o=function(){e.apply(this,r)};return o.prototype=e.prototype,new o},t.prototype.resolveDependencies=function(t,e){if("function"!=typeof t)throw new Error("Invalid argument 'func'. Expected function.");for(var n=[],o=0,i=this.getArgumentKeys(t);o<i.length;o++){var s=i[o],c=void 0;try{c=this.resolveSingleDependency(s,e)}catch(e){throw new r.ResolveError(t.name||"<anonymous>",e)}n.push(c)}return n},t.prototype.getArgumentKeys=function(t){var e=this.getArgumentNames(t),n=this.getArgumentTypes(t);if(!n||!n.length)return e;if(e.length!==n.length)throw new Error("Failed reflecting function arguments.");var o=n.map(function(n,o){if(!n)throw new r.TypeInferenceError("Can not infer type of argument in index "+o+" of the function '"+t.name+"'.");return"Object"!==n.name&&"String"!==n.name?n:e[o]}),i=o.map(function(t){return"function"==typeof t?t.name:t});return this.logger("Arguments of '"+t.name+"': "+JSON.stringify(i)),o},t.prototype.getArgumentNames=function(t){var e,n=t.toString().match(/^function\s*?[^\(]*?\(\s*?([^\)]*?)\)/m),r=t.toString().match(/^class[\s\S]*?constructor\s*?[^\(]*?\(\s*?([^\)]*?)\)/m);if(r&&r.length)this.logger("Function '"+t.name+"' declared as es5 class"),e=r[1];else{if(!n||!n.length)return this.logger("Could not detect arguments of '"+t.name+"'"),[];this.logger("Function '"+t.name+"' declared as standard function"),e=n[1]}return e=e.split(",").map(function(t){return t.trim()}).filter(function(t){return""!==t})},t.prototype.getArgumentTypes=function(e){return t.canReflect?Reflect.getMetadata("design:paramtypes",e):[]},t}();e.Container=c},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return o(e,t),e}(Error);e.TypeInferenceError=i},function(t,e,n){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(n,r){var o=t.call(this,"Failed to resolve '"+n+"'.",r)||this;return Object.setPrototypeOf(o,e.prototype),o}return o(e,t),e}(n(2).NestedError);e.ResolveError=i},function(t,e,n){"use strict";function r(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),r(n(3)),r(n(7)),r(n(5)),r(n(4)),r(n(0))},function(t,e,n){t.exports=n(10)}])}); | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("peppermint-di",[],e):"object"==typeof exports?exports["peppermint-di"]=e():t["peppermint-di"]=e()}(this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=3)}([function(t,e){t.exports=require("reflect-metadata")},function(t,e,n){"use strict";n.r(e);var r,o=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=function(t){function e(n,r){var o=t.call(this,n)||this;return o.stack=e.createStack(o.stack,r),Object.setPrototypeOf(o,e.prototype),o}return o(e,t),e.createStack=function(t,e){return e?(t+="\n------------------------------------------------\n",t+="Inner Error: ",e instanceof Error?t+=e.stack:t+=e.toString(),t):t},e}(Error),s=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),c=function(t){function e(n,r){var o=t.call(this,"Failed to resolve '"+n+"'.",r)||this;return Object.setPrototypeOf(o,e.prototype),o}return s(e,t),e}(i),a=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=function(t){function e(n){var r=t.call(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return a(e,t),e}(Error),f=(n(0),function(){return function(){this.optionalParameters=!1,this.constructUnregistered=!0,this.params={}}}()),l=n(2);function p(t){}var g=function(){function t(t){this.factories=new Map,this.potentialSingletons=new Map,this.singletons=new Map,this.logger=t||p}return Object.defineProperty(t,"canReflect",{get:function(){if(void 0===t._canReflect)try{t._canReflect=!(!Reflect||!Reflect.construct)}catch(e){t._canReflect=!1}return t._canReflect},enumerable:!0,configurable:!0}),t.prototype.register=function(t,e){var n=this;this.validateKey(t);var r=this.getKeyString(t);if(null!==e&&void 0!==e||"function"!=typeof t){if(!e)throw new Error("Missing argument 'type'.");if("function"!=typeof e)throw new Error("Invalid argument 'type'. Constructor function expected.");this.logger("Registering '"+r+"' (type as constructor)"),this.factories.set(t,function(){return n.resolveCTor(e,null)})}else this.logger("Registering '"+r+"' (key as constructor)"),this.factories.set(t,function(){return n.resolveCTor(t,null)})},t.prototype.registerFactory=function(t,e){if(this.validateKey(t),"function"!=typeof e)throw new Error("Invalid argument '"+e+"'. Factory function expected.");var n=this.getKeyString(t);this.logger("Registering '"+n+"' (factory callback)"),this.factories.set(t,e)},t.prototype.registerSingle=function(t,e){var n=this;this.validateKey(t);var r=this.getKeyString(t);if(null!==e&&void 0!==e||"function"!=typeof t)if("object"==typeof e)this.logger("Registering '"+r+"' as singleton (value as instance)"),this.singletons.set(t,e);else{if("function"!=typeof e)throw new Error("Invalid argument 'value'. Expected object or function.");this.logger("Registering '"+r+"' as singleton (value as constructor)"),this.potentialSingletons.set(t,function(){return n.resolveCTor(e,null)})}else this.logger("Registering '"+r+"' as singleton (key as constructor)"),this.potentialSingletons.set(t,function(){return n.resolveCTor(t,null)})},t.prototype.registerSingleFactory=function(t,e){if(this.validateKey(t),"function"!=typeof e)throw new Error("Invalid argument '"+e+"'. Factory function expected.");var n=this.getKeyString(t);this.logger("Registering '"+n+"' as singleton (factory callback)"),this.potentialSingletons.set(t,e)},t.prototype.get=function(t,e){return this.validateKey(t),this.resolveSingleDependency(t,e)},t.prototype.call=function(t,e,n){var r=this.resolveDependencies(t,n);return t.apply(e,r)},t.prototype.validateKey=function(t){if("string"!=typeof t&&"function"!=typeof t&&"symbol"!=typeof t)throw new Error("Invalid argument 'key'. Expected string, symbol or function. Received: "+JSON.stringify(t)+".")},t.prototype.getKeyString=function(t){return"string"==typeof t?t:"function"==typeof t?t.name:t.toString()},t.prototype.resolveSingleDependency=function(t,e){var n=this.getKeyString(t),r=(e=l(e,new f)).params[n];if(void 0!==r)return this.logger("Resolving '"+n+"' from params"),r;var o=this.factories.get(t);if(void 0!==o)return this.logger("Resolving '"+n+"' from internal registry"),this.resolveFactory(t,o);var i=this.singletons.get(t);if(void 0!==i)return this.logger("Resolving '"+n+"' from internal registry (singleton)"),i;var s=this.potentialSingletons.get(t);if(void 0!==s)return this.logger("Resolving '"+n+"' from internal registry (singleton factory)"),this.resolveSingletonFactory(t,s);if(e.constructUnregistered&&"function"==typeof t)return this.logger("Resolving '"+n+"' by invoking as constructor"),this.resolveCTor(t,e);if(!e.optionalParameters)throw new c(n,new Error("Dependency is not registered."));this.logger("Resolving '"+n+"' as optional parameter (undefined)")},t.prototype.resolveFactory=function(t,e){try{return e()}catch(e){var n=this.getKeyString(t);throw new c(n,e)}},t.prototype.resolveSingletonFactory=function(t,e){var n,r=this.getKeyString(t);try{n=e()}catch(t){throw new c(r,t)}try{this.singletons.set(t,n)}catch(t){throw new c(r,t)}return this.potentialSingletons.delete(t),n},t.prototype.resolveCTor=function(e,n){var r=this.resolveDependencies(e,n);if(t.canReflect)return Reflect.construct(e,r);var o=function(){e.apply(this,r)};return o.prototype=e.prototype,new o},t.prototype.resolveDependencies=function(t,e){if("function"!=typeof t)throw new Error("Invalid argument 'func'. Expected function.");for(var n=[],r=0,o=this.getArgumentKeys(t);r<o.length;r++){var i=o[r],s=void 0;try{s=this.resolveSingleDependency(i,e)}catch(e){throw new c(t.name||"<anonymous>",e)}n.push(s)}return n},t.prototype.getArgumentKeys=function(t){var e=this.getArgumentNames(t),n=this.getArgumentTypes(t);if(!n||!n.length)return e;if(e.length!==n.length)throw new Error("Failed reflecting function arguments.");var r=n.map(function(n,r){if(!n)throw new u("Can not infer type of argument in index "+r+" of the function '"+t.name+"'.");return"Object"!==n.name&&"String"!==n.name?n:e[r]}),o=r.map(function(t){return"function"==typeof t?t.name:t});return this.logger("Arguments of '"+t.name+"': "+JSON.stringify(o)),r},t.prototype.getArgumentNames=function(t){var e,n=t.toString().match(/^function\s*?[^\(]*?\(\s*?([^\)]*?)\)/m),r=t.toString().match(/^class[\s\S]*?constructor\s*?[^\(]*?\(\s*?([^\)]*?)\)/m);if(r&&r.length)this.logger("Function '"+t.name+"' declared as es5 class"),e=r[1];else{if(!n||!n.length)return this.logger("Could not detect arguments of '"+t.name+"'"),[];this.logger("Function '"+t.name+"' declared as standard function"),e=n[1]}return e=e.split(",").map(function(t){return t.trim()}).filter(function(t){return""!==t})},t.prototype.getArgumentTypes=function(e){return t.canReflect?Reflect.getMetadata("design:paramtypes",e):[]},t}();function y(t){return function(e,n,r){var o=Reflect.getMetadata("design:paramtypes",e);o[r]=t,Reflect.defineMetadata("design:paramtypes",o,e)}}function h(t){}n.d(e,"NestedError",function(){return i}),n.d(e,"ResolveError",function(){return c}),n.d(e,"TypeInferenceError",function(){return u}),n.d(e,"Container",function(){return g}),n.d(e,"i",function(){return y}),n.d(e,"injectable",function(){return h}),n.d(e,"ResolveOptions",function(){return f})},function(t,e){t.exports=require("lodash.defaultsdeep")},function(t,e,n){t.exports=n(1)}])}); |
{ | ||
"name": "peppermint-di", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "Dependency injection container for TypeScript and JavaScript", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Sorry, the diff of this file is not supported yet
95050
1052