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

33 lines (32 loc) • 1.72 kB
import { CredoError } from "../../../../error/CredoError.mjs"; import { ClassValidationError } from "../../../../error/ClassValidationError.mjs"; import "../../../../error/index.mjs"; import { JsonTransformer } from "../../../../utils/JsonTransformer.mjs"; import "../../../../utils/index.mjs"; import { W3cJsonLdVerifiableCredential } from "../../linked-data-proofs/models/W3cJsonLdVerifiableCredential.mjs"; import { W3cJwtVerifiableCredential } from "../../jwt-vc/W3cJwtVerifiableCredential.mjs"; import { Transform, TransformationType } from "class-transformer"; import { ValidationError } from "class-validator"; //#region src/modules/vc/models/credential/W3cVerifiableCredential.ts const getCredential = (v) => { try { return typeof v === "string" ? W3cJwtVerifiableCredential.fromSerializedJwt(v) : JsonTransformer.fromJSON(v, W3cJsonLdVerifiableCredential, { validate: false }); } catch (error) { if (error instanceof ValidationError || error instanceof ClassValidationError) throw error; throw new CredoError(`value '${v}' is not a valid W3cJwtVerifiableCredential. ${error.message}`); } }; const getEncoded = (v) => v instanceof W3cJwtVerifiableCredential ? v.serializedJwt : JsonTransformer.toJSON(v); function W3cVerifiableCredentialTransformer() { return Transform(({ value, type }) => { if (type === TransformationType.PLAIN_TO_CLASS) return Array.isArray(value) ? value.map(getCredential) : getCredential(value); if (type === TransformationType.CLASS_TO_PLAIN) { if (Array.isArray(value)) return value.map(getEncoded); return getEncoded(value); } return value; }); } //#endregion export { W3cVerifiableCredentialTransformer }; //# sourceMappingURL=W3cVerifiableCredential.mjs.map