Something went wrong. Try again.
because I got bored of customising my CV for every job
Something went wrong. Try again.
1.1 kB · 39 lines
TypeScript
12345678910111213141516171819202122232425262728293031323334353637383940import type { BaseMapper } from "@cv/core";import { Injectable } from "@nestjs/common";import type { Prisma } from "@prisma/client";
type PrismaUserFile = Prisma.UserFileGetPayload<object>;
import { UserFile } from "./user-file.entity";
@Injectable()export class UserFileMapper implements BaseMapper<PrismaUserFile, UserFile> { toDomain(prisma: null): null; toDomain(prisma: PrismaUserFile): UserFile; toDomain(prisma: PrismaUserFile | null): UserFile | null; toDomain(prisma: PrismaUserFile | null): UserFile | null { if (!prisma) return null;
return new UserFile( prisma.id, prisma.profileId, prisma.fingerprint, prisma.fileName, prisma.mimeType, prisma.sizeBytes, prisma.source, prisma.status, prisma.statusMessage, prisma.resultJson, prisma.error, prisma.createdAt, prisma.updatedAt, ); }
mapToDomain(items: PrismaUserFile[]): UserFile[] { return items .map((item) => this.toDomain(item)) .filter((item): item is UserFile => item !== null); }}