UNPKG

lisn.js

Version:

Simply handle user gestures and actions. Includes widgets.

1 lines 6.3 kB
{"version":3,"file":"misc.cjs","names":["MH","_interopRequireWildcard","require","_math","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","copyExistingKeys","fromObj","toObj","key","hasOwnProp","isNonPrimitive","exports","omitKeys","obj","keysToRm","res","compareValuesIn","objA","objB","roundTo","valA","valB","isNumber","roundNumTo","keyExists","toArrayIfSingle","value","isArray","isNullish","toBoolean","toBool"],"sources":["../../../src/ts/utils/misc.ts"],"sourcesContent":["/**\n * @module\n * @ignore\n * @internal\n */\n\nimport * as MH from \"@lisn/globals/minification-helpers\";\n\nimport { roundNumTo } from \"@lisn/utils/math\";\n\nexport const copyExistingKeys = <T extends object>(fromObj: T, toObj: T) => {\n for (const key in toObj) {\n if (!MH.hasOwnProp(toObj, key)) {\n continue;\n }\n\n if (key in fromObj) {\n if (MH.isNonPrimitive(fromObj[key]) && MH.isNonPrimitive(toObj[key])) {\n copyExistingKeys(fromObj[key], toObj[key]);\n } else {\n toObj[key] = fromObj[key];\n }\n }\n }\n};\n\n// Omits the keys in object keysToRm from obj. This is to avoid hardcording the\n// key names as a string so as to allow minifier to mangle them, and to avoid\n// using object spread.\nexport const omitKeys = <\n O extends object,\n R extends { [K in keyof O]?: unknown },\n>(\n obj: O,\n keysToRm: R,\n): Omit<O, keyof R> => {\n const res: Partial<O> = {};\n let key: keyof O;\n\n for (key in obj) {\n if (!(key in keysToRm)) {\n res[key] = obj[key];\n }\n }\n\n return res as Omit<O, keyof R>;\n};\n\n// Returns true if the two objects are equal. If values are numeric, it will\n// round to the given number of decimal places.\nexport const compareValuesIn = <T extends object>(\n objA: T,\n objB: T,\n roundTo = 3,\n) => {\n for (const key in objA) {\n if (!MH.hasOwnProp(objA, key)) {\n continue;\n }\n\n const valA = objA[key];\n const valB = objB[key];\n\n if (MH.isNonPrimitive(valA) && MH.isNonPrimitive(valB)) {\n if (!compareValuesIn(valA, valB)) {\n return false;\n }\n } else if (MH.isNumber(valA) && MH.isNumber(valB)) {\n if (roundNumTo(valA, roundTo) !== roundNumTo(valB, roundTo)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n return true;\n};\n\nexport const keyExists = <T extends object>(\n obj: T,\n key: string | number | symbol,\n): key is keyof T => MH.isNonPrimitive(obj) && key in obj;\n\nexport const toArrayIfSingle = <T>(value?: T | T[] | null | undefined): T[] =>\n MH.isArray(value) ? value : !MH.isNullish(value) ? [value] : [];\n\nexport const toBoolean = (value: unknown) =>\n value === true || value === \"true\" || value === \"\"\n ? true\n : MH.isNullish(value) || value === false || value === \"false\"\n ? false\n : null;\n\n/**\n * @deprecated\n *\n * Deprecated alias for {@link toBoolean}\n */\nexport const toBool = toBoolean;\n"],"mappings":"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","ignoreList":[]}