UNPKG

31.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"dot.min.js","sources":["utils/get-array-index.js","utils/get-key.js","utils/is.js","pick.js","parse-key.js","utils/merge.js","utils/create-path-breadcrumb.js","parse.js","index.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Ger Array Index\n * @description get array index from given string\n * @param {string} str\n * @return {string[]|null}\n */\nvar getArrayIndex = function getArrayIndex(str) {\n return getArrayIndex.regexNaNIndex.exec(str) || getArrayIndex.regexIntegerIndex.exec(str);\n};\n\ngetArrayIndex.regexIntegerIndex = /\\[([-]*\\d*)\\]/g;\ngetArrayIndex.regexNaNIndex = /\\[([^\\]]*)\\]/;\nvar _default = getArrayIndex;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Get initial key from dot notation path\n * @description returns first key defined in dot notation and the remaining path\n * @param {string} value\n * @returns {[string, string | undefined]} - returns key, remaining dot notation path and isArray,\n */\nvar getKey = function getKey(value) {\n var _value$split$filter = value.split(getKey.regex).filter(Boolean),\n _value$split$filter2 = _toArray(_value$split$filter),\n current = _value$split$filter2[0],\n remaining = _value$split$filter2.slice(1);\n\n return [current, remaining.length ? remaining.join('.') : undefined];\n};\n\ngetKey.regex = /\\.|(\\[[^\\]]*\\])|(\\[[-]*\\d*\\])/;\nvar _default = getKey;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; 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\nvar _default = {\n nullOrUndefined: function nullOrUndefined(value) {\n return value === null || value === undefined;\n },\n object: function object(value) {\n return value !== null && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';\n },\n array: function array(value) {\n return Array.isArray(value);\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.pick = void 0;\n\nvar _getArrayIndex = _interopRequireDefault(require(\"./utils/get-array-index\"));\n\nvar _getKey = _interopRequireDefault(require(\"./utils/get-key\"));\n\nvar _is = _interopRequireDefault(require(\"./utils/is\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\n/**\n * Pick\n * @template T, S\n * @description Reads value from object using dot notation path as key\n * @param {string} path\n * @param {T} source\n * @returns {T} value\n */\nvar pick = function pick(source, path) {\n if (_is.default.nullOrUndefined(path) || !path.trim()) {\n throw new SyntaxError(\"A dot notation path was expected, but instead got \\\"\".concat(path, \"\\\"\"));\n } // eslint-disable-next-line prefer-const\n\n\n var _ref = (0, _getKey.default)(path),\n _ref2 = _slicedToArray(_ref, 2),\n current = _ref2[0],\n remaining = _ref2[1];\n\n var match = (0, _getArrayIndex.default)(current.toString());\n\n if (match) {\n var index = match[1];\n\n if (!index) {\n throw new SyntaxError(\"An array index was expected but nothing was found at \\\"\".concat(path, \"\\\"\"));\n }\n\n if (Number.isNaN(+index)) {\n throw new TypeError(\"Array index must a positive integer \\\"\".concat(index, \"\\\"\"));\n }\n\n if (+index < 0) {\n throw new RangeError(\"Array index must be equal or greater than 0, but instead got \\\"\".concat(index, \"\\\"\"));\n }\n\n current = +index;\n }\n\n if (!remaining || !source[current]) {\n return source[current];\n }\n\n return pick(source[current], remaining);\n};\n\nexports.pick = pick;\nvar _default = pick;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getArrayIndex = _interopRequireDefault(require(\"./utils/get-array-index\"));\n\nvar _getKey3 = _interopRequireDefault(require(\"./utils/get-key\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; 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\n/**\n * Parse object key from dot notation\n * @example\n * parseKey('person.name', 'John Doe');\n * // outputs { person: { name: 'John Doe' } }\n * parseKey('person.alias[]', 'John Doe');\n * // outputs { person: { alias: ['John Doe] } }\n * @param {string} path - Dot notation object path\n * @param {any} value - Dot notation path value\n * @returns {object}\n */\nvar parseKey = function parseKey(path, value) {\n var _getKey = (0, _getKey3.default)(path),\n _getKey2 = _slicedToArray(_getKey, 2),\n current = _getKey2[0],\n remaining = _getKey2[1];\n\n var match = (0, _getArrayIndex.default)(current);\n\n var mount = function mount() {\n return remaining ? parseKey(remaining, value) : value;\n };\n\n return match ? [mount()] : _defineProperty({}, current, mount());\n};\n\nvar _default = parseKey;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _is = _interopRequireDefault(require(\"./is\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar merge = function merge(x, y) {\n if (!(_is.default.object(x) || _is.default.object(y))) {\n return y;\n }\n\n var keys = Object.keys(x);\n\n var result = _objectSpread({}, y);\n\n for (var i = 0; i < keys.length; i += 1) {\n var key = keys[i];\n var xValue = x[key];\n var yValue = y[key];\n\n if (Array.isArray(xValue) && Array.isArray(yValue)) {\n result[key] = yValue;\n } else if (_is.default.object(xValue) && _is.default.object(yValue)) {\n result[key] = merge(_objectSpread({}, xValue), _objectSpread({}, yValue));\n } else {\n result[key] = xValue;\n }\n }\n\n return result;\n};\n\nvar _default = merge;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _getKey = _interopRequireDefault(require(\"./get-key\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Create path breadcrumb\n * @desc parse dot notation syntax into path breadcrumbs\n * @param {string} path - dot notation path\n * @return {string[]}\n */\nvar createPathBreadcrumb = function createPathBreadcrumb(path) {\n return path.split(_getKey.default.regex).filter(Boolean) // add default index for empty array notation\n .map(function (p) {\n return p === '[]' ? '[0]' : p;\n });\n};\n\nvar _default = createPathBreadcrumb;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _pick = _interopRequireDefault(require(\"./pick\"));\n\nvar _parseKey = _interopRequireDefault(require(\"./parse-key\"));\n\nvar _getArrayIndex2 = _interopRequireDefault(require(\"./utils/get-array-index\"));\n\nvar _is = _interopRequireDefault(require(\"./utils/is\"));\n\nvar _merge = _interopRequireDefault(require(\"./utils/merge\"));\n\nvar _createPathBreadcrumb = _interopRequireDefault(require(\"./utils/create-path-breadcrumb\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar compile = function compile(source, instructions, value) {\n var data = _is.default.array(source) ? _toConsumableArray(source) : _objectSpread({}, source);\n\n if (_is.default.object(data)) {\n return (0, _merge.default)(data, (0, _parseKey.default)(instructions.join('.'), value));\n }\n\n var _getArrayIndex = (0, _getArrayIndex2.default)(instructions.join('.')),\n idx = _getArrayIndex[1],\n index = _getArrayIndex.index;\n\n if (+idx > data.length) {\n throw new RangeError(\"Expected array index for path \\\"\".concat(instructions.join('.'), \"\\\" to be \\\"\").concat(data.length, \"\\\" but found instead \\\"\").concat(idx, \"\\\"\"));\n }\n\n if (_is.default.nullOrUndefined(data[+idx])) {\n data.push.apply(data, _toConsumableArray((0, _parseKey.default)(instructions.splice(index).join('.'), value)));\n } else {\n var hasChild = instructions.length > 1;\n var result = hasChild ? compile(data[+idx], instructions.slice(1), value) : value;\n\n if (_is.default.object(result)) {\n data[+idx] = _objectSpread({}, result);\n } else if (_is.default.array(result)) {\n data[+idx] = _toConsumableArray(result);\n } else {\n data[+idx] = result;\n }\n }\n\n return data;\n};\n/**\n * Parse object from dot notation\n * @template T\n * @param {object} source - Dot notation object\n * @returns {object}\n * @param source\n * @return {T|T[]}\n */\n\n\nvar parse = function parse(source) {\n var paths = Object.keys(source);\n var result = (0, _getArrayIndex2.default)((0, _createPathBreadcrumb.default)(paths[0])[0]) ? [] : {};\n\n for (var i = 0; i < paths.length; i += 1) {\n var path = paths[i];\n var hasArrayNotation = (0, _getArrayIndex2.default)(path);\n var value = source[path];\n var parsedValue = (0, _parseKey.default)(path, value);\n\n if (hasArrayNotation) {\n var commonPath = path.substr(0, hasArrayNotation.index);\n var workingPath = (0, _createPathBreadcrumb.default)(path.replace(commonPath, ''));\n var workingNode = commonPath ? (0, _pick.default)(result, commonPath) || [] : result;\n parsedValue = compile(workingNode, workingPath, value);\n\n if (commonPath) {\n parsedValue = (0, _parseKey.default)(commonPath, parsedValue);\n }\n }\n\n if (_is.default.array(parsedValue)) {\n result = parsedValue;\n }\n\n result = (0, _merge.default)(result, parsedValue);\n }\n\n return result;\n};\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"pick\", {\n enumerable: true,\n get: function get() {\n return _pick.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"parseKey\", {\n enumerable: true,\n get: function get() {\n return _parseKey.default;\n }\n});\nexports.default = void 0;\n\nvar _pick = _interopRequireDefault(require(\"./pick\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse\"));\n\nvar _parseKey = _interopRequireDefault(require(\"./parse-key\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n pick: _pick.default,\n parse: _parse.default,\n parseKey: _parseKey.default\n};\nexports.default = _default;"],"names":["Object","defineProperty","exports","value","getArrayIndex","str","regexNaNIndex","exec","regexIntegerIndex","_default","_toArray","arr","Array","isArray","_arrayWithHoles","iter","Symbol","iterator","from","_iterableToArray","o","minLen","_arrayLikeToArray","n","prototype","toString","call","slice","constructor","name","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","length","i","arr2","getKey","_value$split$filter2","split","regex","filter","Boolean","current","remaining","join","undefined","_typeof","obj","nullOrUndefined","object","array","_getArrayIndex","_interopRequireDefault","require$$0","_getKey","require$$1","_is","require$$2","__esModule","default","_slicedToArray","_arr","_n","_d","_e","_s","_i","next","done","push","err","_iterableToArrayLimit","pick","source","path","trim","SyntaxError","concat","_ref2","match","index","Number","isNaN","RangeError","_getKey3","parseKey","_getKey2","mount","key","enumerable","configurable","writable","_defineProperty","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","arguments","forEach","getOwnPropertyDescriptors","defineProperties","merge","x","y","result","xValue","yValue","map","p","_pick","_parseKey","_getArrayIndex2","require$$3","_merge","require$$4","_createPathBreadcrumb","require$$5","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","compile","instructions","data","idx","splice","paths","hasArrayNotation","parsedValue","commonPath","substr","workingPath","replace","workingNode","get","_parse","parse"],"mappings":"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"}
\No newline at end of file