{"version":3,"sources":["../../src/functions/isArray/isArray.ts","../../src/functions/isEmpty/isEmpty.ts"],"names":[],"mappings":";AAMO,IAAM,UAAmB,MAAM;;;ACS/B,SAAS,QAAW,OAA0B;AACnD,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,KAAK,KAAK,OAAO,UAAU,UAAU;AAC/C,WAAO,MAAM,WAAW;AAAA,EAC1B;AAEA,MAAI,iBAAiB,OAAO,iBAAiB,KAAK;AAChD,WAAO,MAAM,SAAS;AAAA,EACxB;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,CAAC;AAAA,EACV;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,KAAK,KAAK,EAAE,WAAW;AAAA,EACvC;AAEA,SAAO;AACT","sourcesContent":["import { Many } from '../../types';\n\n/**\n * The same as `Array.isArray` but with a better type guard.\n */\n// eslint-disable-next-line prefer-destructuring\nexport const isArray: IsArray = Array.isArray;\n\ninterface IsArray {\n  <T>(value: Many<T>): value is readonly T[];\n  <T>(value: unknown): value is readonly T[];\n}\n","import { EmptyObject, Maybe } from '../../types';\nimport { isArray } from '../isArray';\n\nexport function isEmpty(value: string): value is '';\nexport function isEmpty(value: number): value is number;\nexport function isEmpty(\n  value: Maybe<ReadonlyMap<unknown, unknown> | ReadonlySet<unknown>>\n): boolean;\nexport function isEmpty<T extends ReadonlyArray<unknown> | EmptyArray>(\n  value: Maybe<T>\n): value is Maybe<T & EmptyArray>;\nexport function isEmpty<T extends object>(\n  value: Maybe<EmptyObject<T> | T>\n): value is T & Record<string, never>;\nexport function isEmpty<T>(value: Maybe<T>): boolean;\nexport function isEmpty<T>(value: Maybe<T>): boolean {\n  if (value == null) {\n    return true;\n  }\n\n  if (isArray(value) || typeof value === 'string') {\n    return value.length === 0;\n  }\n\n  if (value instanceof Map || value instanceof Set) {\n    return value.size === 0;\n  }\n\n  if (typeof value === 'number') {\n    return !value;\n  }\n\n  if (typeof value === 'object') {\n    return Object.keys(value).length === 0;\n  }\n\n  return false;\n}\n\ntype EmptyArray = [];\n"]}