{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["// @ts-ignore\nimport _equals from 'deep-eql';\nimport { IOptions } from './types';\nimport { findLastIndex, findIndex } from 'lodash';\n\nexport function equals<T>(a1: T, a2: T): boolean\nexport function equals<T>(a1: T, a2: unknown): a2 is T\nexport function equals<T>(a1: unknown, a2: T): a1 is T\nexport function equals(a1: any, a2: any): boolean\n{\n\treturn _equals(a1, a2)\n}\n\nexport function defaultFilter<T>(options: IOptions<T> = {})\n{\n\tconst checker = options.checker || defaultChecker;\n\tconst filter = options.filter || null;\n\n\tconst find = options.removeFromFirst ? findLastIndex : findIndex;\n\n\tconst cb = <K extends any[]>(val: K[keyof K], index: number, arr: K) =>\n\t{\n\t\tlet i = find(arr, a => checker(a, val, arr, arr));\n\t\treturn i === index && (!filter || filter(val));\n\t};\n\n\treturn cb;\n}\n\n// @ts-ignore\nexport function defaultChecker<T, R>(element: T, value: R, arr_new?: Array<T | R>, arr_old?: Array<T | R>): boolean\n{\n\treturn _equals(element, value);\n}\n","import { defaultFilter, equals, defaultChecker } from './util';\n\nimport { IOptions } from './types';\n\nexport * from './types';\nexport * from './util';\n\nexport function array_unique<T>(arr: T, options: IOptions<T> = {}): T\n{\n\tif (!Array.isArray(arr))\n\t{\n\t\tthrow new TypeError(`Expected an Array but got ${typeof arr}.`)\n\t}\n\n\tconst cb = defaultFilter(options);\n\n\tif (options.overwrite)\n\t{\n\t\tlet index = arr.length;\n\n\t\twhile (index--)\n\t\t{\n\t\t\tlet val = arr[index];\n\n\t\t\tif (!cb(val, index, arr))\n\t\t\t{\n\t\t\t\tarr.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\treturn arr;\n\t}\n\n\t// @ts-ignore\n\treturn arr.filter(cb);\n}\n\nexport function array_unique_overwrite<T>(arr: T, options: IOptions<T> = {}): T\n{\n\treturn array_unique(arr, {\n\t\t...options,\n\t\toverwrite: true,\n\t});\n}\n\nexport function lazy_unique<T extends any[]>(arr: T): T\nexport function lazy_unique<T, T1, T2>(a1: T1, a2: T2, ...arr: T[]): Array<T | T1 | T2>\nexport function lazy_unique<T>(...arr: Array<T | T[]>): T | (T | T[])[]\n// @ts-ignore\nexport function lazy_unique<T>(...arr: Array<T | T[]>)\n{\n\tif (arr.length > 1)\n\t{\n\t\treturn array_unique(arr);\n\t}\n\n\treturn array_unique(arr[0]);\n}\n\nexport function lazy_unique_overwrite<T>(...arr: Array<T | T[]>)\n{\n\tif (arr.length > 1)\n\t{\n\t\treturn array_unique_overwrite(arr);\n\t}\n\n\treturn array_unique_overwrite(arr[0]);\n}\n\nexport {\n\tequals,\n\tdefaultFilter,\n\tdefaultChecker,\n}\n\nif (process.env.TSDX_FORMAT !== 'esm')\n{\n\tObject.defineProperty(lazy_unique, \"array_unique\", { value: array_unique });\n\tObject.defineProperty(lazy_unique, \"array_unique_overwrite\", { value: array_unique_overwrite });\n\tObject.defineProperty(lazy_unique, \"lazy_unique_overwrite\", { value: lazy_unique_overwrite });\n\n\tObject.defineProperty(lazy_unique, \"equals\", { value: equals });\n\tObject.defineProperty(lazy_unique, \"defaultFilter\", { value: defaultFilter });\n\tObject.defineProperty(lazy_unique, \"defaultChecker\", { value: defaultChecker });\n\n\tObject.defineProperty(lazy_unique, \"lazy_unique\", { value: lazy_unique });\n\tObject.defineProperty(lazy_unique, \"default\", { value: lazy_unique });\n\n\tObject.defineProperty(lazy_unique, \"__esModule\", { value: true });\n}\n\nexport default lazy_unique\n"],"names":["equals","a1","a2","_equals","defaultFilter","options","checker","defaultChecker","filter","find","removeFromFirst","findLastIndex","findIndex","cb","val","index","arr","a","element","value","arr_new","arr_old","array_unique","Array","isArray","TypeError","overwrite","length","splice","array_unique_overwrite","lazy_unique","lazy_unique_overwrite","Object","defineProperty"],"mappings":";;;;EAQgB,SAAAA,OAAOC,GAASC;IAE/B,OAAOC,EAAQF,GAAIC;AACpB;EAEgB,SAAAE,cAAiBC,IAAuB;IAEvD,MAAMC,IAAUD,EAAQC,WAAWC,gBAC7BC,IAASH,EAAQG,UAAU,MAE3BC,IAAOJ,EAAQK,kBAAkBC,EAAAA,gBAAgBC,EAAAA;IAQvD,OANWC,CAAkBC,GAAiBC,GAAeC,MAEpDP,EAAKO,IAAKC,KAAKX,EAAQW,GAAGH,GAAKE,GAAKA,SAC/BD,OAAWP,KAAUA,EAAOM;AAI3C;EAGM,SAAUP,eAAqBW,GAAYC,GAAUC,GAAwBC;IAElF,OAAOlB,EAAQe,GAASC;AACzB;WC1BgBG,aAAgBN,GAAQX,IAAuB;IAE9D,KAAKkB,MAAMC,QAAQR,IAElB,MAAM,IAAIS,UAAU,oCAAoCT;IAGzD,MAAMH,IAAKT,cAAcC;IAEzB,IAAIA,EAAQqB,WACZ;MACC,IAAIX,IAAQC,EAAIW;MAEhB,MAAOZ,OAIDF,EAFKG,EAAID,IAEDA,GAAOC,MAEnBA,EAAIY,OAAOb,GAAO;MAIpB,OAAOC;AACR;IAGA,OAAOA,EAAIR,OAAOK;AACnB;WAEgBgB,uBAA0Bb,GAAQX,IAAuB;IAExE,OAAOiB,aAAaN,GAAK;SACrBX;MACHqB,YAAW;;AAEb;EAMgB,SAAAI,eAAkBd;IAEjC,OAEQM,aAFJN,EAAIW,SAAS,IAEIX,IAGDA,EAAI;AACzB;EAEgB,SAAAe,yBAA4Bf;IAE3C,OAEQa,uBAFJb,EAAIW,SAAS,IAEcX,IAGDA,EAAI;AACnC;EAUCgB,OAAOC,eAAeH,aAAa,gBAAgB;IAAEX,OAAOG;MAC5DU,OAAOC,eAAeH,aAAa,0BAA0B;IAAEX,OAAOU;MACtEG,OAAOC,eAAeH,aAAa,yBAAyB;IAAEX,OAAOY;MAErEC,OAAOC,eAAeH,aAAa,UAAU;IAAEX,OAAOnB;MACtDgC,OAAOC,eAAeH,aAAa,iBAAiB;IAAEX,OAAOf;MAC7D4B,OAAOC,eAAeH,aAAa,kBAAkB;IAAEX,OAAOZ;MAE9DyB,OAAOC,eAAeH,aAAa,eAAe;IAAEX,OAAOW;MAC3DE,OAAOC,eAAeH,aAAa,WAAW;IAAEX,OAAOW;MAEvDE,OAAOC,eAAeH,aAAa,cAAc;IAAEX,QAAO;;;;;;;"}