@makerdao/services-core
Advanced tools
Comparing version 0.9.8 to 0.9.9
@@ -1,113 +0,95 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.ServiceNotFoundError = exports.ServiceAlreadyRegisteredError = exports.InvalidServiceError = exports.ExtractedServiceError = exports.default = undefined; | ||
exports.orderServices = orderServices; | ||
Object.defineProperty(exports, "InvalidServiceError", { | ||
enumerable: true, | ||
get: function get() { | ||
return _ServiceManager.InvalidServiceError; | ||
} | ||
}); | ||
exports.ServiceNotFoundError = exports.ServiceAlreadyRegisteredError = exports.ExtractedServiceError = exports["default"] = void 0; | ||
var _regenerator = require('babel-runtime/regenerator'); | ||
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); | ||
var _regenerator2 = _interopRequireDefault(_regenerator); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _keys = require('babel-runtime/core-js/object/keys'); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _keys2 = _interopRequireDefault(_keys); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
var _getIterator2 = require('babel-runtime/core-js/get-iterator'); | ||
var _values = _interopRequireDefault(require("lodash/values")); | ||
var _getIterator3 = _interopRequireDefault(_getIterator2); | ||
var _uniq = _interopRequireDefault(require("lodash/uniq")); | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _ServiceManager = _interopRequireWildcard(require("./ServiceManager")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var _toposort = _interopRequireDefault(require("toposort")); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var ServiceAlreadyRegisteredError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
(0, _inherits2["default"])(ServiceAlreadyRegisteredError, _Error); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
exports.orderServices = orderServices; | ||
var _lodash = require('lodash.values'); | ||
var _lodash2 = _interopRequireDefault(_lodash); | ||
var _ServiceManager = require('./ServiceManager'); | ||
var _ServiceManager2 = _interopRequireDefault(_ServiceManager); | ||
var _toposort = require('toposort'); | ||
var _toposort2 = _interopRequireDefault(_toposort); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var ServiceAlreadyRegisteredError = function (_Error) { | ||
(0, _inherits3.default)(ServiceAlreadyRegisteredError, _Error); | ||
function ServiceAlreadyRegisteredError(name) { | ||
(0, _classCallCheck3.default)(this, ServiceAlreadyRegisteredError); | ||
(0, _classCallCheck2["default"])(this, ServiceAlreadyRegisteredError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn3.default)(this, (ServiceAlreadyRegisteredError.__proto__ || (0, _getPrototypeOf2.default)(ServiceAlreadyRegisteredError)).call(this, 'Service with name \'' + name + '\' is already registered with this container.')); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceAlreadyRegisteredError).call(this, 'Service with name \'' + name + '\' is already registered with this container.')); | ||
} | ||
return ServiceAlreadyRegisteredError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
var ServiceNotFoundError = function (_Error2) { | ||
(0, _inherits3.default)(ServiceNotFoundError, _Error2); | ||
exports.ServiceAlreadyRegisteredError = ServiceAlreadyRegisteredError; | ||
var ServiceNotFoundError = | ||
/*#__PURE__*/ | ||
function (_Error2) { | ||
(0, _inherits2["default"])(ServiceNotFoundError, _Error2); | ||
function ServiceNotFoundError(name) { | ||
(0, _classCallCheck3.default)(this, ServiceNotFoundError); | ||
(0, _classCallCheck2["default"])(this, ServiceNotFoundError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn3.default)(this, (ServiceNotFoundError.__proto__ || (0, _getPrototypeOf2.default)(ServiceNotFoundError)).call(this, 'Service with name \'' + name + '\' cannot be found in this container.')); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceNotFoundError).call(this, 'Service with name \'' + name + '\' cannot be found in this container.')); | ||
} | ||
return ServiceNotFoundError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
var ExtractedServiceError = function (_Error3) { | ||
(0, _inherits3.default)(ExtractedServiceError, _Error3); | ||
exports.ServiceNotFoundError = ServiceNotFoundError; | ||
var ExtractedServiceError = | ||
/*#__PURE__*/ | ||
function (_Error3) { | ||
(0, _inherits2["default"])(ExtractedServiceError, _Error3); | ||
function ExtractedServiceError(name) { | ||
(0, _classCallCheck3.default)(this, ExtractedServiceError); | ||
(0, _classCallCheck2["default"])(this, ExtractedServiceError); | ||
// prettier-ignore | ||
return (0, _possibleConstructorReturn3.default)(this, (ExtractedServiceError.__proto__ || (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 (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 ExtractedServiceError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); // exported just for testing | ||
// exported just for testing | ||
exports.ExtractedServiceError = ExtractedServiceError; | ||
function orderServices(services) { | ||
var edges = []; | ||
var _loop = function _loop(service) { | ||
var name = service.manager().name(); | ||
var depNames = service.manager().dependencies(); | ||
depNames.forEach(function (dn) { | ||
return edges.push([dn, name]); | ||
}); | ||
}; | ||
var servicesWithoutDeps = []; | ||
var _iteratorNormalCompletion = true; | ||
@@ -118,6 +100,18 @@ var _didIteratorError = false; | ||
try { | ||
for (var _iterator = (0, _getIterator3.default)(services), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var _loop = function _loop() { | ||
var service = _step.value; | ||
var name = service.manager().name(); | ||
var depNames = service.manager().dependencies(); | ||
_loop(service); | ||
if (depNames.length === 0) { | ||
servicesWithoutDeps.push(name); | ||
} else { | ||
depNames.forEach(function (dn) { | ||
return edges.push([dn, name]); | ||
}); | ||
} | ||
}; | ||
for (var _iterator = services[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
_loop(); | ||
} | ||
@@ -129,4 +123,4 @@ } catch (err) { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
if (!_iteratorNormalCompletion && _iterator["return"] != null) { | ||
_iterator["return"](); | ||
} | ||
@@ -140,9 +134,10 @@ } finally { | ||
return (0, _toposort2.default)(edges); | ||
return (0, _uniq["default"])((0, _toposort["default"])(edges).concat(servicesWithoutDeps)); | ||
} | ||
var Container = function () { | ||
var Container = | ||
/*#__PURE__*/ | ||
function () { | ||
function Container() { | ||
(0, _classCallCheck3.default)(this, Container); | ||
(0, _classCallCheck2["default"])(this, Container); | ||
this._services = {}; | ||
@@ -152,8 +147,8 @@ this.isAuthenticated = false; | ||
(0, _createClass3.default)(Container, [{ | ||
key: 'register', | ||
(0, _createClass2["default"])(Container, [{ | ||
key: "register", | ||
value: function register(service) { | ||
var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; | ||
if (!_ServiceManager2.default.isValidService(service)) { | ||
if (!_ServiceManager["default"].isValidService(service)) { | ||
throw new _ServiceManager.InvalidServiceError('Service must be an object with manager() method returning a valid ServiceManager'); | ||
@@ -163,4 +158,4 @@ } | ||
name = name || service.manager().name(); | ||
var s = this.service(name, false); | ||
var s = this.service(name, false); | ||
if (s !== undefined && s !== service) { | ||
@@ -174,6 +169,5 @@ throw new ServiceAlreadyRegisteredError(name); | ||
}, { | ||
key: 'service', | ||
key: "service", | ||
value: function service(name) { | ||
var throwIfMissing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var extractedServices = ['exchange']; | ||
@@ -196,10 +190,10 @@ | ||
}, { | ||
key: 'getRegisteredServiceNames', | ||
key: "getRegisteredServiceNames", | ||
value: function getRegisteredServiceNames() { | ||
return (0, _keys2.default)(this._services); | ||
return Object.keys(this._services); | ||
} | ||
}, { | ||
key: 'injectDependencies', | ||
key: "injectDependencies", | ||
value: function injectDependencies() { | ||
var services = (0, _lodash2.default)(this._services); | ||
var services = (0, _values["default"])(this._services); | ||
var _iteratorNormalCompletion2 = true; | ||
@@ -210,5 +204,4 @@ var _didIteratorError2 = false; | ||
try { | ||
for (var _iterator2 = (0, _getIterator3.default)(services), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | ||
for (var _iterator2 = services[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | ||
var service = _step2.value; | ||
var manager = service.manager(); | ||
@@ -220,8 +213,7 @@ var _iteratorNormalCompletion3 = true; | ||
try { | ||
for (var _iterator3 = (0, _getIterator3.default)(manager.dependencies()), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { | ||
var _name = _step3.value; | ||
var dep = this._services[_name]; | ||
if (!dep) throw new ServiceNotFoundError(_name); | ||
manager.inject(_name, this._services[_name]); | ||
for (var _iterator3 = manager.dependencies()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { | ||
var name = _step3.value; | ||
var dep = this._services[name]; | ||
if (!dep) throw new ServiceNotFoundError(name); | ||
manager.inject(name, this._services[name]); | ||
} | ||
@@ -233,4 +225,4 @@ } catch (err) { | ||
try { | ||
if (!_iteratorNormalCompletion3 && _iterator3.return) { | ||
_iterator3.return(); | ||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { | ||
_iterator3["return"](); | ||
} | ||
@@ -249,4 +241,4 @@ } finally { | ||
try { | ||
if (!_iteratorNormalCompletion2 && _iterator2.return) { | ||
_iterator2.return(); | ||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { | ||
_iterator2["return"](); | ||
} | ||
@@ -261,3 +253,3 @@ } finally { | ||
}, { | ||
key: 'initialize', | ||
key: "initialize", | ||
value: function initialize() { | ||
@@ -269,3 +261,3 @@ return this._waitForServices(function (s) { | ||
}, { | ||
key: 'connect', | ||
key: "connect", | ||
value: function connect() { | ||
@@ -277,5 +269,5 @@ return this._waitForServices(function (s) { | ||
}, { | ||
key: 'authenticate', | ||
key: "authenticate", | ||
value: function authenticate() { | ||
var _this4 = this; | ||
var _this = this; | ||
@@ -285,12 +277,14 @@ return this._waitForServices(function (s) { | ||
}).then(function () { | ||
_this4.isAuthenticated = true; | ||
_this.isAuthenticated = true; | ||
}); | ||
} | ||
}, { | ||
key: '_waitForServices', | ||
key: "_waitForServices", | ||
value: function () { | ||
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(callback) { | ||
var _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, _name2, service; | ||
var _waitForServices2 = (0, _asyncToGenerator2["default"])( | ||
/*#__PURE__*/ | ||
_regenerator["default"].mark(function _callee(callback) { | ||
var _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, name, service; | ||
return _regenerator2.default.wrap(function _callee$(_context) { | ||
return _regenerator["default"].wrap(function _callee$(_context) { | ||
while (1) { | ||
@@ -300,4 +294,5 @@ switch (_context.prev = _context.next) { | ||
if (!this._orderedServiceNames) { | ||
this._orderedServiceNames = orderServices((0, _lodash2.default)(this._services)); | ||
this._orderedServiceNames = orderServices((0, _values["default"])(this._services)); | ||
} | ||
_iteratorNormalCompletion4 = true; | ||
@@ -307,3 +302,3 @@ _didIteratorError4 = false; | ||
_context.prev = 4; | ||
_iterator4 = (0, _getIterator3.default)(this._orderedServiceNames); | ||
_iterator4 = this._orderedServiceNames[Symbol.iterator](); | ||
@@ -316,4 +311,4 @@ case 6: | ||
_name2 = _step4.value; | ||
service = this._services[_name2]; | ||
name = _step4.value; | ||
service = this._services[name]; | ||
@@ -325,7 +320,7 @@ if (service) { | ||
throw new Error('No service for ' + _name2); | ||
throw new Error("No service for ".concat(name)); | ||
case 11: | ||
_context.next = 13; | ||
return callback(this._services[_name2]); | ||
return callback(this._services[name]); | ||
@@ -343,3 +338,3 @@ case 13: | ||
_context.prev = 18; | ||
_context.t0 = _context['catch'](4); | ||
_context.t0 = _context["catch"](4); | ||
_didIteratorError4 = true; | ||
@@ -352,4 +347,4 @@ _iteratorError4 = _context.t0; | ||
if (!_iteratorNormalCompletion4 && _iterator4.return) { | ||
_iterator4.return(); | ||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { | ||
_iterator4["return"](); | ||
} | ||
@@ -374,3 +369,3 @@ | ||
case 30: | ||
case 'end': | ||
case "end": | ||
return _context.stop(); | ||
@@ -382,4 +377,4 @@ } | ||
function _waitForServices(_x3) { | ||
return _ref.apply(this, arguments); | ||
function _waitForServices(_x) { | ||
return _waitForServices2.apply(this, arguments); | ||
} | ||
@@ -393,6 +388,2 @@ | ||
exports.default = Container; | ||
exports.ExtractedServiceError = ExtractedServiceError; | ||
exports.InvalidServiceError = _ServiceManager.InvalidServiceError; | ||
exports.ServiceAlreadyRegisteredError = ServiceAlreadyRegisteredError; | ||
exports.ServiceNotFoundError = ServiceNotFoundError; | ||
exports["default"] = Container; |
@@ -1,61 +0,71 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _Container = require('./Container'); | ||
Object.defineProperty(exports, 'Container', { | ||
Object.defineProperty(exports, "standardizeConfig", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_Container).default; | ||
return _standardizeConfig["default"]; | ||
} | ||
}); | ||
var _LocalService = require('./LocalService'); | ||
Object.defineProperty(exports, 'LocalService', { | ||
Object.defineProperty(exports, "ServiceProvider", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_LocalService).default; | ||
return _ServiceProvider["default"]; | ||
} | ||
}); | ||
var _PublicService = require('./PublicService'); | ||
Object.defineProperty(exports, 'PublicService', { | ||
Object.defineProperty(exports, "Container", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_PublicService).default; | ||
return _Container["default"]; | ||
} | ||
}); | ||
var _PrivateService = require('./PrivateService'); | ||
Object.defineProperty(exports, 'PrivateService', { | ||
Object.defineProperty(exports, "LocalService", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_PrivateService).default; | ||
return _LocalService["default"]; | ||
} | ||
}); | ||
var _ServiceManager = require('./ServiceManager'); | ||
Object.defineProperty(exports, 'ServiceManager', { | ||
Object.defineProperty(exports, "PublicService", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_ServiceManager).default; | ||
return _PublicService["default"]; | ||
} | ||
}); | ||
var _StateMachine = require('./StateMachine'); | ||
Object.defineProperty(exports, 'StateMachine', { | ||
Object.defineProperty(exports, "PrivateService", { | ||
enumerable: true, | ||
get: function get() { | ||
return _interopRequireDefault(_StateMachine).default; | ||
return _PrivateService["default"]; | ||
} | ||
}); | ||
Object.defineProperty(exports, "ServiceManager", { | ||
enumerable: true, | ||
get: function get() { | ||
return _ServiceManager["default"]; | ||
} | ||
}); | ||
Object.defineProperty(exports, "StateMachine", { | ||
enumerable: true, | ||
get: function get() { | ||
return _StateMachine["default"]; | ||
} | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _standardizeConfig = _interopRequireDefault(require("./standardizeConfig")); | ||
var _ServiceProvider = _interopRequireDefault(require("./ServiceProvider")); | ||
var _Container = _interopRequireDefault(require("./Container")); | ||
var _LocalService = _interopRequireDefault(require("./LocalService")); | ||
var _PublicService = _interopRequireDefault(require("./PublicService")); | ||
var _PrivateService = _interopRequireDefault(require("./PrivateService")); | ||
var _ServiceManager = _interopRequireDefault(require("./ServiceManager")); | ||
var _StateMachine = _interopRequireDefault(require("./StateMachine")); |
@@ -1,38 +0,29 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = void 0; | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase")); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var _ServiceType = require('./ServiceType'); | ||
var _ServiceType2 = _interopRequireDefault(_ServiceType); | ||
var _ServiceBase2 = require('./ServiceBase'); | ||
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* | ||
*/ | ||
var LocalService = function (_ServiceBase) { | ||
(0, _inherits3.default)(LocalService, _ServiceBase); | ||
var LocalService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
(0, _inherits2["default"])(LocalService, _ServiceBase); | ||
@@ -45,9 +36,10 @@ /** | ||
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
(0, _classCallCheck3.default)(this, LocalService); | ||
return (0, _possibleConstructorReturn3.default)(this, (LocalService.__proto__ || (0, _getPrototypeOf2.default)(LocalService)).call(this, _ServiceType2.default.LOCAL, name, dependencies)); | ||
(0, _classCallCheck2["default"])(this, LocalService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(LocalService).call(this, _ServiceType["default"].LOCAL, name, dependencies)); | ||
} | ||
return LocalService; | ||
}(_ServiceBase3.default); | ||
}(_ServiceBase2["default"]); | ||
exports.default = LocalService; | ||
var _default = LocalService; | ||
exports["default"] = _default; |
@@ -1,38 +0,29 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = void 0; | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase")); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var _ServiceType = require('./ServiceType'); | ||
var _ServiceType2 = _interopRequireDefault(_ServiceType); | ||
var _ServiceBase2 = require('./ServiceBase'); | ||
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* | ||
*/ | ||
var PrivateService = function (_ServiceBase) { | ||
(0, _inherits3.default)(PrivateService, _ServiceBase); | ||
var PrivateService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
(0, _inherits2["default"])(PrivateService, _ServiceBase); | ||
@@ -45,9 +36,10 @@ /** | ||
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
(0, _classCallCheck3.default)(this, PrivateService); | ||
return (0, _possibleConstructorReturn3.default)(this, (PrivateService.__proto__ || (0, _getPrototypeOf2.default)(PrivateService)).call(this, _ServiceType2.default.PRIVATE, name, dependencies)); | ||
(0, _classCallCheck2["default"])(this, PrivateService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PrivateService).call(this, _ServiceType["default"].PRIVATE, name, dependencies)); | ||
} | ||
return PrivateService; | ||
}(_ServiceBase3.default); | ||
}(_ServiceBase2["default"]); | ||
exports.default = PrivateService; | ||
var _default = PrivateService; | ||
exports["default"] = _default; |
@@ -1,38 +0,29 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = void 0; | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _ServiceBase2 = _interopRequireDefault(require("./ServiceBase")); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var _ServiceType = require('./ServiceType'); | ||
var _ServiceType2 = _interopRequireDefault(_ServiceType); | ||
var _ServiceBase2 = require('./ServiceBase'); | ||
var _ServiceBase3 = _interopRequireDefault(_ServiceBase2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* | ||
*/ | ||
var PublicService = function (_ServiceBase) { | ||
(0, _inherits3.default)(PublicService, _ServiceBase); | ||
var PublicService = | ||
/*#__PURE__*/ | ||
function (_ServiceBase) { | ||
(0, _inherits2["default"])(PublicService, _ServiceBase); | ||
@@ -45,9 +36,10 @@ /** | ||
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
(0, _classCallCheck3.default)(this, PublicService); | ||
return (0, _possibleConstructorReturn3.default)(this, (PublicService.__proto__ || (0, _getPrototypeOf2.default)(PublicService)).call(this, _ServiceType2.default.PUBLIC, name, dependencies)); | ||
(0, _classCallCheck2["default"])(this, PublicService); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PublicService).call(this, _ServiceType["default"].PUBLIC, name, dependencies)); | ||
} | ||
return PublicService; | ||
}(_ServiceBase3.default); | ||
}(_ServiceBase2["default"]); | ||
exports.default = PublicService; | ||
var _default = PublicService; | ||
exports["default"] = _default; |
@@ -1,29 +0,20 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = void 0; | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _ServiceManager = _interopRequireDefault(require("./ServiceManager")); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _ServiceType = _interopRequireDefault(require("./ServiceType")); | ||
var _ServiceManager = require('./ServiceManager'); | ||
var _ServiceState = _interopRequireDefault(require("./ServiceState")); | ||
var _ServiceManager2 = _interopRequireDefault(_ServiceManager); | ||
var _ServiceType = require('./ServiceType'); | ||
var _ServiceType2 = _interopRequireDefault(_ServiceType); | ||
var _ServiceState = require('./ServiceState'); | ||
var _ServiceState2 = _interopRequireDefault(_ServiceState); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
@@ -38,3 +29,3 @@ * @param {string} type | ||
if (type !== _ServiceType2.default.LOCAL) { | ||
if (type !== _ServiceType["default"].LOCAL) { | ||
if (typeof this.connect === 'undefined') { | ||
@@ -47,3 +38,3 @@ this.connect = function () {}; | ||
if (type === _ServiceType2.default.PRIVATE) { | ||
if (type === _ServiceType["default"].PRIVATE) { | ||
if (typeof this.authenticate === 'undefined') { | ||
@@ -56,3 +47,2 @@ this.authenticate = function () {}; | ||
} | ||
/** | ||
@@ -65,19 +55,19 @@ * @param {string} type | ||
*/ | ||
function _buildServiceManager(type, name, dependencies) { | ||
var _this = this; | ||
var connect = type === _ServiceType2.default.LOCAL ? null : function (disconnect) { | ||
var connect = type === _ServiceType["default"].LOCAL ? null : function (disconnect) { | ||
_this.disconnect = disconnect; | ||
return _this.connect(); | ||
}; | ||
var auth = type !== _ServiceType2.default.PRIVATE ? null : function (deauthenticate) { | ||
var auth = type !== _ServiceType["default"].PRIVATE ? null : function (deauthenticate) { | ||
_this.deauthenticate = deauthenticate; | ||
return _this.authenticate(); | ||
}; | ||
return new _ServiceManager2.default(name, dependencies, function (settings) { | ||
return new _ServiceManager["default"](name, dependencies, function (settings) { | ||
return _this.initialize(settings); | ||
}, connect, auth); | ||
} | ||
/** | ||
@@ -87,2 +77,4 @@ * @param {ServiceManager} mgr | ||
*/ | ||
function _installLifeCycleHooks(mgr) { | ||
@@ -92,3 +84,3 @@ var _this2 = this; | ||
mgr.onInitialized(function () { | ||
if (mgr.type() !== _ServiceType2.default.LOCAL) { | ||
if (mgr.type() !== _ServiceType["default"].LOCAL) { | ||
mgr.dependencies().forEach(function (d) { | ||
@@ -101,3 +93,3 @@ _this2.get(d).manager().onDisconnected(function () { | ||
if (mgr.type() === _ServiceType2.default.PRIVATE) { | ||
if (mgr.type() === _ServiceType["default"].PRIVATE) { | ||
mgr.dependencies().forEach(function (d) { | ||
@@ -111,6 +103,7 @@ _this2.get(d).manager().onDeauthenticated(function () { | ||
} | ||
/** | ||
* @private | ||
*/ | ||
function _guardLifeCycleMethods() { | ||
@@ -124,3 +117,3 @@ var original = { | ||
this.initialize = function (settings) { | ||
if (this.manager().state() !== _ServiceState2.default.INITIALIZING) { | ||
if (this.manager().state() !== _ServiceState["default"].INITIALIZING) { | ||
throw new Error('Expected state INITIALIZING, but got ' + this.manager().state() + '. Did you mean to call service.manager().initialize() instead of service.initialize()?'); | ||
@@ -134,3 +127,3 @@ } | ||
this.connect = function () { | ||
if (this.manager().state() !== _ServiceState2.default.CONNECTING) { | ||
if (this.manager().state() !== _ServiceState["default"].CONNECTING) { | ||
throw new Error('Expected state CONNECTING, but got ' + this.manager().state() + '. Did you mean to call service.manager().connect() instead of service.connect()?'); | ||
@@ -145,3 +138,3 @@ } | ||
this.authenticate = function () { | ||
if (this.manager().state() !== _ServiceState2.default.AUTHENTICATING) { | ||
if (this.manager().state() !== _ServiceState["default"].AUTHENTICATING) { | ||
throw new Error('Expected state AUTHENTICATING, but got ' + this.manager().state() + '. Did you mean to call service.manager().authenticate() instead of service.authenticate()?'); | ||
@@ -155,3 +148,5 @@ } | ||
var ServiceBase = function () { | ||
var ServiceBase = | ||
/*#__PURE__*/ | ||
function () { | ||
/** | ||
@@ -164,5 +159,5 @@ * @param {string} type | ||
var dependencies = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; | ||
(0, _classCallCheck3.default)(this, ServiceBase); | ||
(0, _classCallCheck2["default"])(this, ServiceBase); | ||
if (typeof _ServiceType2.default[type] === 'undefined') { | ||
if (typeof _ServiceType["default"][type] === 'undefined') { | ||
throw new Error('Invalid ServiceType: ' + type); | ||
@@ -172,7 +167,9 @@ } | ||
_defineLifeCycleMethods.call(this, type); | ||
this._serviceManager = _buildServiceManager.call(this, type, name, dependencies); | ||
_installLifeCycleHooks.call(this, this._serviceManager); | ||
_guardLifeCycleMethods.call(this); | ||
} | ||
/** | ||
@@ -183,8 +180,7 @@ * @returns {ServiceManager} | ||
(0, _createClass3.default)(ServiceBase, [{ | ||
key: 'manager', | ||
(0, _createClass2["default"])(ServiceBase, [{ | ||
key: "manager", | ||
value: function manager() { | ||
return this._serviceManager; | ||
} | ||
/** | ||
@@ -196,3 +192,3 @@ * @param {string} dependency | ||
}, { | ||
key: 'get', | ||
key: "get", | ||
value: function get(dependency) { | ||
@@ -205,2 +201,3 @@ return this._serviceManager.dependency(dependency); | ||
exports.default = ServiceBase; | ||
var _default = ServiceBase; | ||
exports["default"] = _default; |
@@ -1,60 +0,43 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.DependencyNotResolvedError = exports.UnknownDependencyError = exports.InvalidServiceError = exports.default = undefined; | ||
exports.DependencyNotResolvedError = exports.UnknownDependencyError = exports.InvalidServiceError = exports["default"] = void 0; | ||
var _typeof2 = require('babel-runtime/helpers/typeof'); | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _typeof3 = _interopRequireDefault(_typeof2); | ||
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); | ||
var _get2 = require('babel-runtime/helpers/get'); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _get3 = _interopRequireDefault(_get2); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _promise = require('babel-runtime/core-js/promise'); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _promise2 = _interopRequireDefault(_promise); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _ServiceManagerBase2 = _interopRequireDefault(require("./ServiceManagerBase")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var _ServiceManagerBase2 = require('./ServiceManagerBase'); | ||
var _ServiceManagerBase3 = _interopRequireDefault(_ServiceManagerBase2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** | ||
* | ||
*/ | ||
var InvalidServiceError = function (_Error) { | ||
(0, _inherits3.default)(InvalidServiceError, _Error); | ||
var InvalidServiceError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
(0, _inherits2["default"])(InvalidServiceError, _Error); | ||
function InvalidServiceError(message) { | ||
(0, _classCallCheck3.default)(this, InvalidServiceError); | ||
return (0, _possibleConstructorReturn3.default)(this, (InvalidServiceError.__proto__ || (0, _getPrototypeOf2.default)(InvalidServiceError)).call(this, message)); | ||
(0, _classCallCheck2["default"])(this, InvalidServiceError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(InvalidServiceError).call(this, message)); | ||
} | ||
return InvalidServiceError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -65,13 +48,16 @@ * | ||
var UnknownDependencyError = function (_Error2) { | ||
(0, _inherits3.default)(UnknownDependencyError, _Error2); | ||
exports.InvalidServiceError = InvalidServiceError; | ||
var UnknownDependencyError = | ||
/*#__PURE__*/ | ||
function (_Error2) { | ||
(0, _inherits2["default"])(UnknownDependencyError, _Error2); | ||
function UnknownDependencyError(service, dependency) { | ||
(0, _classCallCheck3.default)(this, UnknownDependencyError); | ||
return (0, _possibleConstructorReturn3.default)(this, (UnknownDependencyError.__proto__ || (0, _getPrototypeOf2.default)(UnknownDependencyError)).call(this, 'Injected service ' + dependency + ' is not a dependency of ' + service)); | ||
(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 UnknownDependencyError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -82,13 +68,16 @@ * | ||
var DependencyNotResolvedError = function (_Error3) { | ||
(0, _inherits3.default)(DependencyNotResolvedError, _Error3); | ||
exports.UnknownDependencyError = UnknownDependencyError; | ||
var DependencyNotResolvedError = | ||
/*#__PURE__*/ | ||
function (_Error3) { | ||
(0, _inherits2["default"])(DependencyNotResolvedError, _Error3); | ||
function DependencyNotResolvedError(service, dependency) { | ||
(0, _classCallCheck3.default)(this, DependencyNotResolvedError); | ||
return (0, _possibleConstructorReturn3.default)(this, (DependencyNotResolvedError.__proto__ || (0, _getPrototypeOf2.default)(DependencyNotResolvedError)).call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.')); | ||
(0, _classCallCheck2["default"])(this, DependencyNotResolvedError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DependencyNotResolvedError).call(this, 'Dependency ' + dependency + ' of service ' + service + ' is unavailable.')); | ||
} | ||
return DependencyNotResolvedError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
/** | ||
@@ -101,8 +90,9 @@ * @param callback | ||
exports.DependencyNotResolvedError = DependencyNotResolvedError; | ||
function _waitForDependencies(callback) { | ||
return _promise2.default.all(this.dependencies().map(function (dependency) { | ||
return Promise.all(this.dependencies().map(function (dependency) { | ||
return callback(dependency); | ||
})); | ||
} | ||
/** | ||
@@ -112,7 +102,10 @@ * | ||
var ServiceManager = function (_ServiceManagerBase) { | ||
(0, _inherits3.default)(ServiceManager, _ServiceManagerBase); | ||
(0, _createClass3.default)(ServiceManager, null, [{ | ||
key: 'isValidService', | ||
var ServiceManager = | ||
/*#__PURE__*/ | ||
function (_ServiceManagerBase) { | ||
(0, _inherits2["default"])(ServiceManager, _ServiceManagerBase); | ||
(0, _createClass2["default"])(ServiceManager, null, [{ | ||
key: "isValidService", | ||
/** | ||
@@ -123,5 +116,4 @@ * @param {*} service | ||
value: function isValidService(service) { | ||
return service !== null && (typeof service === 'undefined' ? 'undefined' : (0, _typeof3.default)(service)) === 'object' && typeof service.manager === 'function'; | ||
return service !== null && (0, _typeof2["default"])(service) === 'object' && typeof service.manager === 'function'; | ||
} | ||
/** | ||
@@ -138,2 +130,4 @@ * @param {string} name | ||
function ServiceManager(name) { | ||
var _this; | ||
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
@@ -143,6 +137,5 @@ var init = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; | ||
var auth = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; | ||
(0, _classCallCheck3.default)(this, ServiceManager); | ||
(0, _classCallCheck2["default"])(this, ServiceManager); | ||
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ServiceManager).call(this, init, connect, auth)); | ||
var _this4 = (0, _possibleConstructorReturn3.default)(this, (ServiceManager.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager)).call(this, init, connect, auth)); | ||
if (!name) { | ||
@@ -152,13 +145,13 @@ throw new Error('Service name must not be empty.'); | ||
_this4._name = name; | ||
_this4._dependencies = dependencies; | ||
_this4._injections = {}; | ||
_this._name = name; | ||
_this._dependencies = dependencies; | ||
_this._injections = {}; | ||
dependencies.forEach(function (d) { | ||
return _this4._injections[d] = null; | ||
return _this._injections[d] = null; | ||
}); | ||
return _this4; | ||
return _this; | ||
} | ||
(0, _createClass3.default)(ServiceManager, [{ | ||
key: 'name', | ||
(0, _createClass2["default"])(ServiceManager, [{ | ||
key: "name", | ||
value: function name() { | ||
@@ -168,3 +161,3 @@ return this._name; | ||
}, { | ||
key: 'dependencies', | ||
key: "dependencies", | ||
value: function dependencies() { | ||
@@ -174,3 +167,3 @@ return this._dependencies; | ||
}, { | ||
key: 'inject', | ||
key: "inject", | ||
value: function inject(dependency, service) { | ||
@@ -186,7 +179,6 @@ if (typeof this._injections[dependency] === 'undefined') { | ||
this._injections[dependency] = service; | ||
return this; | ||
} | ||
}, { | ||
key: 'dependency', | ||
key: "dependency", | ||
value: function dependency(name) { | ||
@@ -200,71 +192,70 @@ if (!this._injections[name]) { | ||
}, { | ||
key: 'initialize', | ||
key: "initialize", | ||
value: function initialize() { | ||
var _this5 = this; | ||
var _this2 = this; | ||
return this.initializeDependencies().then(function () { | ||
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'initialize', _this5).call(_this5, _this5._settings); | ||
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "initialize", _this2).call(_this2, _this2._settings); | ||
}); | ||
} | ||
}, { | ||
key: 'connect', | ||
key: "connect", | ||
value: function connect() { | ||
var _this6 = this; | ||
var _this3 = this; | ||
return this.connectDependencies().then(function () { | ||
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'connect', _this6).call(_this6); | ||
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "connect", _this3).call(_this3); | ||
}); | ||
} | ||
}, { | ||
key: 'authenticate', | ||
key: "authenticate", | ||
value: function authenticate() { | ||
var _this7 = this; | ||
var _this4 = this; | ||
return this.authenticateDependencies().then(function () { | ||
return (0, _get3.default)(ServiceManager.prototype.__proto__ || (0, _getPrototypeOf2.default)(ServiceManager.prototype), 'authenticate', _this7).call(_this7); | ||
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ServiceManager.prototype), "authenticate", _this4).call(_this4); | ||
}); | ||
} | ||
}, { | ||
key: 'initializeDependencies', | ||
key: "initializeDependencies", | ||
value: function initializeDependencies() { | ||
var _this8 = this; | ||
var _this5 = this; | ||
return _waitForDependencies.call(this, function (d) { | ||
return _this8.dependency(d).manager().initialize(); | ||
return _this5.dependency(d).manager().initialize(); | ||
}); | ||
} | ||
}, { | ||
key: 'connectDependencies', | ||
key: "connectDependencies", | ||
value: function connectDependencies() { | ||
var _this9 = this; | ||
var _this6 = this; | ||
return _waitForDependencies.call(this, function (d) { | ||
return _this9.dependency(d).manager().connect(); | ||
return _this6.dependency(d).manager().connect(); | ||
}); | ||
} | ||
}, { | ||
key: 'authenticateDependencies', | ||
key: "authenticateDependencies", | ||
value: function authenticateDependencies() { | ||
var _this10 = this; | ||
var _this7 = this; | ||
return _waitForDependencies.call(this, function (d) { | ||
return _this10.dependency(d).manager().authenticate(); | ||
return _this7.dependency(d).manager().authenticate(); | ||
}); | ||
} | ||
}, { | ||
key: 'createService', | ||
key: "createService", | ||
value: function createService() { | ||
var _this11 = this; | ||
var _this8 = this; | ||
return { manager: function manager() { | ||
return _this11; | ||
} }; | ||
return { | ||
manager: function manager() { | ||
return _this8; | ||
} | ||
}; | ||
} | ||
}]); | ||
return ServiceManager; | ||
}(_ServiceManagerBase3.default); | ||
}(_ServiceManagerBase2["default"]); | ||
exports.default = ServiceManager; | ||
exports.InvalidServiceError = InvalidServiceError; | ||
exports.UnknownDependencyError = UnknownDependencyError; | ||
exports.DependencyNotResolvedError = DependencyNotResolvedError; | ||
exports["default"] = ServiceManager; |
@@ -1,41 +0,28 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = void 0; | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _StateMachine = _interopRequireDefault(require("./StateMachine")); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _ServiceState = _interopRequireDefault(require("./ServiceState")); | ||
var _promise = require('babel-runtime/core-js/promise'); | ||
var _ServiceType = _interopRequireWildcard(require("./ServiceType")); | ||
var _promise2 = _interopRequireDefault(_promise); | ||
var _debug = _interopRequireDefault(require("debug")); | ||
var _StateMachine = require('./StateMachine'); | ||
var log = (0, _debug["default"])('dai:ServiceManagerBase'); | ||
var _StateMachine2 = _interopRequireDefault(_StateMachine); | ||
var _ServiceState = require('./ServiceState'); | ||
var _ServiceState2 = _interopRequireDefault(_ServiceState); | ||
var _ServiceType = require('./ServiceType'); | ||
var _ServiceType2 = _interopRequireDefault(_ServiceType); | ||
var _debug = require('debug'); | ||
var _debug2 = _interopRequireDefault(_debug); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var log = (0, _debug2.default)('dai:ServiceManagerBase'); | ||
function _promisify(unsafeCallback) { | ||
return new _promise2.default(function (resolve, reject) { | ||
return new Promise(function (resolve, reject) { | ||
try { | ||
@@ -49,3 +36,5 @@ resolve(unsafeCallback()); | ||
var ServiceManagerBase = function () { | ||
var ServiceManagerBase = | ||
/*#__PURE__*/ | ||
function () { | ||
/** | ||
@@ -60,3 +49,3 @@ * @param init {function|null} | ||
var auth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; | ||
(0, _classCallCheck3.default)(this, ServiceManagerBase); | ||
(0, _classCallCheck2["default"])(this, ServiceManagerBase); | ||
@@ -68,7 +57,7 @@ // Validate init | ||
init = function init() { | ||
return _promise2.default.resolve(); | ||
return Promise.resolve(); | ||
}; | ||
} | ||
} // Validate connect | ||
// Validate connect | ||
if (connect !== null && typeof connect !== 'function') { | ||
@@ -78,17 +67,17 @@ throw new Error('Invalid argument connect: not a function or null.'); | ||
connect = function connect() { | ||
return _promise2.default.resolve(); | ||
return Promise.resolve(); | ||
}; | ||
} | ||
} // Validate auth | ||
// Validate auth | ||
if (auth !== null && typeof auth !== 'function') { | ||
throw new Error('Invalid argument auth: not a function or null.'); | ||
} | ||
} // Set initial props | ||
// Set initial props | ||
this._init = init; | ||
this._connect = connect; | ||
this._auth = auth; | ||
this._type = auth === null ? connect === null ? _ServiceType2.default.LOCAL : _ServiceType2.default.PUBLIC : _ServiceType2.default.PRIVATE; | ||
this._state = new _StateMachine2.default(_ServiceState2.default.CREATED, _ServiceType.serviceTypeTransitions[this._type]); | ||
this._type = auth === null ? connect === null ? _ServiceType["default"].LOCAL : _ServiceType["default"].PUBLIC : _ServiceType["default"].PRIVATE; | ||
this._state = new _StateMachine["default"](_ServiceState["default"].CREATED, _ServiceType.serviceTypeTransitions[this._type]); | ||
this._initPromise = null; | ||
@@ -98,3 +87,2 @@ this._connectPromise = null; | ||
} | ||
/** | ||
@@ -105,4 +93,4 @@ * @returns {Promise} | ||
(0, _createClass3.default)(ServiceManagerBase, [{ | ||
key: 'initialize', | ||
(0, _createClass2["default"])(ServiceManagerBase, [{ | ||
key: "initialize", | ||
value: function initialize(settings) { | ||
@@ -112,20 +100,23 @@ var _this = this; | ||
// If our current state is preceding the INITIALIZING state, we need to set up initialization | ||
if (this._state.inState(_ServiceState2.default.CREATED)) { | ||
if (this._state.inState(_ServiceState["default"].CREATED)) { | ||
// Assert that there is no initPromise at this point | ||
/* istanbul ignore next */ | ||
if (this._initPromise) { | ||
throw new Error('Unexpected init promise in state CREATED.'); | ||
} | ||
} // Enter the INITIALIZING state | ||
// Enter the INITIALIZING state | ||
this._state.transitionTo(_ServiceState2.default.INITIALIZING); | ||
// After trying to initialize, transition to the success state (READY/OFFLINE) or revert to CREATED | ||
this._state.transitionTo(_ServiceState["default"].INITIALIZING); // After trying to initialize, transition to the success state (READY/OFFLINE) or revert to CREATED | ||
this._initPromise = _promisify(function () { | ||
return _this._init(settings); | ||
}).then(function () { | ||
return _this._state.transitionTo(_this._type === _ServiceType2.default.LOCAL ? _ServiceState2.default.READY : _ServiceState2.default.OFFLINE); | ||
return _this._state.transitionTo(_this._type === _ServiceType["default"].LOCAL ? _ServiceState["default"].READY : _ServiceState["default"].OFFLINE); | ||
}, function (reason) { | ||
log(reason); | ||
_this._state.transitionTo(_ServiceState2.default.CREATED); | ||
_this._state.transitionTo(_ServiceState["default"].CREATED); | ||
throw reason; | ||
@@ -137,3 +128,2 @@ }); | ||
} | ||
/** | ||
@@ -144,3 +134,3 @@ * @returns {Promise} | ||
}, { | ||
key: 'connect', | ||
key: "connect", | ||
value: function connect() { | ||
@@ -150,14 +140,14 @@ var _this2 = this; | ||
// Local Services are 'connected' whenever they are initialized | ||
if (this._type === _ServiceType2.default.LOCAL) { | ||
if (this._type === _ServiceType["default"].LOCAL) { | ||
return this.initialize(); | ||
} | ||
} // If our current state is preceding the CONNECTING state, we need to set up a new connection | ||
// If our current state is preceding the CONNECTING state, we need to set up a new connection | ||
if (this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING, _ServiceState2.default.OFFLINE]) && this._connectPromise === null) { | ||
if (this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING, _ServiceState["default"].OFFLINE]) && this._connectPromise === null) { | ||
// Make sure to be initialized before trying to connect | ||
this._connectPromise = this.initialize().then(function () { | ||
// Enter the CONNECTING state | ||
_this2._state.transitionTo(_ServiceState2.default.CONNECTING); | ||
_this2._state.transitionTo(_ServiceState["default"].CONNECTING); // After trying to connect, transition to the success state (ONLINE/READY) or revert to OFFLINE. | ||
// After trying to connect, transition to the success state (ONLINE/READY) or revert to OFFLINE. | ||
return _promisify(function () { | ||
@@ -169,11 +159,12 @@ return _this2._connect(function () { | ||
// Check if we are still CONNECTING, because another process might have come in between | ||
if (_this2._state.inState(_ServiceState2.default.CONNECTING)) { | ||
_this2._state.transitionTo(_this2._type === _ServiceType2.default.PUBLIC ? _ServiceState2.default.READY : _ServiceState2.default.ONLINE); | ||
if (_this2._state.inState(_ServiceState["default"].CONNECTING)) { | ||
_this2._state.transitionTo(_this2._type === _ServiceType["default"].PUBLIC ? _ServiceState["default"].READY : _ServiceState["default"].ONLINE); | ||
} | ||
}, function (error) { | ||
log('connect error:', error); | ||
// Check if we are still CONNECTING, because another process might have come in between | ||
if (_this2._state.inState(_ServiceState2.default.CONNECTING)) { | ||
_this2._state.transitionTo(_ServiceState2.default.OFFLINE); | ||
log('connect error:', error); // Check if we are still CONNECTING, because another process might have come in between | ||
if (_this2._state.inState(_ServiceState["default"].CONNECTING)) { | ||
_this2._state.transitionTo(_ServiceState["default"].OFFLINE); | ||
} | ||
throw error; | ||
@@ -186,3 +177,2 @@ }); | ||
} | ||
/** | ||
@@ -193,3 +183,3 @@ * @returns {Promise} | ||
}, { | ||
key: 'authenticate', | ||
key: "authenticate", | ||
value: function authenticate() { | ||
@@ -199,14 +189,14 @@ var _this3 = this; | ||
// Public and Local Services are 'authenticated' whenever they are connected (/initialized) | ||
if (this._type !== _ServiceType2.default.PRIVATE) { | ||
if (this._type !== _ServiceType["default"].PRIVATE) { | ||
return this.connect(); | ||
} | ||
} // If our current state is preceding the AUTHENTICATING state, we need to set up a new authentication | ||
// If our current state is preceding the AUTHENTICATING state, we need to set up a new authentication | ||
if (this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING, _ServiceState2.default.OFFLINE, _ServiceState2.default.CONNECTING, _ServiceState2.default.ONLINE]) && this._authPromise === null) { | ||
if (this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING, _ServiceState["default"].OFFLINE, _ServiceState["default"].CONNECTING, _ServiceState["default"].ONLINE]) && this._authPromise === null) { | ||
// Make sure to be connected before trying to authenticate | ||
this._authPromise = this.connect().then(function () { | ||
// Enter the AUTHENTICATING state | ||
_this3._state.transitionTo(_ServiceState2.default.AUTHENTICATING); | ||
_this3._state.transitionTo(_ServiceState["default"].AUTHENTICATING); // After trying to authenticate, transition to the success state (READY) or revert to ONLINE | ||
// After trying to authenticate, transition to the success state (READY) or revert to ONLINE | ||
return _promisify(function () { | ||
@@ -219,10 +209,10 @@ return _this3._auth(function () { | ||
// (Most notably, a disconnect may have transitioned us into OFFLINE state). | ||
if (_this3._state.inState(_ServiceState2.default.AUTHENTICATING)) { | ||
_this3._state.transitionTo(_ServiceState2.default.READY); | ||
if (_this3._state.inState(_ServiceState["default"].AUTHENTICATING)) { | ||
_this3._state.transitionTo(_ServiceState["default"].READY); | ||
} | ||
}, function (reason) { | ||
log('authenticate error: ' + reason); | ||
// Check if we are still AUTHENTICATING, because another process might have come in between | ||
if (_this3._state.inState(_ServiceState2.default.AUTHENTICATING)) { | ||
_this3._state.transitionTo(_ServiceState2.default.ONLINE); | ||
log('authenticate error: ' + reason); // Check if we are still AUTHENTICATING, because another process might have come in between | ||
if (_this3._state.inState(_ServiceState["default"].AUTHENTICATING)) { | ||
_this3._state.transitionTo(_ServiceState["default"].ONLINE); | ||
} | ||
@@ -235,3 +225,2 @@ }); | ||
} | ||
/** | ||
@@ -242,3 +231,3 @@ * @returns { ServiceManagerBase } | ||
}, { | ||
key: 'settings', | ||
key: "settings", | ||
value: function settings(_settings) { | ||
@@ -248,3 +237,2 @@ this._settings = _settings; | ||
} | ||
/** | ||
@@ -255,7 +243,6 @@ * @returns {string} | ||
}, { | ||
key: 'state', | ||
key: "state", | ||
value: function state() { | ||
return this._state.state(); | ||
} | ||
/** | ||
@@ -266,7 +253,6 @@ * @returns {string} | ||
}, { | ||
key: 'type', | ||
key: "type", | ||
value: function type() { | ||
return this._type; | ||
} | ||
/** | ||
@@ -277,7 +263,6 @@ * @returns {boolean} | ||
}, { | ||
key: 'isInitialized', | ||
key: "isInitialized", | ||
value: function isInitialized() { | ||
return !this._state.inState([_ServiceState2.default.CREATED, _ServiceState2.default.INITIALIZING]); | ||
return !this._state.inState([_ServiceState["default"].CREATED, _ServiceState["default"].INITIALIZING]); | ||
} | ||
/** | ||
@@ -288,7 +273,6 @@ * @returns {boolean|null} | ||
}, { | ||
key: 'isConnected', | ||
key: "isConnected", | ||
value: function isConnected() { | ||
return this._type === _ServiceType2.default.LOCAL ? null : this._state.inState([_ServiceState2.default.ONLINE, _ServiceState2.default.AUTHENTICATING, _ServiceState2.default.READY]); | ||
return this._type === _ServiceType["default"].LOCAL ? null : this._state.inState([_ServiceState["default"].ONLINE, _ServiceState["default"].AUTHENTICATING, _ServiceState["default"].READY]); | ||
} | ||
/** | ||
@@ -299,7 +283,6 @@ * @returns {boolean|null} | ||
}, { | ||
key: 'isAuthenticated', | ||
key: "isAuthenticated", | ||
value: function isAuthenticated() { | ||
return this._type === _ServiceType2.default.PRIVATE ? this._state.inState(_ServiceState2.default.READY) : null; | ||
return this._type === _ServiceType["default"].PRIVATE ? this._state.inState(_ServiceState["default"].READY) : null; | ||
} | ||
/** | ||
@@ -310,7 +293,6 @@ * @returns {boolean} | ||
}, { | ||
key: 'isReady', | ||
key: "isReady", | ||
value: function isReady() { | ||
return this._state.inState(_ServiceState2.default.READY); | ||
return this._state.inState(_ServiceState["default"].READY); | ||
} | ||
/** | ||
@@ -322,6 +304,6 @@ * @param {function} handler | ||
}, { | ||
key: 'onInitialized', | ||
key: "onInitialized", | ||
value: function onInitialized(handler) { | ||
this._state.onStateChanged(function (oldState, newState) { | ||
if (oldState === _ServiceState2.default.INITIALIZING && (newState === _ServiceState2.default.OFFLINE || newState === _ServiceState2.default.READY)) { | ||
if (oldState === _ServiceState["default"].INITIALIZING && (newState === _ServiceState["default"].OFFLINE || newState === _ServiceState["default"].READY)) { | ||
handler(); | ||
@@ -333,3 +315,2 @@ } | ||
} | ||
/** | ||
@@ -341,6 +322,6 @@ * @param {function} handler | ||
}, { | ||
key: 'onConnected', | ||
key: "onConnected", | ||
value: function onConnected(handler) { | ||
this._state.onStateChanged(function (oldState, newState) { | ||
if (oldState === _ServiceState2.default.CONNECTING && (newState === _ServiceState2.default.ONLINE || newState === _ServiceState2.default.READY)) { | ||
if (oldState === _ServiceState["default"].CONNECTING && (newState === _ServiceState["default"].ONLINE || newState === _ServiceState["default"].READY)) { | ||
handler(); | ||
@@ -352,3 +333,2 @@ } | ||
} | ||
/** | ||
@@ -360,6 +340,6 @@ * @param {function} handler | ||
}, { | ||
key: 'onDisconnected', | ||
key: "onDisconnected", | ||
value: function onDisconnected(handler) { | ||
this._state.onStateChanged(function (oldState, newState) { | ||
if (newState === _ServiceState2.default.OFFLINE && (oldState === _ServiceState2.default.ONLINE || oldState === _ServiceState2.default.READY)) { | ||
if (newState === _ServiceState["default"].OFFLINE && (oldState === _ServiceState["default"].ONLINE || oldState === _ServiceState["default"].READY)) { | ||
handler(); | ||
@@ -371,3 +351,2 @@ } | ||
} | ||
/** | ||
@@ -379,6 +358,6 @@ * @param {function} handler | ||
}, { | ||
key: 'onAuthenticated', | ||
key: "onAuthenticated", | ||
value: function onAuthenticated(handler) { | ||
this._state.onStateChanged(function (oldState, newState) { | ||
if (oldState === _ServiceState2.default.AUTHENTICATING && newState === _ServiceState2.default.READY) { | ||
if (oldState === _ServiceState["default"].AUTHENTICATING && newState === _ServiceState["default"].READY) { | ||
handler(); | ||
@@ -390,3 +369,2 @@ } | ||
} | ||
/** | ||
@@ -398,7 +376,7 @@ * @param {function} handler | ||
}, { | ||
key: 'onDeauthenticated', | ||
key: "onDeauthenticated", | ||
value: function onDeauthenticated(handler) { | ||
if (this.type() === _ServiceType2.default.PRIVATE) { | ||
if (this.type() === _ServiceType["default"].PRIVATE) { | ||
this._state.onStateChanged(function (oldState, newState) { | ||
if ((newState === _ServiceState2.default.OFFLINE || newState === _ServiceState2.default.ONLINE) && oldState === _ServiceState2.default.READY) { | ||
if ((newState === _ServiceState["default"].OFFLINE || newState === _ServiceState["default"].ONLINE) && oldState === _ServiceState["default"].READY) { | ||
handler(); | ||
@@ -411,3 +389,2 @@ } | ||
} | ||
/** | ||
@@ -419,6 +396,6 @@ * @param {function} handler | ||
}, { | ||
key: 'onReady', | ||
key: "onReady", | ||
value: function onReady(handler) { | ||
this._state.onStateChanged(function (_, newState) { | ||
if (newState === _ServiceState2.default.READY) { | ||
if (newState === _ServiceState["default"].READY) { | ||
handler(); | ||
@@ -430,3 +407,2 @@ } | ||
} | ||
/** | ||
@@ -438,8 +414,8 @@ * @param {function} handler | ||
}, { | ||
key: 'onStateChanged', | ||
key: "onStateChanged", | ||
value: function onStateChanged(handler) { | ||
this._state.onStateChanged(handler); | ||
return this; | ||
} | ||
/** | ||
@@ -454,21 +430,20 @@ * This is called by the service implementation object, which is the only authority with knowledge on the true | ||
}, { | ||
key: '_disconnect', | ||
key: "_disconnect", | ||
value: function _disconnect() { | ||
/* istanbul ignore next */ | ||
if (this._type === _ServiceType2.default.LOCAL) { | ||
if (this._type === _ServiceType["default"].LOCAL) { | ||
throw new Error('_disconnect must not be called on a Local Service'); | ||
} | ||
if (this._state.inState(_ServiceState2.default.AUTHENTICATING)) { | ||
if (this._state.inState(_ServiceState["default"].AUTHENTICATING)) { | ||
this._deauthenticate(); | ||
} | ||
if (this._state.inState([_ServiceState2.default.READY, _ServiceState2.default.ONLINE, _ServiceState2.default.CONNECTING])) { | ||
if (this._state.inState([_ServiceState["default"].READY, _ServiceState["default"].ONLINE, _ServiceState["default"].CONNECTING])) { | ||
this._authPromise = null; | ||
this._connectPromise = null; | ||
this._state.transitionTo(_ServiceState2.default.OFFLINE); | ||
this._state.transitionTo(_ServiceState["default"].OFFLINE); | ||
} | ||
} | ||
/** | ||
@@ -483,12 +458,13 @@ * This is called by the service implementation object, which is the only authority with knowledge on the true | ||
}, { | ||
key: '_deauthenticate', | ||
key: "_deauthenticate", | ||
value: function _deauthenticate() { | ||
/* istanbul ignore next */ | ||
if (this._type !== _ServiceType2.default.PRIVATE) { | ||
if (this._type !== _ServiceType["default"].PRIVATE) { | ||
throw new Error('_deauthenticate must not be called on a Local or Public Service'); | ||
} | ||
if (this._state.inState([_ServiceState2.default.READY, _ServiceState2.default.AUTHENTICATING])) { | ||
if (this._state.inState([_ServiceState["default"].READY, _ServiceState["default"].AUTHENTICATING])) { | ||
this._authPromise = null; | ||
this._state.transitionTo(_ServiceState2.default.ONLINE); | ||
this._state.transitionTo(_ServiceState["default"].ONLINE); | ||
} | ||
@@ -500,2 +476,3 @@ } | ||
exports.default = ServiceManagerBase; | ||
var _default = ServiceManagerBase; | ||
exports["default"] = _default; |
@@ -1,2 +0,2 @@ | ||
'use strict'; | ||
"use strict"; | ||
@@ -6,2 +6,3 @@ Object.defineProperty(exports, "__esModule", { | ||
}); | ||
exports["default"] = void 0; | ||
var ServiceState = { | ||
@@ -17,3 +18,3 @@ CREATED: 'CREATED', | ||
}; | ||
exports.default = ServiceState; | ||
var _default = ServiceState; | ||
exports["default"] = _default; |
@@ -1,14 +0,12 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.serviceTypeTransitions = exports.default = undefined; | ||
exports.serviceTypeTransitions = exports["default"] = void 0; | ||
var _ServiceState = require('./ServiceState'); | ||
var _ServiceState = _interopRequireDefault(require("./ServiceState")); | ||
var _ServiceState2 = _interopRequireDefault(_ServiceState); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var ServiceType = { | ||
@@ -19,30 +17,27 @@ LOCAL: 'LOCAL', | ||
}; | ||
exports["default"] = ServiceType; | ||
var localServiceLifeCycle = { | ||
CREATED: [_ServiceState2.default.INITIALIZING], | ||
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.READY], | ||
READY: [_ServiceState2.default.ERROR], | ||
CREATED: [_ServiceState["default"].INITIALIZING], | ||
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].READY], | ||
READY: [_ServiceState["default"].ERROR], | ||
ERROR: [] | ||
}; | ||
var publicServiceLifeCycle = { | ||
CREATED: [_ServiceState2.default.INITIALIZING], | ||
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.OFFLINE], | ||
OFFLINE: [_ServiceState2.default.CONNECTING], | ||
CONNECTING: [_ServiceState2.default.OFFLINE, _ServiceState2.default.READY], | ||
READY: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ERROR], | ||
CREATED: [_ServiceState["default"].INITIALIZING], | ||
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].OFFLINE], | ||
OFFLINE: [_ServiceState["default"].CONNECTING], | ||
CONNECTING: [_ServiceState["default"].OFFLINE, _ServiceState["default"].READY], | ||
READY: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ERROR], | ||
ERROR: [] | ||
}; | ||
var privateServiceLifeCycle = { | ||
CREATED: [_ServiceState2.default.INITIALIZING], | ||
INITIALIZING: [_ServiceState2.default.CREATED, _ServiceState2.default.OFFLINE], | ||
OFFLINE: [_ServiceState2.default.CONNECTING], | ||
CONNECTING: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ONLINE], | ||
ONLINE: [_ServiceState2.default.OFFLINE, _ServiceState2.default.AUTHENTICATING], | ||
AUTHENTICATING: [_ServiceState2.default.ONLINE, _ServiceState2.default.READY], | ||
READY: [_ServiceState2.default.OFFLINE, _ServiceState2.default.ONLINE, _ServiceState2.default.ERROR], | ||
CREATED: [_ServiceState["default"].INITIALIZING], | ||
INITIALIZING: [_ServiceState["default"].CREATED, _ServiceState["default"].OFFLINE], | ||
OFFLINE: [_ServiceState["default"].CONNECTING], | ||
CONNECTING: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ONLINE], | ||
ONLINE: [_ServiceState["default"].OFFLINE, _ServiceState["default"].AUTHENTICATING], | ||
AUTHENTICATING: [_ServiceState["default"].ONLINE, _ServiceState["default"].READY], | ||
READY: [_ServiceState["default"].OFFLINE, _ServiceState["default"].ONLINE, _ServiceState["default"].ERROR], | ||
ERROR: [] | ||
}; | ||
var serviceTypeTransitions = { | ||
@@ -53,4 +48,2 @@ LOCAL: localServiceLifeCycle, | ||
}; | ||
exports.default = ServiceType; | ||
exports.serviceTypeTransitions = serviceTypeTransitions; |
@@ -1,58 +0,50 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.IllegalStateError = undefined; | ||
exports["default"] = exports.IllegalStateError = void 0; | ||
var _keys = require('babel-runtime/core-js/object/keys'); | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _keys2 = _interopRequireDefault(_keys); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _typeof2 = require('babel-runtime/helpers/typeof'); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _typeof3 = _interopRequireDefault(_typeof2); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); | ||
var IllegalStateError = | ||
/*#__PURE__*/ | ||
function (_Error) { | ||
(0, _inherits2["default"])(IllegalStateError, _Error); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var IllegalStateError = exports.IllegalStateError = function (_Error) { | ||
(0, _inherits3.default)(IllegalStateError, _Error); | ||
function IllegalStateError() { | ||
(0, _classCallCheck3.default)(this, IllegalStateError); | ||
return (0, _possibleConstructorReturn3.default)(this, (IllegalStateError.__proto__ || (0, _getPrototypeOf2.default)(IllegalStateError)).apply(this, arguments)); | ||
(0, _classCallCheck2["default"])(this, IllegalStateError); | ||
return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(IllegalStateError).apply(this, arguments)); | ||
} | ||
return IllegalStateError; | ||
}(Error); | ||
}((0, _wrapNativeSuper2["default"])(Error)); | ||
var StateMachine = function () { | ||
exports.IllegalStateError = IllegalStateError; | ||
var StateMachine = | ||
/*#__PURE__*/ | ||
function () { | ||
function StateMachine(initialState, transitions) { | ||
(0, _classCallCheck3.default)(this, StateMachine); | ||
(0, _classCallCheck2["default"])(this, StateMachine); | ||
if ((typeof transitions === 'undefined' ? 'undefined' : (0, _typeof3.default)(transitions)) !== 'object') { | ||
if ((0, _typeof2["default"])(transitions) !== 'object') { | ||
throw new Error('StateMachine transitions parameter must be an object.'); | ||
} | ||
if ((0, _keys2.default)(transitions).filter(function (k) { | ||
if (Object.keys(transitions).filter(function (k) { | ||
return transitions.hasOwnProperty(k) && !(transitions[k] instanceof Array); | ||
@@ -63,3 +55,3 @@ }).length > 0) { | ||
if ((0, _keys2.default)(transitions).filter(function (k) { | ||
if (Object.keys(transitions).filter(function (k) { | ||
return transitions.hasOwnProperty(k) && transitions[k].filter(function (s) { | ||
@@ -81,4 +73,4 @@ return !transitions[s]; | ||
(0, _createClass3.default)(StateMachine, [{ | ||
key: 'onStateChanged', | ||
(0, _createClass2["default"])(StateMachine, [{ | ||
key: "onStateChanged", | ||
value: function onStateChanged(callback) { | ||
@@ -88,3 +80,3 @@ this._stateChangedHandlers.push(callback); | ||
}, { | ||
key: 'state', | ||
key: "state", | ||
value: function state() { | ||
@@ -94,3 +86,3 @@ return this._state; | ||
}, { | ||
key: 'inState', | ||
key: "inState", | ||
value: function inState(state) { | ||
@@ -104,3 +96,3 @@ if (!(state instanceof Array)) { | ||
}, { | ||
key: 'assertState', | ||
key: "assertState", | ||
value: function assertState(state) { | ||
@@ -114,3 +106,3 @@ var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; | ||
}, { | ||
key: 'transitionTo', | ||
key: "transitionTo", | ||
value: function transitionTo(newState) { | ||
@@ -128,2 +120,3 @@ if (this._nextStates[newState] === undefined) { | ||
this._state = newState; | ||
this._stateChangedHandlers.forEach(function (cb) { | ||
@@ -140,2 +133,2 @@ return cb(oldState, newState); | ||
exports.default = StateMachine; | ||
exports["default"] = StateMachine; |
{ | ||
"name": "@makerdao/services-core", | ||
"description": "Dependency injection framework", | ||
"version": "0.9.8", | ||
"version": "0.9.9", | ||
"license": "MIT", | ||
@@ -18,15 +18,7 @@ "main": "dist/index.js", | ||
], | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"babel-jest": "^22.4.3", | ||
"babel-plugin-transform-runtime": "^6.23.0", | ||
"babel-preset-env": "^1.7.0", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"jest": "^23.6.0" | ||
}, | ||
"dependencies": { | ||
"babel-runtime": "^6.26.0", | ||
"lodash.values": "^4.3.0", | ||
"lodash": "^4.17.15", | ||
"toposort": "^2.0.2" | ||
} | ||
} |
@@ -1,2 +0,3 @@ | ||
import values from 'lodash.values'; | ||
import values from 'lodash/values'; | ||
import uniq from 'lodash/uniq'; | ||
import ServiceManager, { InvalidServiceError } from './ServiceManager'; | ||
@@ -29,8 +30,13 @@ import toposort from 'toposort'; | ||
const edges = []; | ||
const servicesWithoutDeps = []; | ||
for (let service of services) { | ||
const name = service.manager().name(); | ||
const depNames = service.manager().dependencies(); | ||
depNames.forEach(dn => edges.push([dn, name])); | ||
if (depNames.length === 0) { | ||
servicesWithoutDeps.push(name); | ||
} else { | ||
depNames.forEach(dn => edges.push([dn, name])); | ||
} | ||
} | ||
return toposort(edges); | ||
return uniq(toposort(edges).concat(servicesWithoutDeps)); | ||
} | ||
@@ -37,0 +43,0 @@ |
@@ -0,1 +1,3 @@ | ||
export { default as standardizeConfig } from './standardizeConfig'; | ||
export { default as ServiceProvider } from './ServiceProvider'; | ||
export { default as Container } from './Container'; | ||
@@ -2,0 +4,0 @@ export { default as LocalService } from './LocalService'; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
90978
0
28
2586
0
+ Addedlodash@^4.17.15
+ Addedlodash@4.17.21(transitive)
- Removedlodash.values@^4.3.0
- Removedlodash.values@4.3.0(transitive)