From a0a21ac1be4199e9225c44466ee58c2d448e542c Mon Sep 17 00:00:00 2001 From: Moses Date: Mon, 29 Sep 2025 14:32:33 +0100 Subject: [PATCH] chore: add PayloadAssistError --- src/types/PayloadAssistError.ts | 6 ++++++ src/utils/transform-and-validate.ts | 6 +++++- src/utils/with-dto-read-hook.ts | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 src/types/PayloadAssistError.ts diff --git a/src/types/PayloadAssistError.ts b/src/types/PayloadAssistError.ts new file mode 100644 index 0000000..9a74cda --- /dev/null +++ b/src/types/PayloadAssistError.ts @@ -0,0 +1,6 @@ +export default class PayloadAssistError extends Error { + constructor(message: string) { + super(message); + this.name = "PayloadAssistError"; + } +} diff --git a/src/utils/transform-and-validate.ts b/src/utils/transform-and-validate.ts index 03bfd3a..50b1115 100644 --- a/src/utils/transform-and-validate.ts +++ b/src/utils/transform-and-validate.ts @@ -1,8 +1,12 @@ import { Dto } from "../types/dto"; import { payloadAssistConfig as payloadAssistConfig } from "./payload-assist"; +import PayloadAssistError from "../types/PayloadAssistError"; export const transformAndValidate = (dto: new () => Dto, data: unknown) => { - if (!payloadAssistConfig) throw `PayloadAssist is not initialized. Use payloadAssist() to initialize it.`; + if (!payloadAssistConfig) + throw new PayloadAssistError( + `PayloadAssist is not initialized. Use payloadAssist() to initialize it.` + ); return payloadAssistConfig.transformAndValidate(dto, data); }; diff --git a/src/utils/with-dto-read-hook.ts b/src/utils/with-dto-read-hook.ts index a0c0a2b..0d667d4 100644 --- a/src/utils/with-dto-read-hook.ts +++ b/src/utils/with-dto-read-hook.ts @@ -1,6 +1,7 @@ import type { CollectionAfterReadHook } from "payload"; import { Dto } from "../types/dto"; import { payloadAssistConfig as payloadAssistConfig } from "./payload-assist"; +import PayloadAssistError from "../types/PayloadAssistError"; /** * Dtos is an array of objects with the following properties: @@ -39,7 +40,7 @@ type afterReadHook = CollectionAfterReadHook & { */ export const withDtoReadHook = (dtos: Dtos) => { const afterReadHook: afterReadHook = async (args) => { - if (!payloadAssistConfig) throw `PayloadAssist is not initialized. Use payloadAssist() to initialize it.`; + if (!payloadAssistConfig) throw new PayloadAssistError(`PayloadAssist is not initialized. Use payloadAssist() to initialize it.`); const { doc, req } = args; if (req.payloadAPI === "local") return doc; // requests from local payload api don't require DTOs