@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.63 kB
Source Map (JSON)
{"version":3,"file":"JsonTransformer.mjs","names":[],"sources":["../../src/utils/JsonTransformer.ts"],"sourcesContent":["import { instanceToInstance, instanceToPlain, plainToInstance } from 'class-transformer'\nimport { ClassValidationError } from '../error/ClassValidationError'\nimport { MessageValidator } from './MessageValidator'\n\ninterface Validate {\n validate?: boolean\n}\n\n// biome-ignore lint/complexity/noStaticOnlyClass: no explanation\nexport class JsonTransformer {\n public static toJSON<T>(classInstance: T) {\n return instanceToPlain(classInstance, {\n exposeDefaultValues: true,\n })\n }\n\n public static fromJSON<T>(\n // biome-ignore lint/suspicious/noExplicitAny: no explanation\n json: any,\n // biome-ignore lint/suspicious/noExplicitAny: no explanation\n cls: { new (...args: any[]): T },\n { validate = true }: Validate = {}\n ): T {\n const instance = plainToInstance(cls, json, { exposeDefaultValues: true })\n\n // Skip validation\n if (!validate) return instance\n\n if (!instance) {\n throw new ClassValidationError('Cannot validate instance of ', { classType: Object.getPrototypeOf(cls).name })\n }\n MessageValidator.validateSync(instance)\n\n return instance\n }\n\n public static clone<T>(classInstance: T): T {\n return instanceToInstance(classInstance, {\n exposeDefaultValues: true,\n enableCircularCheck: true,\n enableImplicitConversion: true,\n ignoreDecorators: true,\n })\n }\n\n public static serialize<T>(classInstance: T): string {\n return JSON.stringify(JsonTransformer.toJSON(classInstance))\n }\n\n public static deserialize<T>(\n jsonString: string,\n // biome-ignore lint/suspicious/noExplicitAny: no explanation\n cls: { new (...args: any[]): T },\n { validate = true }: Validate = {}\n ): T {\n return JsonTransformer.fromJSON(JSON.parse(jsonString), cls, { validate })\n }\n}\n"],"mappings":";;;;AASA,IAAa,kBAAb,MAAa,gBAAgB;CAC3B,OAAc,OAAU,eAAkB;EACxC,OAAO,gBAAgB,eAAe,EACpC,qBAAqB,KACvB,CAAC;CACH;CAEA,OAAc,SAEZ,MAEA,KACA,EAAE,WAAW,SAAmB,CAAC,GAC9B;EACH,MAAM,WAAW,gBAAgB,KAAK,MAAM,EAAE,qBAAqB,KAAK,CAAC;EAGzE,IAAI,CAAC,UAAU,OAAO;EAEtB,IAAI,CAAC,UACH,MAAM,IAAI,qBAAqB,gCAAgC,EAAE,WAAW,OAAO,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;EAE/G,iBAAiB,aAAa,QAAQ;EAEtC,OAAO;CACT;CAEA,OAAc,MAAS,eAAqB;EAC1C,OAAO,mBAAmB,eAAe;GACvC,qBAAqB;GACrB,qBAAqB;GACrB,0BAA0B;GAC1B,kBAAkB;EACpB,CAAC;CACH;CAEA,OAAc,UAAa,eAA0B;EACnD,OAAO,KAAK,UAAU,gBAAgB,OAAO,aAAa,CAAC;CAC7D;CAEA,OAAc,YACZ,YAEA,KACA,EAAE,WAAW,SAAmB,CAAC,GAC9B;EACH,OAAO,gBAAgB,SAAS,KAAK,MAAM,UAAU,GAAG,KAAK,EAAE,SAAS,CAAC;CAC3E;AACF"}