@makerdao/services-core
Advanced tools
Comparing version 0.9.9 to 0.10.0
@@ -27,2 +27,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -32,4 +34,2 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
@@ -45,47 +45,57 @@ | ||
var ServiceAlreadyRegisteredError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
var ServiceAlreadyRegisteredError = /*#__PURE__*/function (_Error) { | ||
(0, _inherits2["default"])(ServiceAlreadyRegisteredError, _Error); | ||
var _super = _createSuper(ServiceAlreadyRegisteredError); | ||
function ServiceAlreadyRegisteredError(name) { | ||
(0, _classCallCheck2["default"])(this, ServiceAlreadyRegisteredError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceAlreadyRegisteredError).call(this, 'Service with name \'' + name + '\' is already registered with this container.')); | ||
return _super.call(this, 'Service with name \'' + name + '\' is already registered with this container.'); | ||
} | ||
return ServiceAlreadyRegisteredError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
exports.ServiceAlreadyRegisteredError = ServiceAlreadyRegisteredError; | ||
var ServiceNotFoundError = | ||
/*#__PURE__*/ | ||
function (_Error2) { | ||
var ServiceNotFoundError = /*#__PURE__*/function (_Error2) { | ||
(0, _inherits2["default"])(ServiceNotFoundError, _Error2); | ||
var _super2 = _createSuper(ServiceNotFoundError); | ||
function ServiceNotFoundError(name) { | ||
(0, _classCallCheck2["default"])(this, ServiceNotFoundError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceNotFoundError).call(this, 'Service with name \'' + name + '\' cannot be found in this container.')); | ||
return _super2.call(this, 'Service with name \'' + name + '\' cannot be found in this container.'); | ||
} | ||
return ServiceNotFoundError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
exports.ServiceNotFoundError = ServiceNotFoundError; | ||
var ExtractedServiceError = | ||
/*#__PURE__*/ | ||
function (_Error3) { | ||
var ExtractedServiceError = /*#__PURE__*/function (_Error3) { | ||
(0, _inherits2["default"])(ExtractedServiceError, _Error3); | ||
var _super3 = _createSuper(ExtractedServiceError); | ||
function ExtractedServiceError(name) { | ||
(0, _classCallCheck2["default"])(this, ExtractedServiceError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ExtractedServiceError).call(this, 'Service with name \'' + name + '\' has been extracted from the core dai.js library into a discrete plugin. Please refer to the documentation here to install and add it to your configuration: \n\n https://github.com/makerdao/dai.js/wiki/Basic-Usage-(Plugins) \n\n')); | ||
return _super3.call(this, 'Service with name \'' + name + '\' has been extracted from the core dai.js library into a discrete plugin. Please refer to the documentation here to install and add it to your configuration: \n\n https://github.com/makerdao/dai.js/wiki/Basic-Usage-(Plugins) \n\n'); | ||
} | ||
return ExtractedServiceError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); // exported just for testing | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); // exported just for testing | ||
@@ -98,6 +108,6 @@ | ||
var servicesWithoutDeps = []; | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
var _iterator = _createForOfIteratorHelper(services), | ||
_step; | ||
try { | ||
@@ -118,18 +128,9 @@ var _loop = function _loop() { | ||
for (var _iterator = services[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
for (_iterator.s(); !(_step = _iterator.n()).done;) { | ||
_loop(); | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
_iterator.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator["return"] != null) { | ||
_iterator["return"](); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
_iterator.f(); | ||
} | ||
@@ -140,5 +141,3 @@ | ||
var Container = | ||
/*#__PURE__*/ | ||
function () { | ||
var Container = /*#__PURE__*/function () { | ||
function Container() { | ||
@@ -198,16 +197,16 @@ (0, _classCallCheck2["default"])(this, Container); | ||
var services = (0, _values["default"])(this._services); | ||
var _iteratorNormalCompletion2 = true; | ||
var _didIteratorError2 = false; | ||
var _iteratorError2 = undefined; | ||
var _iterator2 = _createForOfIteratorHelper(services), | ||
_step2; | ||
try { | ||
for (var _iterator2 = services[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | ||
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { | ||
var service = _step2.value; | ||
var manager = service.manager(); | ||
var _iteratorNormalCompletion3 = true; | ||
var _didIteratorError3 = false; | ||
var _iteratorError3 = undefined; | ||
var _iterator3 = _createForOfIteratorHelper(manager.dependencies()), | ||
_step3; | ||
try { | ||
for (var _iterator3 = manager.dependencies()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { | ||
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { | ||
var name = _step3.value; | ||
@@ -219,29 +218,11 @@ var dep = this._services[name]; | ||
} catch (err) { | ||
_didIteratorError3 = true; | ||
_iteratorError3 = err; | ||
_iterator3.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { | ||
_iterator3["return"](); | ||
} | ||
} finally { | ||
if (_didIteratorError3) { | ||
throw _iteratorError3; | ||
} | ||
} | ||
_iterator3.f(); | ||
} | ||
} | ||
} catch (err) { | ||
_didIteratorError2 = true; | ||
_iteratorError2 = err; | ||
_iterator2.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { | ||
_iterator2["return"](); | ||
} | ||
} finally { | ||
if (_didIteratorError2) { | ||
throw _iteratorError2; | ||
} | ||
} | ||
_iterator2.f(); | ||
} | ||
@@ -277,6 +258,4 @@ } | ||
value: function () { | ||
var _waitForServices2 = (0, _asyncToGenerator2["default"])( | ||
/*#__PURE__*/ | ||
_regenerator["default"].mark(function _callee(callback) { | ||
var _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, name, service; | ||
var _waitForServices2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(callback) { | ||
var _iterator4, _step4, name, service; | ||
@@ -291,11 +270,10 @@ return _regenerator["default"].wrap(function _callee$(_context) { | ||
_iteratorNormalCompletion4 = true; | ||
_didIteratorError4 = false; | ||
_iteratorError4 = undefined; | ||
_context.prev = 4; | ||
_iterator4 = this._orderedServiceNames[Symbol.iterator](); | ||
_iterator4 = _createForOfIteratorHelper(this._orderedServiceNames); | ||
_context.prev = 2; | ||
case 6: | ||
if (_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done) { | ||
_context.next = 16; | ||
_iterator4.s(); | ||
case 4: | ||
if ((_step4 = _iterator4.n()).done) { | ||
_context.next = 13; | ||
break; | ||
@@ -308,3 +286,3 @@ } | ||
if (service) { | ||
_context.next = 11; | ||
_context.next = 9; | ||
break; | ||
@@ -315,46 +293,28 @@ } | ||
case 11: | ||
_context.next = 13; | ||
case 9: | ||
_context.next = 11; | ||
return callback(this._services[name]); | ||
case 13: | ||
_iteratorNormalCompletion4 = true; | ||
_context.next = 6; | ||
case 11: | ||
_context.next = 4; | ||
break; | ||
case 16: | ||
_context.next = 22; | ||
case 13: | ||
_context.next = 18; | ||
break; | ||
case 15: | ||
_context.prev = 15; | ||
_context.t0 = _context["catch"](2); | ||
_iterator4.e(_context.t0); | ||
case 18: | ||
_context.prev = 18; | ||
_context.t0 = _context["catch"](4); | ||
_didIteratorError4 = true; | ||
_iteratorError4 = _context.t0; | ||
case 22: | ||
_context.prev = 22; | ||
_context.prev = 23; | ||
_iterator4.f(); | ||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { | ||
_iterator4["return"](); | ||
} | ||
return _context.finish(18); | ||
case 25: | ||
_context.prev = 25; | ||
if (!_didIteratorError4) { | ||
_context.next = 28; | ||
break; | ||
} | ||
throw _iteratorError4; | ||
case 28: | ||
return _context.finish(25); | ||
case 29: | ||
return _context.finish(22); | ||
case 30: | ||
case 21: | ||
case "end": | ||
@@ -364,3 +324,3 @@ return _context.stop(); | ||
} | ||
}, _callee, this, [[4, 18, 22, 30], [23,, 25, 29]]); | ||
}, _callee, this, [[2, 15, 18, 21]]); | ||
})); | ||
@@ -367,0 +327,0 @@ |
@@ -12,2 +12,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -17,4 +19,2 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
@@ -24,10 +24,14 @@ | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
/** | ||
* | ||
*/ | ||
var LocalService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
var LocalService = /*#__PURE__*/function (_ServiceBase) { | ||
(0, _inherits2["default"])(LocalService, _ServiceBase); | ||
var _super = _createSuper(LocalService); | ||
/** | ||
@@ -40,3 +44,3 @@ * @param {string} name | ||
(0, _classCallCheck2["default"])(this, LocalService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LocalService).call(this, _ServiceType["default"].LOCAL, name, dependencies)); | ||
return _super.call(this, _ServiceType["default"].LOCAL, name, dependencies); | ||
} | ||
@@ -43,0 +47,0 @@ |
@@ -12,2 +12,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -17,4 +19,2 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
@@ -24,10 +24,14 @@ | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
/** | ||
* | ||
*/ | ||
var PrivateService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
var PrivateService = /*#__PURE__*/function (_ServiceBase) { | ||
(0, _inherits2["default"])(PrivateService, _ServiceBase); | ||
var _super = _createSuper(PrivateService); | ||
/** | ||
@@ -40,3 +44,3 @@ * @param {string} name | ||
(0, _classCallCheck2["default"])(this, PrivateService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PrivateService).call(this, _ServiceType["default"].PRIVATE, name, dependencies)); | ||
return _super.call(this, _ServiceType["default"].PRIVATE, name, dependencies); | ||
} | ||
@@ -43,0 +47,0 @@ |
@@ -12,2 +12,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -17,4 +19,2 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
@@ -24,10 +24,14 @@ | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
/** | ||
* | ||
*/ | ||
var PublicService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
var PublicService = /*#__PURE__*/function (_ServiceBase) { | ||
(0, _inherits2["default"])(PublicService, _ServiceBase); | ||
var _super = _createSuper(PublicService); | ||
/** | ||
@@ -40,3 +44,3 @@ * @param {string} name | ||
(0, _classCallCheck2["default"])(this, PublicService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PublicService).call(this, _ServiceType["default"].PUBLIC, name, dependencies)); | ||
return _super.call(this, _ServiceType["default"].PUBLIC, name, dependencies); | ||
} | ||
@@ -43,0 +47,0 @@ |
@@ -137,5 +137,3 @@ "use strict"; | ||
var ServiceBase = | ||
/*#__PURE__*/ | ||
function () { | ||
var ServiceBase = /*#__PURE__*/function () { | ||
/** | ||
@@ -149,3 +147,8 @@ * @param {string} type | ||
(0, _classCallCheck2["default"])(this, ServiceBase); | ||
if (!name) name = this.constructor.role; | ||
if (this.constructor.dependencies) { | ||
dependencies = this.constructor.dependencies; | ||
} | ||
if (typeof _ServiceType["default"][type] === 'undefined') { | ||
@@ -152,0 +155,0 @@ throw new Error('Invalid ServiceType: ' + type); |
@@ -18,2 +18,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -23,4 +25,2 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
@@ -30,17 +30,21 @@ | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
/** | ||
* | ||
*/ | ||
var InvalidServiceError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
var InvalidServiceError = /*#__PURE__*/function (_Error) { | ||
(0, _inherits2["default"])(InvalidServiceError, _Error); | ||
var _super = _createSuper(InvalidServiceError); | ||
function InvalidServiceError(message) { | ||
(0, _classCallCheck2["default"])(this, InvalidServiceError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(InvalidServiceError).call(this, message)); | ||
return _super.call(this, message); | ||
} | ||
return InvalidServiceError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -53,14 +57,14 @@ * | ||
var UnknownDependencyError = | ||
/*#__PURE__*/ | ||
function (_Error2) { | ||
var UnknownDependencyError = /*#__PURE__*/function (_Error2) { | ||
(0, _inherits2["default"])(UnknownDependencyError, _Error2); | ||
var _super2 = _createSuper(UnknownDependencyError); | ||
function UnknownDependencyError(service, dependency) { | ||
(0, _classCallCheck2["default"])(this, UnknownDependencyError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(UnknownDependencyError).call(this, 'Injected service ' + dependency + ' is not a dependency of ' + service)); | ||
return _super2.call(this, 'Injected service ' + dependency + ' is not a dependency of ' + service); | ||
} | ||
return UnknownDependencyError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -73,14 +77,14 @@ * | ||
var DependencyNotResolvedError = | ||
/*#__PURE__*/ | ||
function (_Error3) { | ||
var DependencyNotResolvedError = /*#__PURE__*/function (_Error3) { | ||
(0, _inherits2["default"])(DependencyNotResolvedError, _Error3); | ||
var _super3 = _createSuper(DependencyNotResolvedError); | ||
function DependencyNotResolvedError(service, dependency) { | ||
(0, _classCallCheck2["default"])(this, DependencyNotResolvedError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DependencyNotResolvedError).call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.')); | ||
return _super3.call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.'); | ||
} | ||
return DependencyNotResolvedError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -105,6 +109,7 @@ * @param callback | ||
var ServiceManager = | ||
/*#__PURE__*/ | ||
function (_ServiceManagerBase) { | ||
var ServiceManager = /*#__PURE__*/function (_ServiceManagerBase) { | ||
(0, _inherits2["default"])(ServiceManager, _ServiceManagerBase); | ||
var _super4 = _createSuper(ServiceManager); | ||
(0, _createClass2["default"])(ServiceManager, null, [{ | ||
@@ -138,3 +143,3 @@ key: "isValidService", | ||
(0, _classCallCheck2["default"])(this, ServiceManager); | ||
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceManager).call(this, init, connect, auth)); | ||
_this = _super4.call(this, init, connect, auth); | ||
@@ -141,0 +146,0 @@ if (!name) { |
@@ -36,5 +36,3 @@ "use strict"; | ||
var ServiceManagerBase = | ||
/*#__PURE__*/ | ||
function () { | ||
var ServiceManagerBase = /*#__PURE__*/function () { | ||
/** | ||
@@ -41,0 +39,0 @@ * @param init {function|null} |
@@ -24,9 +24,18 @@ "use strict"; | ||
var ServiceProvider = | ||
/*#__PURE__*/ | ||
function () { | ||
function ServiceProvider(config, _ref) { | ||
var services = _ref.services, | ||
defaults = _ref.defaults, | ||
disabled = _ref.disabled; | ||
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } | ||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } | ||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } | ||
var ServiceProvider = /*#__PURE__*/function () { | ||
function ServiceProvider(config) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref$services = _ref.services, | ||
services = _ref$services === void 0 ? {} : _ref$services, | ||
_ref$defaults = _ref.defaults, | ||
defaults = _ref$defaults === void 0 ? {} : _ref$defaults, | ||
_ref$disabled = _ref.disabled, | ||
disabled = _ref$disabled === void 0 ? {} : _ref$disabled; | ||
(0, _classCallCheck2["default"])(this, ServiceProvider); | ||
@@ -91,2 +100,8 @@ this._config = config; // all the service classes that this provider should support | ||
var instanceName = instance.manager().name(); | ||
if (instanceName !== role) { | ||
throw new Error("Role mismatch: \"".concat(instanceName, "\", \"").concat(role, "\"")); | ||
} | ||
instance.manager().settings(settings); | ||
@@ -118,11 +133,10 @@ container.register(instance, role); | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
var _iterator = _createForOfIteratorHelper(newDeps), | ||
_step; | ||
try { | ||
for (var _iterator = newDeps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
for (_iterator.s(); !(_step = _iterator.n()).done;) { | ||
var name = _step.value; | ||
var className = this._resolver.defaults[name]; | ||
var ctor = this._services[className]; | ||
var ctor = this._resolver.defaults[name]; | ||
if (typeof ctor === 'string') ctor = this._services[ctor]; | ||
if (!ctor) throw new Error("No service found for \"".concat(name, "\"")); | ||
@@ -133,14 +147,5 @@ container.register(new ctor(), name); | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
_iterator.e(err); | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator["return"] != null) { | ||
_iterator["return"](); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
_iterator.f(); | ||
} | ||
@@ -147,0 +152,0 @@ |
@@ -12,2 +12,4 @@ "use strict"; | ||
var _ServiceBase = _interopRequireDefault(require("./ServiceBase")); | ||
function standardizeConfig(role, config, resolver) { | ||
@@ -22,3 +24,4 @@ if (config instanceof Array) { | ||
var className, settings; | ||
var className, | ||
settings = {}; | ||
@@ -29,3 +32,2 @@ switch ((0, _typeof2["default"])(config)) { | ||
className = config; | ||
settings = {}; | ||
break; | ||
@@ -36,9 +38,13 @@ | ||
className = config; | ||
settings = {}; | ||
break; | ||
case 'object': | ||
// handle a settings object -- use the default version | ||
className = resolver ? resolveNameForBoolean(role, true, resolver) : true; | ||
settings = config; // TODO could also handle a service instance or constructor here | ||
if (config instanceof _ServiceBase["default"]) { | ||
// handle a service instance | ||
className = config; | ||
} else { | ||
// handle a settings object -- use the default version | ||
className = resolver ? resolveNameForBoolean(role, true, resolver) : true; | ||
settings = config; | ||
} | ||
@@ -49,3 +55,2 @@ break; | ||
className = resolver ? resolveNameForBoolean(role, config, resolver) : config; | ||
settings = {}; | ||
break; | ||
@@ -52,0 +57,0 @@ |
@@ -16,2 +16,4 @@ "use strict"; | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
@@ -21,24 +23,24 @@ | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
var IllegalStateError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
var IllegalStateError = /*#__PURE__*/function (_Error) { | ||
(0, _inherits2["default"])(IllegalStateError, _Error); | ||
var _super = _createSuper(IllegalStateError); | ||
function IllegalStateError() { | ||
(0, _classCallCheck2["default"])(this, IllegalStateError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IllegalStateError).apply(this, arguments)); | ||
return _super.apply(this, arguments); | ||
} | ||
return IllegalStateError; | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
exports.IllegalStateError = IllegalStateError; | ||
var StateMachine = | ||
/*#__PURE__*/ | ||
function () { | ||
var StateMachine = /*#__PURE__*/function () { | ||
function StateMachine(initialState, transitions) { | ||
@@ -45,0 +47,0 @@ (0, _classCallCheck2["default"])(this, StateMachine); |
{ | ||
"name": "@makerdao/services-core", | ||
"description": "Dependency injection framework", | ||
"version": "0.9.9", | ||
"version": "0.10.0", | ||
"license": "MIT", | ||
"main": "dist/index.js", | ||
"browser": "umd/index.js", | ||
"unpkg": "umd/index.js", | ||
"jsdelivr": "umd/index.js", | ||
"scripts": { | ||
"prepublishOnly": "babel -d dist src", | ||
"test": "jest" | ||
"build": "yarn clean && yarn build:cjs && yarn build:umd", | ||
"build:umd": "webpack --config ../../webpack.config.js", | ||
"build:cjs": "../../scripts/build.sh", | ||
"clean": "rm -rf ./dist ./umd", | ||
"prepublishOnly": "yarn build", | ||
"test": "jest", | ||
"coverage": "jest --coverage" | ||
}, | ||
@@ -16,3 +24,4 @@ "files": [ | ||
"src/**/*.js", | ||
"dist/**/*.js" | ||
"dist/**/*.js", | ||
"umd/*" | ||
], | ||
@@ -19,0 +28,0 @@ "dependencies": { |
# @makerdao/services-core | ||
A dependency injection framework extracted from [dai.js](https://github.com/makerdao/dai.js). | ||
A dependency injection framework used in [dai.js](https://github.com/makerdao/dai.js). | ||
### TODO | ||
- [ ] bring [ServiceProvider](https://github.com/makerdao/dai.js/blob/dev/src/config/ServiceProvider.js) over | ||
- [ ] create full usage example | ||
@@ -9,0 +8,0 @@ |
@@ -145,2 +145,7 @@ import ServiceManager from './ServiceManager'; | ||
constructor(type, name, dependencies = []) { | ||
if (!name) name = this.constructor.role; | ||
if (this.constructor.dependencies) { | ||
dependencies = this.constructor.dependencies; | ||
} | ||
if (typeof ServiceType[type] === 'undefined') { | ||
@@ -147,0 +152,0 @@ throw new Error('Invalid ServiceType: ' + type); |
@@ -6,3 +6,3 @@ import uniq from 'lodash/uniq'; | ||
export default class ServiceProvider { | ||
constructor(config, { services, defaults, disabled }) { | ||
constructor(config, { services = {}, defaults = {}, disabled = {} } = {}) { | ||
this._config = config; | ||
@@ -63,2 +63,9 @@ | ||
const instanceName = instance.manager().name(); | ||
if (instanceName !== role) { | ||
throw new Error( | ||
`Role mismatch: "${instanceName}", "${role}"` | ||
); | ||
} | ||
instance.manager().settings(settings); | ||
@@ -90,4 +97,4 @@ container.register(instance, role); | ||
for (let name of newDeps) { | ||
const className = this._resolver.defaults[name]; | ||
const ctor = this._services[className]; | ||
let ctor = this._resolver.defaults[name]; | ||
if (typeof ctor === 'string') ctor = this._services[ctor]; | ||
if (!ctor) throw new Error(`No service found for "${name}"`); | ||
@@ -94,0 +101,0 @@ container.register(new ctor(), name); |
@@ -0,1 +1,3 @@ | ||
import ServiceBase from './ServiceBase'; | ||
export default function standardizeConfig(role, config, resolver) { | ||
@@ -8,3 +10,4 @@ if (config instanceof Array) { | ||
} | ||
let className, settings; | ||
let className, | ||
settings = {}; | ||
@@ -15,3 +18,2 @@ switch (typeof config) { | ||
className = config; | ||
settings = {}; | ||
break; | ||
@@ -21,9 +23,14 @@ case 'function': | ||
className = config; | ||
settings = {}; | ||
break; | ||
case 'object': | ||
// handle a settings object -- use the default version | ||
className = resolver ? resolveNameForBoolean(role, true, resolver) : true; | ||
settings = config; | ||
// TODO could also handle a service instance or constructor here | ||
if (config instanceof ServiceBase) { | ||
// handle a service instance | ||
className = config; | ||
} else { | ||
// handle a settings object -- use the default version | ||
className = resolver | ||
? resolveNameForBoolean(role, true, resolver) | ||
: true; | ||
settings = config; | ||
} | ||
break; | ||
@@ -34,3 +41,2 @@ case 'boolean': | ||
: config; | ||
settings = {}; | ||
break; | ||
@@ -37,0 +43,0 @@ default: |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
378002
30
2820
30
1