{"version":3,"file":"EnumFromString-BdLCFxLo.mjs","names":[],"sources":["../lib/common/EnumFromString.ts"],"sourcesContent":["import { chain } from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\nimport * as t from 'io-ts';\n\nconst EnumFromString = <T extends Record<string, unknown>>(enumObj: T, enumName = 'enum') =>\n  new t.Type<T[keyof T], keyof T>(\n    enumName,\n    (u): u is T[keyof T] => typeof u === 'number' && Object.values(enumObj).includes(u),\n    (u, c) =>\n      typeof u === 'number' && Object.values(enumObj).includes(u)\n        ? t.success(u as unknown as T[keyof T])\n        : pipe(\n          t.keyof(enumObj).validate(u, c),\n          chain(s => t.success(enumObj[s as keyof T])),\n        ),\n    a => enumObj[a as unknown as keyof T] as unknown as keyof T,\n  );\n\nexport default EnumFromString;\n"],"mappings":";;;;;AAIA,MAAM,kBAAqD,SAAY,WAAW,WAChF,IAAI,EAAE,KACJ,WACC,MAAuB,OAAO,MAAM,YAAY,OAAO,OAAO,OAAO,EAAE,SAAS,CAAC,IACjF,GAAG,MACF,OAAO,MAAM,YAAY,OAAO,OAAO,OAAO,EAAE,SAAS,CAAC,IACtD,EAAE,QAAQ,CAA0B,IACpC,KACA,EAAE,MAAM,OAAO,EAAE,SAAS,GAAG,CAAC,GAC9B,OAAM,MAAK,EAAE,QAAQ,QAAQ,EAAa,CAAC,CAC7C,IACJ,MAAK,QAAQ,EACf"}