nhb-express
Version:
Minimal Express + TypeScript scaffolder with modular structure and flexible stack choices.
25 lines (21 loc) • 688 B
text/typescript
import type { IParserError, PrismaError } from '@/types/interfaces';
import { isObjectWithKeys, isString } from 'nhb-toolbox';
class ErrorGuard {
/** * Type guard to check if an error is an Express Body Parser Error. */
isParserError(error: unknown): error is IParserError {
return (
isObjectWithKeys(error, ['type']) &&
isString(error.type) &&
error.type === 'entity.parse.failed'
);
}
/** * Type guard to check if an error is `PrismaError` */
isPrismaError(error: Error): error is PrismaError {
return (
isObjectWithKeys(error, ['code', 'meta']) &&
isString(error.code) &&
error.code.startsWith('P')
);
}
}
export const errorGuard = new ErrorGuard();