import { decrypt, encrypt } from "../utils/crypt"; import { ValueTransformer } from "typeorm"; interface EncryptedJsonTransformer extends ValueTransformer { from(dbValue: any): T; to(entityValue: T): any; } export function createEncryptedJsonTransformer(): EncryptedJsonTransformer { return { // Database -> Entity from(dbValue) { const decrypted = decrypt(dbValue); return JSON.parse(decrypted) as T; }, // Entity -> Database to(entityValue) { return encrypt(JSON.stringify(entityValue)); }, }; }