{"version":3,"sources":["../../src/functions/partition/partition.ts"],"names":[],"mappings":";AAUO,SAAS,UACd,OACA,WACiC;AACjC,MAAI,SAAS,MAAM;AACjB,WAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EAChB;AAEA,QAAM,SAAc,CAAC;AACrB,QAAM,YAA6B,CAAC;AAEpC,aAAW,QAAQ,OAAO;AACxB,QAAI,UAAU,IAAI,GAAG;AACnB,aAAO,KAAK,IAAI;AAAA,IAClB,OAAO;AACL,gBAAU,KAAK,IAAqB;AAAA,IACtC;AAAA,EACF;AAEA,SAAO,CAAC,QAAQ,SAAS;AAC3B","sourcesContent":["import { Maybe } from '../../types';\n\nexport function partition<T, S extends T>(\n  array: Maybe<readonly T[]>,\n  predicate: (item: T) => item is S\n): readonly [equals: S[], notEquals: Exclude<T, S>[]];\nexport function partition<T>(\n  array: Maybe<readonly T[]>,\n  predicate: (item: T) => boolean\n): readonly [equals: T[], notEquals: T[]];\nexport function partition<T, S extends T>(\n  array: Maybe<readonly T[]>,\n  predicate: ((item: T) => item is S) | ((item: T) => boolean)\n): readonly [S[], Exclude<T, S>[]] {\n  if (array == null) {\n    return [[], []];\n  }\n\n  const equals: S[] = [];\n  const notEquals: Exclude<T, S>[] = [];\n\n  for (const item of array) {\n    if (predicate(item)) {\n      equals.push(item);\n    } else {\n      notEquals.push(item as Exclude<T, S>);\n    }\n  }\n\n  return [equals, notEquals];\n}\n"]}