@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.65 kB
Source Map (JSON)
{"version":3,"file":"VerificationMethodTransformer.mjs","names":[],"sources":["../../../../../src/modules/dids/domain/verificationMethod/VerificationMethodTransformer.ts"],"sourcesContent":["import { Transform, TransformationType } from 'class-transformer'\nimport type { ValidationOptions } from 'class-validator'\nimport { buildMessage, isInstance, isString, ValidateBy } from 'class-validator'\n\nimport { JsonTransformer } from '../../../../utils/JsonTransformer'\n\nimport { VerificationMethod } from './VerificationMethod'\n\n/**\n * Checks if a given value is a real string.\n */\nfunction IsStringOrVerificationMethod(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: 'isStringOrVerificationMethod',\n validator: {\n validate: (value): boolean => isString(value) || isInstance(value, VerificationMethod),\n defaultMessage: buildMessage(\n (eachPrefix) => `${eachPrefix}$property must be a string or instance of VerificationMethod`,\n validationOptions\n ),\n },\n },\n validationOptions\n )\n}\n\n/**\n * Decorator that transforms authentication json to corresponding class instances\n *\n * @example\n * class Example {\n * VerificationMethodTransformer()\n * private authentication: VerificationMethod\n * }\n */\nfunction VerificationMethodTransformer() {\n return Transform(({ value, type }: { value?: Array<string | { type: string }>; type: TransformationType }) => {\n if (type === TransformationType.PLAIN_TO_CLASS) {\n return value?.map((auth) => {\n // referenced verification method\n if (typeof auth === 'string') {\n return String(auth)\n }\n\n // embedded verification method\n return JsonTransformer.fromJSON(auth, VerificationMethod)\n })\n }\n if (type === TransformationType.CLASS_TO_PLAIN) {\n return value?.map((auth) => (typeof auth === 'string' ? auth : JsonTransformer.toJSON(auth)))\n }\n\n // PLAIN_TO_PLAIN\n return value\n })\n}\n\nexport { IsStringOrVerificationMethod, VerificationMethodTransformer }\n"],"mappings":";;;;;;;;AAWA,SAAS,6BAA6B,mBAA0D;CAC9F,OAAO,WACL;EACE,MAAM;EACN,WAAW;GACT,WAAW,UAAmB,SAAS,KAAK,KAAK,WAAW,OAAO,kBAAkB;GACrF,gBAAgB,cACb,eAAe,GAAG,WAAW,+DAC9B,iBACF;EACF;CACF,GACA,iBACF;AACF;;;;;;;;;;AAWA,SAAS,gCAAgC;CACvC,OAAO,WAAW,EAAE,OAAO,WAAmF;EAC5G,IAAI,SAAS,mBAAmB,gBAC9B,OAAO,OAAO,KAAK,SAAS;GAE1B,IAAI,OAAO,SAAS,UAClB,OAAO,OAAO,IAAI;GAIpB,OAAO,gBAAgB,SAAS,MAAM,kBAAkB;EAC1D,CAAC;EAEH,IAAI,SAAS,mBAAmB,gBAC9B,OAAO,OAAO,KAAK,SAAU,OAAO,SAAS,WAAW,OAAO,gBAAgB,OAAO,IAAI,CAAE;EAI9F,OAAO;CACT,CAAC;AACH"}