UNPKG

@samchon/openapi

Version:

OpenAPI definitions and converters for 'typia' and 'nestia'.

1 lines 9.7 kB
{"version":3,"file":"_isUniqueItems.mjs","sources":["../../src/functional/_isUniqueItems.ts"],"sourcesContent":["export const _isUniqueItems = (elements: any[]): boolean => {\n // EMPTY OR ONLY ONE\n if (elements.length < 2) return true;\n\n // SHALLOW COMPARISON\n if ([\"boolean\", \"bigint\", \"number\", \"string\"].includes(typeof elements[0]))\n return new Set(elements).size === elements.length;\n\n // DEEP COMPARISON\n for (let i = 0; i < elements.length; i++)\n for (let j = i + 1; j < elements.length; j++)\n if (equals(new WeakMap())(elements[i], elements[j])) return false;\n return true;\n};\n\nconst equals = (visited: WeakMap<object, WeakMap<object, boolean>>) => {\n const next = (a: any, b: any): boolean => {\n // SHALLOW EQUAL\n if (a === b) return true;\n else if (typeof a !== typeof b || typeof a !== \"object\") return false;\n // COMPARE CONTAINERS\n else if (Array.isArray(a))\n return Array.isArray(b) && a.map((x, i) => next(x, b[i])).every((x) => x);\n else if (a instanceof Set)\n return (\n b instanceof Set && a.size === b.size && [...a].every((x) => b.has(x))\n );\n else if (a instanceof Map)\n return (\n b instanceof Map &&\n a.size === b.size &&\n [...a].every(([k, v]) => b.has(k) && next(v, b.get(k)))\n );\n // ATOMIC CLASSES\n else if (a instanceof Boolean)\n return b instanceof Boolean\n ? a.valueOf() === b.valueOf()\n : a.valueOf() === b;\n else if (a instanceof BigInt)\n return b instanceof BigInt ? a === b : a === BigInt(b);\n else if (a instanceof Number)\n return b instanceof Number\n ? a.valueOf() === b.valueOf()\n : a.valueOf() === b;\n else if (a instanceof String)\n return b instanceof String\n ? a.valueOf() === b.valueOf()\n : a.valueOf() === b;\n else if (a instanceof Date)\n return b instanceof Date && a.getTime() === b.getTime();\n // BINARY DATA\n else if (a instanceof Uint8Array)\n return (\n b instanceof Uint8Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Uint8ClampedArray)\n return (\n b instanceof Uint8ClampedArray &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Uint16Array)\n return (\n b instanceof Uint16Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Uint32Array)\n return (\n b instanceof Uint32Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof BigUint64Array)\n return (\n b instanceof BigUint64Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Int8Array)\n return (\n b instanceof Int8Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Int16Array)\n return (\n b instanceof Int16Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Int32Array)\n return (\n b instanceof Int32Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof BigInt64Array)\n return (\n b instanceof BigInt64Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Float32Array)\n return (\n b instanceof Float32Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof Float64Array)\n return (\n b instanceof Float64Array &&\n a.length === b.length &&\n a.every((x, i) => x === b[i])\n );\n else if (a instanceof ArrayBuffer) {\n if (!(b instanceof ArrayBuffer) || a.byteLength !== b.byteLength)\n return false;\n const x: Uint8Array = new Uint8Array(a);\n const y: Uint8Array = new Uint8Array(b);\n return x.every((v, i) => v === y[i]);\n } else if (a instanceof SharedArrayBuffer) {\n if (!(b instanceof SharedArrayBuffer) || a.byteLength !== b.byteLength)\n return false;\n const x: Uint8Array = new Uint8Array(a);\n const y: Uint8Array = new Uint8Array(b);\n return x.every((v, i) => v === y[i]);\n } else if (a instanceof DataView) {\n if (!(b instanceof DataView) || a.byteLength !== b.byteLength)\n return false;\n const x: Uint8Array = new Uint8Array(a.buffer);\n const y: Uint8Array = new Uint8Array(b.buffer);\n return x.every((v, i) => v === y[i]);\n } else if (a instanceof File)\n return (\n b instanceof File &&\n a.name === b.name &&\n a.size === b.size &&\n a.type === b.type &&\n next(a.slice(), b.slice())\n );\n // JUST PLAIN OBJECTS\n else if (a !== null && b !== null) {\n if (visited.has(a) && visited.get(a)!.has(b))\n return visited.get(a)!.get(b)!;\n if (!visited.has(a)) visited.set(a, new WeakMap());\n visited.get(a)!.set(b, true);\n const res: boolean =\n Object.keys(a).length === Object.keys(b).length &&\n Object.keys(a).every((x) => next(a[x], b[x]));\n visited.get(a)!.set(b, res);\n return res;\n }\n return false;\n };\n return next;\n};\n"],"names":["_isUniqueItems","elements","length","includes","Set","size","i","j","equals","WeakMap","visited","next","a","b","Array","isArray","map","x","every","has","Map","k","v","get","Boolean","valueOf","BigInt","Number","String","Date","getTime","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigUint64Array","Int8Array","Int16Array","Int32Array","BigInt64Array","Float32Array","Float64Array","ArrayBuffer","byteLength","y","SharedArrayBuffer","DataView","buffer","File","name","type","slice","set","res","Object","keys"],"mappings":"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"}