UNPKG

express-locator

Version:
159 lines (143 loc) 19.5 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["reduxMethods"] = factory(); else root["reduxMethods"] = factory(); })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./src sync recursive": /*!******************!*\ !*** ./src sync ***! \******************/ /*! no static exports found */ /***/ (function(module, exports) { eval("function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./src sync recursive\";\n\n//# sourceURL=webpack://reduxMethods/./src_sync?"); /***/ }), /***/ "./src/ControlledError.js": /*!********************************!*\ !*** ./src/ControlledError.js ***! \********************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ControlledError; });\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction 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; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @description a simple class extending the Error constructor to include an isControlled = true property\n * @class ControlledError\n * @extends {Error}\n */\nvar ControlledError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(ControlledError, _Error);\n\n function ControlledError() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ControlledError);\n\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ControlledError)).call.apply(_getPrototypeOf2, [this].concat(params)));\n if (Error.captureStackTrace) Error.captureStackTrace(_assertThisInitialized(_assertThisInitialized(_this)), ControlledError);\n _this.isControlled = true;\n return _this;\n }\n\n return ControlledError;\n}(_wrapNativeSuper(Error));\n\n\n\n//# sourceURL=webpack://reduxMethods/./src/ControlledError.js?"); /***/ }), /***/ "./src/Instance.js": /*!*************************!*\ !*** ./src/Instance.js ***! \*************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Instance; });\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @description A class to automatically assign dependencies, relevant config and locator to this of the child class\n * @export\n * @class Instance\n */\nvar Instance = function Instance(properties, dependencies) {\n var _this = this;\n\n _classCallCheck(this, Instance);\n\n if (_typeof(properties) === 'object' && !Array.isArray(properties)) {\n Object.keys(properties).forEach(function (prop) {\n _this[prop] = properties[prop]; //eslint-disable-line\n });\n } else throw new Error('Locator must be provided to class in an object key-value pair');\n\n if (Array.isArray(dependencies)) {\n dependencies.forEach(function (dependency) {\n _this[dependency] = _this.locator.get(dependency); //eslint-disable-line\n });\n }\n};\n\n\n\n//# sourceURL=webpack://reduxMethods/./src/Instance.js?"); /***/ }), /***/ "./src/Locator.js": /*!************************!*\ !*** ./src/Locator.js ***! \************************/ /*! exports provided: default, locator */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Locator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"locator\", function() { return locator; });\n/* harmony import */ var _ControlledError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ControlledError */ \"./src/ControlledError.js\");\n/* harmony import */ var _Instance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Instance */ \"./src/Instance.js\");\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n/**\n * @description A class to manage dependencies and configuration on a node application\n * @export\n * @class Locator\n */\nvar Locator =\n/*#__PURE__*/\nfunction () {\n function Locator() {\n _classCallCheck(this, Locator);\n\n this.registry = {\n Error: {},\n Instance: {}\n };\n this.cache = {\n Error: _ControlledError__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _Instance__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n }\n\n _createClass(Locator, [{\n key: \"config\",\n value: function config(configs) {\n this.configs = configs;\n\n for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n dependencies[_key - 1] = arguments[_key];\n }\n\n this.register.apply(this, dependencies);\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this = this;\n\n var invokers = [];\n\n var addDependency = function addDependency(dependency) {\n if (Array.isArray(dependency)) dependency.forEach(addDependency);else if (typeof dependency === 'string') _this.registry[dependency] = {\n construct: dependency\n };else {\n var name = dependency.name,\n dependencies = dependency.dependencies,\n config = dependency.config,\n construct = dependency.construct,\n invoke = dependency.invoke,\n rest = _objectWithoutProperties(dependency, [\"name\", \"dependencies\", \"config\", \"construct\", \"invoke\"]);\n\n if (name) {\n _this.registry[name] = {\n config: config,\n construct: construct,\n dependencies: dependencies\n };\n invoke && invokers.push(name);\n } else if (!name && Object.keys(rest).length === 1) {\n var _Object$keys = Object.keys(rest),\n _Object$keys2 = _slicedToArray(_Object$keys, 1),\n derivedName = _Object$keys2[0];\n\n var derivedConstruct = rest[derivedName];\n _this.registry[derivedName] = {\n config: config,\n construct: derivedConstruct,\n dependencies: dependencies\n };\n invoke && invokers.push(derivedName);\n } else throw new Error('No dependency name has been provided');\n }\n };\n\n for (var _len2 = arguments.length, dependencyType = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n dependencyType[_key2] = arguments[_key2];\n }\n\n dependencyType.forEach(addDependency);\n invokers.forEach(function (name) {\n return _this.get(name);\n });\n }\n }, {\n key: \"get\",\n value: function get(dependencyName) {\n if (typeof this.registry[dependencyName] === 'undefined') throw new Error(\"\".concat(dependencyName, \": Attempting to retrieve unknown dependency\"));\n\n if (typeof this.cache[dependencyName] === 'undefined') {\n var thisDependency = this.registry[dependencyName];\n var construct = thisDependency.construct,\n _thisDependency$depen = thisDependency.dependencies,\n dependencies = _thisDependency$depen === void 0 ? [] : _thisDependency$depen,\n config = thisDependency.config;\n\n if (construct) {\n if (typeof construct === 'string') {\n var name = construct;\n this.cache[dependencyName] = __webpack_require__(\"./src sync recursive\")(name);\n } else {\n var props = {\n config: this.configs && (config ? this.configs : this.configs[dependencyName]),\n locator: this\n };\n\n if (construct.prototype instanceof _Instance__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n var Construct = construct;\n this.cache[dependencyName] = new Construct(props, dependencies);\n } else if (typeof construct === 'function') this.cache[dependencyName] = construct(props, dependencies);\n }\n }\n }\n\n if (!this.cache[dependencyName]) throw new Error(\"\".concat(dependencyName, \": Dependency construction object is invalid\"));\n return this.cache[dependencyName];\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.registry = {\n Error: {},\n Instance: {}\n };\n this.cache = {\n Error: _ControlledError__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Instance: _Instance__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n }\n }]);\n\n return Locator;\n}();\n\n\nvar locator = new Locator();\n\n//# sourceURL=webpack://reduxMethods/./src/Locator.js?"); /***/ }), /***/ "./src/index.js": /*!**********************!*\ !*** ./src/index.js ***! \**********************/ /*! exports provided: Locator, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Locator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Locator */ \"./src/Locator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Locator\", function() { return _Locator__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n_Locator__WEBPACK_IMPORTED_MODULE_0__[\"locator\"].Locator = _Locator__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Locator__WEBPACK_IMPORTED_MODULE_0__[\"locator\"]);\n\n//# sourceURL=webpack://reduxMethods/./src/index.js?"); /***/ }) /******/ }); });