Я создал некоторую абстракцию для базы, которая может вызывать что угодно, главное чтобы сохранялся контракт.
Выглядит примерно так: interface UserRepo { createOne(input): User; }
В данном случае абстракция вызывает Prisma и Zod, которые в свою очередь могут генерировать ошибки разных типов.
- Которые я хочу обернуть в некоторый interface UserRepoError extends Error {};
Задача донести причину ошибки до вызывающей стороны систематизированным, максимально доступным образом.
- Если привязаться к ошибкам этих пакетов - всё довольно просто, т.к. уже реализовано. Однако как их обернуть самому я не представляю - потому что ранее подобным не занимался.
Единственное что мне пришло в голову, это пронумеровать все ошибки и работать с этими псевдо-кодами.