UNPKG

9.91 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/helpers.js"],"names":[],"mappings":"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","file":"helpers.js","sourcesContent":["// // if the variable is defined\r\nexport const exists = what => typeof what !== 'undefined'\r\n\r\n// used for JSON object type checking\r\nconst object_constructor = {}.constructor\r\n\r\n// detects a JSON object\r\nexport function is_object(object)\r\n{\r\n\treturn exists(object) && (object !== null) && object.constructor === object_constructor\r\n}\r\n\r\n// extends the first object with \r\n/* istanbul ignore next: some weird transpiled code, not testable */\r\nexport function extend(...objects)\r\n{\r\n\tobjects = objects.filter(x => exists(x))\r\n\r\n\tif (objects.length === 0)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\t\r\n\tif (objects.length === 1)\r\n\t{\r\n\t\treturn objects[0]\r\n\t}\r\n\r\n\tconst to = objects[0]\r\n\tconst from = objects[1]\r\n\r\n\tif (objects.length > 2)\r\n\t{\r\n\t\tconst last = objects.pop()\r\n\t\tconst intermediary_result = extend.apply(this, objects)\r\n\t\treturn extend(intermediary_result, last)\r\n\t}\r\n\r\n\tfor (let key of Object.keys(from))\r\n\t{\r\n\t\tif (is_object(from[key]))\r\n\t\t{\r\n\t\t\tif (!is_object(to[key]))\r\n\t\t\t{\r\n\t\t\t\tto[key] = {}\r\n\t\t\t}\r\n\r\n\t\t\textend(to[key], from[key])\r\n\t\t}\r\n\t\telse if (Array.isArray(from[key]))\r\n\t\t{\r\n\t\t\tif (!Array.isArray(to[key]))\r\n\t\t\t{\r\n\t\t\t\tto[key] = []\r\n\t\t\t}\r\n\r\n\t\t\tto[key] = to[key].concat(clone(from[key]))\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tto[key] = from[key]\r\n\t\t}\r\n\t}\r\n\r\n\treturn to\r\n}\r\n\r\nexport function merge()\r\n{\r\n\tconst parameters = Array.prototype.slice.call(arguments, 0)\r\n\tparameters.unshift({})\r\n\treturn extend.apply(this, parameters)\r\n}\r\n\r\nexport function clone(object)\r\n{\r\n\tif (is_object(object))\r\n\t{\r\n\t\treturn merge({}, object)\r\n\t}\r\n\telse if (Array.isArray(object))\r\n\t{\r\n\t\treturn object.map(x => clone(x))\r\n\t}\r\n\telse\r\n\t{\r\n\t\treturn object\r\n\t}\r\n}\r\n\r\n// converts all camelCased keys of an object to lodash style\r\nexport function convert_from_camel_case(object)\r\n{\r\n\tfor (let key of Object.keys(object))\r\n\t{\r\n\t\tif (/[A-Z]/.test(key))\r\n\t\t{\r\n\t\t\tconst lo_dashed_key = key.replace(/([A-Z])/g, function(match, group_1)\r\n\t\t\t{\r\n\t\t\t\treturn '_' + group_1.toLowerCase()\r\n\t\t\t})\r\n\r\n\t\t\tif (!exists(object[lo_dashed_key]))\r\n\t\t\t{\r\n\t\t\t\tobject[lo_dashed_key] = object[key]\r\n\t\t\t\tdelete object[key]\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn object\r\n}\r\n\r\nfunction escape_regexp(string)\r\n{\r\n\tconst specials = new RegExp(\"[.*+?|()\\\\[\\\\]{}\\\\\\\\]\", 'g')\r\n\treturn string.replace(specials, \"\\\\$&\")\r\n}\r\n\r\nexport function replace_all(where, what, with_what)\r\n{\r\n\tconst regexp = new RegExp(escape_regexp(what), 'g')\r\n\treturn where.replace(regexp, with_what)\r\n}\r\n\r\nexport function starts_with(string, substring)\r\n{\r\n\tlet j = substring.length\r\n\r\n\tif (j > string.length)\r\n\t{\r\n\t\treturn false\r\n\t}\r\n\r\n\twhile (j > 0)\r\n\t{\r\n\t\tj--\r\n\r\n\t\tif (string[j] !== substring[j])\r\n\t\t{\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\nexport function ends_with(string, substring)\r\n{\r\n\tlet i = string.length\r\n\tlet j = substring.length\r\n\r\n\tif (j > i)\r\n\t{\r\n\t\treturn false\r\n\t}\r\n\r\n\twhile (j > 0)\r\n\t{\r\n\t\ti--\r\n\t\tj--\r\n\r\n\t\tif (string[i] !== substring[j])\r\n\t\t{\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n\r\n\t// const index = string.lastIndexOf(substring)\r\n\t// return index >= 0 && index === string.length - substring.length\r\n}\r\n\r\nexport function is_empty(array)\r\n{\r\n\treturn array.length === 0\r\n}\r\n\r\nexport function not_empty(array)\r\n{\r\n\treturn array.length > 0\r\n}\r\n\r\n// repeat string N times\r\nexport function repeat(what, times)\r\n{\r\n\tlet result = ''\r\n\twhile (times > 0)\r\n\t{\r\n\t\tresult += what\r\n\t\ttimes--\r\n\t}\r\n\treturn result\r\n}\r\n\r\n// if the text is blank\r\nexport function is_blank(text)\r\n{\r\n\treturn !exists(text) || !text.replace(/\\s/g, '')\r\n}\r\n\r\n// zips two arrays\r\nexport function zip(a, b)\r\n{\r\n\treturn a.map(function(_, index) \r\n\t{\r\n\t\treturn [a[index], b[index]]\r\n\t})\r\n}\r\n\r\n// last element of an array\r\nexport function last(array)\r\n{\r\n\treturn array[array.length - 1]\r\n}\r\n\r\n/**\r\n * Returns a camel case variant of the string, unless it's in TitleCase.\r\n * @param {string} string\r\n */\r\nexport function camel_case(string)\r\n{\r\n\tconst nameParts = string.split('_')\r\n\treturn nameParts.slice(1).reduce((reduced, current) =>\r\n\t{\r\n\t\treturn reduced + current.charAt(0).toUpperCase() + current.slice(1)\r\n\t},\r\n\tnameParts[0])\r\n}\r\n\r\n// detects \"private\" object properties (just in case there are any)\r\nconst is_private_property = name => starts_with(name, '__')\r\n\r\n/**\r\n * Creates camel case variants of the attributes on the object\r\n * @param {object} object\r\n */\r\nexport function alias_properties_with_camel_case(object)\r\n{\r\n\tfor (let key of Object.keys(object).filter(key => !is_private_property(key)))\r\n\t{\r\n\t\tobject[camel_case(key)] = object[key]\r\n\t}\r\n}\r\n"]}
\No newline at end of file