{"version":3,"file":"ProofTransformer.mjs","names":[],"sources":["../../../../../src/modules/vc/data-integrity/models/ProofTransformer.ts"],"sourcesContent":["import { instanceToPlain, plainToInstance, Transform, TransformationType } from 'class-transformer'\nimport type { SingleOrArray } from '../../../../types'\nimport type { DataIntegrityProofOptions } from './DataIntegrityProof'\nimport { DataIntegrityProof } from './DataIntegrityProof'\nimport type { LinkedDataProofOptions } from './LinkedDataProof'\nimport { LinkedDataProof } from './LinkedDataProof'\n\nexport function ProofTransformer() {\n  return Transform(\n    ({\n      value,\n      type,\n    }: {\n      value: SingleOrArray<LinkedDataProofOptions | DataIntegrityProofOptions>\n      type: TransformationType\n    }) => {\n      if (type === TransformationType.PLAIN_TO_CLASS) {\n        const plainOptionsToClass = (v: LinkedDataProofOptions | DataIntegrityProofOptions) => {\n          if ('cryptosuite' in v) {\n            return plainToInstance(DataIntegrityProof, v)\n          }\n          return plainToInstance(LinkedDataProof, v)\n        }\n\n        if (Array.isArray(value)) return value.map(plainOptionsToClass)\n        return plainOptionsToClass(value)\n      }\n      if (type === TransformationType.CLASS_TO_PLAIN) {\n        if (Array.isArray(value)) return value.map((v) => instanceToPlain(v))\n        return instanceToPlain(value)\n      }\n      // PLAIN_TO_PLAIN\n      return value\n    }\n  )\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,mBAAmB;AACjC,QAAO,WACJ,EACC,OACA,WAII;AACJ,MAAI,SAAS,mBAAmB,gBAAgB;GAC9C,MAAM,uBAAuB,MAA0D;AACrF,QAAI,iBAAiB,EACnB,QAAO,gBAAgB,oBAAoB,EAAE;AAE/C,WAAO,gBAAgB,iBAAiB,EAAE;;AAG5C,OAAI,MAAM,QAAQ,MAAM,CAAE,QAAO,MAAM,IAAI,oBAAoB;AAC/D,UAAO,oBAAoB,MAAM;;AAEnC,MAAI,SAAS,mBAAmB,gBAAgB;AAC9C,OAAI,MAAM,QAAQ,MAAM,CAAE,QAAO,MAAM,KAAK,MAAM,gBAAgB,EAAE,CAAC;AACrE,UAAO,gBAAgB,MAAM;;AAG/B,SAAO;GAEV"}