{"version":3,"file":"Map.cjs","sources":["../../src/types/Map.ts"],"sourcesContent":["import { Infer } from \"../types\";\nimport XVType from \"../XVType\";\n\nclass XVMap<\n  K extends XVType<any> = any,\n  V extends XVType<any> = any,\n> extends XVType<Map<Infer<K>, Infer<V>>> {\n  constructor(\n    readonly Mapkey: K,\n    readonly Mapvalue: V,\n  ) {\n    super();\n  }\n\n  protected check(value: unknown): Map<Infer<K>, Infer<V>> {\n    if (!(value instanceof Map)) {\n      throw new Error(`Value should be a Map, received ${typeof value}`);\n    }\n\n    const result = new Map<Infer<K>, Infer<V>>();\n\n    for (const [k, v] of (value as any).entries()) {\n      try {\n        const parsedKey = this.Mapkey.parse(k) as Infer<K>;\n        const parsedValue = this.Mapvalue.parse(v) as Infer<V>;\n        result.set(parsedKey, parsedValue);\n      } catch (err) {\n        throw new Error(\n          `Map entry should have key of type ${this.Mapkey.constructor.name} and value of type ${this.Mapvalue.constructor.name}, received key: ${typeof k}, value: ${typeof v}`,\n        );\n      }\n    }\n\n    return result;\n  }\n}\n\nexport default XVMap;\n"],"names":[],"mappings":";;;;AAGA,MAAM,KAGJ,SAAQ,MAA+B,CAAA;IACvC,WAAA,CACW,MAAS,EACT,QAAW,EAAA;AAEpB,QAAA,KAAK,EAAE;QAHE,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAGnB;AAEU,IAAA,KAAK,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC;QACpE;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB;AAE5C,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAK,KAAa,CAAC,OAAO,EAAE,EAAE;AAC7C,YAAA,IAAI;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAa;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAa;AACtD,gBAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;YACpC;YAAE,OAAO,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CACb,CAAA,kCAAA,EAAqC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,mBAAA,EAAsB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,gBAAA,EAAmB,OAAO,CAAC,CAAA,SAAA,EAAY,OAAO,CAAC,CAAA,CAAE,CACvK;YACH;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AACD;;;;"}