UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

1 lines • 2.51 kB
{"version":3,"file":"ProofTransformer.mjs","names":[],"sources":["../../../../../src/modules/vc/linked-data-proofs/proof-ops/ProofTransformer.ts"],"sourcesContent":["import { instanceToPlain, plainToInstance, Transform, TransformationType } from 'class-transformer'\nimport { CredoError } from '../../../../error'\nimport type { SingleOrArray } from '../../../../types'\nimport type { AnonCredsW3cCredentialProofOptions } from '../../anoncreds-w3c-credential'\nimport { ANONCREDS_W3C_CREDENTIAL_CRYPTOSUITE, AnonCredsW3cCredentialProof } from '../../anoncreds-w3c-credential'\nimport type { LinkedDataProofOptions } from '../models/LinkedDataProof'\nimport { LinkedDataProof } from '../models/LinkedDataProof'\n\nexport function ProofTransformer() {\n return Transform(\n ({\n value,\n type,\n }: {\n value: SingleOrArray<LinkedDataProofOptions | AnonCredsW3cCredentialProofOptions>\n type: TransformationType\n }) => {\n if (type === TransformationType.PLAIN_TO_CLASS) {\n const plainOptionsToClass = (v: LinkedDataProofOptions | AnonCredsW3cCredentialProofOptions) => {\n if ('cryptosuite' in v) {\n if (v.type !== 'DataIntegrityProof' || v.cryptosuite !== ANONCREDS_W3C_CREDENTIAL_CRYPTOSUITE) {\n throw new CredoError(\n `W3C credential proofs only support DataIntegrityProof with cryptosuite ${ANONCREDS_W3C_CREDENTIAL_CRYPTOSUITE}`\n )\n }\n\n return plainToInstance(AnonCredsW3cCredentialProof, 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":";;;;;;;;AAQA,SAAgB,mBAAmB;CACjC,OAAO,WACJ,EACC,OACA,WAII;EACJ,IAAI,SAAS,mBAAmB,gBAAgB;GAC9C,MAAM,uBAAuB,MAAmE;IAC9F,IAAI,iBAAiB,GAAG;KACtB,IAAI,EAAE,SAAS,wBAAwB,EAAE,gBAAA,kBACvC,MAAM,IAAI,WACR,0EAA0E,sCAC5E;KAGF,OAAO,gBAAgB,6BAA6B,CAAC;IACvD;IACA,OAAO,gBAAgB,iBAAiB,CAAC;GAC3C;GAEA,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,IAAI,mBAAmB;GAC9D,OAAO,oBAAoB,KAAK;EAClC;EACA,IAAI,SAAS,mBAAmB,gBAAgB;GAC9C,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,KAAK,MAAM,gBAAgB,CAAC,CAAC;GACpE,OAAO,gBAAgB,KAAK;EAC9B;EAEA,OAAO;CACT,CACF;AACF"}