mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-23 13:11:27 +10:00
refactor(v4.0.0-alpha): beginning of a new era
This commit is contained in:
11
libs/dto/src/resume/create.ts
Normal file
11
libs/dto/src/resume/create.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { kebabCase } from "@reactive-resume/utils";
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
import { z } from "nestjs-zod/z";
|
||||
|
||||
export const createResumeSchema = z.object({
|
||||
title: z.string().min(1),
|
||||
slug: z.string().min(1).transform(kebabCase),
|
||||
visibility: z.enum(["public", "private"]).default("private"),
|
||||
});
|
||||
|
||||
export class CreateResumeDto extends createZodDto(createResumeSchema) {}
|
||||
9
libs/dto/src/resume/delete.ts
Normal file
9
libs/dto/src/resume/delete.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { idSchema } from "@reactive-resume/schema";
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
import { z } from "nestjs-zod/z";
|
||||
|
||||
export const deleteResumeSchema = z.object({
|
||||
id: idSchema,
|
||||
});
|
||||
|
||||
export class DeleteResumeDto extends createZodDto(deleteResumeSchema) {}
|
||||
13
libs/dto/src/resume/import.ts
Normal file
13
libs/dto/src/resume/import.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import { resumeDataSchema } from "@reactive-resume/schema";
|
||||
import { kebabCase } from "@reactive-resume/utils";
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
import { z } from "nestjs-zod/z";
|
||||
|
||||
export const importResumeSchema = z.object({
|
||||
title: z.string().optional(),
|
||||
slug: z.string().min(1).transform(kebabCase).optional(),
|
||||
visibility: z.enum(["public", "private"]).default("private").optional(),
|
||||
data: resumeDataSchema,
|
||||
});
|
||||
|
||||
export class ImportResumeDto extends createZodDto(importResumeSchema) {}
|
||||
6
libs/dto/src/resume/index.ts
Normal file
6
libs/dto/src/resume/index.ts
Normal file
@ -0,0 +1,6 @@
|
||||
export * from "./create";
|
||||
export * from "./delete";
|
||||
export * from "./import";
|
||||
export * from "./resume";
|
||||
export * from "./update";
|
||||
export * from "./url";
|
||||
19
libs/dto/src/resume/resume.ts
Normal file
19
libs/dto/src/resume/resume.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { defaultResumeData, idSchema, resumeDataSchema } from "@reactive-resume/schema";
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
import { z } from "nestjs-zod/z";
|
||||
|
||||
import { userSchema } from "../user";
|
||||
|
||||
export const resumeSchema = z.object({
|
||||
id: idSchema,
|
||||
title: z.string(),
|
||||
slug: z.string(),
|
||||
data: resumeDataSchema.default(defaultResumeData),
|
||||
visibility: z.enum(["private", "public"]).default("private"),
|
||||
userId: idSchema,
|
||||
user: userSchema.optional(),
|
||||
createdAt: z.date().or(z.dateString()),
|
||||
updatedAt: z.date().or(z.dateString()),
|
||||
});
|
||||
|
||||
export class ResumeDto extends createZodDto(resumeSchema) {}
|
||||
7
libs/dto/src/resume/update.ts
Normal file
7
libs/dto/src/resume/update.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
|
||||
import { resumeSchema } from "./resume";
|
||||
|
||||
export const updateResumeSchema = resumeSchema;
|
||||
|
||||
export class UpdateResumeDto extends createZodDto(updateResumeSchema) {}
|
||||
6
libs/dto/src/resume/url.ts
Normal file
6
libs/dto/src/resume/url.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import { createZodDto } from "nestjs-zod/dto";
|
||||
import { z } from "nestjs-zod/z";
|
||||
|
||||
export const urlSchema = z.object({ url: z.string().url() });
|
||||
|
||||
export class UrlDto extends createZodDto(urlSchema) {}
|
||||
Reference in New Issue
Block a user