UNPKG

@smooai/utils

Version:

A collection of shared utilities and tools used across SmooAI projects. This package provides common functionality to standardize and simplify development across all SmooAI repositories.

1 lines 2 kB
{"version":3,"sources":["../../src/collections/CaseInsensitiveMap.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any -- ok */\n// https://stackoverflow.com/questions/50019920/javascript-map-key-value-pairs-case-insensitive-search\nexport class CaseInsensitiveMap<T, U> extends Map<T, U> {\n constructor(values?: Iterable<[T, U]>) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- this is a valid use case\n values\n ? super(\n Array.from(values, ([key, value]) => {\n if (typeof key === 'string') {\n key = key.toLowerCase() as any as T;\n }\n\n return [key, value] as [T, U];\n }),\n )\n : super();\n }\n\n set(key: T, value: U): this {\n if (typeof key === 'string') {\n key = key.toLowerCase() as any as T;\n }\n return super.set(key, value);\n }\n\n get(key: T): U | undefined {\n if (typeof key === 'string') {\n key = key.toLowerCase() as any as T;\n }\n\n return super.get(key);\n }\n\n has(key: T): boolean {\n if (typeof key === 'string') {\n key = key.toLowerCase() as any as T;\n }\n\n return super.has(key);\n }\n}\n"],"mappings":";;;AAEO,IAAM,qBAAN,cAAuC,IAAU;AAAA,EACpD,YAAY,QAA2B;AAEnC,aACM;AAAA,MACI,MAAM,KAAK,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACjC,YAAI,OAAO,QAAQ,UAAU;AACzB,gBAAM,IAAI,YAAY;AAAA,QAC1B;AAEA,eAAO,CAAC,KAAK,KAAK;AAAA,MACtB,CAAC;AAAA,IACL,IACA,MAAM;AAAA,EAChB;AAAA,EAEA,IAAI,KAAQ,OAAgB;AACxB,QAAI,OAAO,QAAQ,UAAU;AACzB,YAAM,IAAI,YAAY;AAAA,IAC1B;AACA,WAAO,MAAM,IAAI,KAAK,KAAK;AAAA,EAC/B;AAAA,EAEA,IAAI,KAAuB;AACvB,QAAI,OAAO,QAAQ,UAAU;AACzB,YAAM,IAAI,YAAY;AAAA,IAC1B;AAEA,WAAO,MAAM,IAAI,GAAG;AAAA,EACxB;AAAA,EAEA,IAAI,KAAiB;AACjB,QAAI,OAAO,QAAQ,UAAU;AACzB,YAAM,IAAI,YAAY;AAAA,IAC1B;AAEA,WAAO,MAAM,IAAI,GAAG;AAAA,EACxB;AACJ;","names":[]}