{"version":3,"file":"Set.cjs","sources":["../../src/types/Set.ts"],"sourcesContent":["import { Infer } from \"../types\";\nimport XVType from \"../XVType\";\n\nclass XVSet<T extends XVType<any> = any> extends XVType<Set<Infer<T>>> {\n\n   constructor(readonly SetType: T) {\n      super();\n   }\n\n   protected check(value: any): Set<Infer<T>> {\n      if (!(value instanceof Set)) {\n         throw new Error(`Value should be a Set, received ${typeof value}`);\n      }\n\n      for (const item of Array.from(value)) {\n         try {\n            this.SetType.parse(item);\n         } catch (error) {\n            throw new Error(`Set item should be of type ${this.SetType.constructor.name}, received ${typeof item}`);\n         }\n      }\n      return value as any\n   }\n\n   min(length: number) {\n      return this.set(\"min\", (v: any) => {\n         if (v.size < length) {\n            throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\n         }\n      }, length);\n   }\n\n   max(length: number) {\n      return this.set(\"max\", (v: any) => {\n         if (v.size > length) {\n            throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\n         }\n      }, length);\n   }\n\n\n}\n\nexport default XVSet;"],"names":[],"mappings":";;;;AAGA,MAAM,KAAmC,SAAQ,MAAqB,CAAA;AAEnE,IAAA,WAAA,CAAqB,OAAU,EAAA;AAC5B,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,OAAO,GAAP,OAAO;IAE5B;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC;QACrE;QAEA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,IAAI;AACD,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B;YAAE,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC;YAC1G;QACH;AACA,QAAA,OAAO,KAAY;IACtB;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;YACrF;QACH,CAAC,EAAE,MAAM,CAAC;IACb;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;YACpF;QACH,CAAC,EAAE,MAAM,CAAC;IACb;AAGF;;;;"}