Skip to content

Minima.js API


Minima.js API / @minimajs/schema / / ValidationError

Class: ValidationError ​

Custom validation error class for schema validation failures. Extends the base HTTP error with validation-specific properties and methods. Provides integration with Zod validation errors and enhanced error reporting.

Extends ​

Constructors ​

Constructor ​

ts
new ValidationError(message, extend?): ValidationError;

Creates a new ValidationError instance.

Parameters ​

message ​

string

extend? ​

ValidatorErrorOptions = {}

Returns ​

ValidationError

Example ​

ts
const error = new ValidationError('Validation failed');

Overrides ​

HttpError.constructor

Properties ​

base? ​

ts
optional base?: unknown;

Inherited from ​

HttpError.base


cause? ​

ts
optional cause?: unknown;

The cause of the error.

Inherited from ​

HttpError.cause


code? ​

ts
optional code?: string;

Inherited from ​

HttpError.code


constructor ​

ts
constructor: typeof HttpError;

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

Inherited from ​

ts
BaseError.constructor

headers? ​

ts
optional headers?: HeadersInit;

Inherited from ​

HttpError.headers


issues? ​

ts
optional issues?: $ZodIssue[];

Array of zod issues


message ​

ts
message: string;

Inherited from ​

HttpError.message


name ​

ts
name: string = ValidationError.name;

The name of this error class

Overrides ​

HttpError.name


response ​

ts
response: unknown;

Inherited from ​

HttpError.response


stack? ​

ts
optional stack?: string;

Inherited from ​

HttpError.stack


status ​

ts
status: number;

Inherited from ​

HttpError.status


stackTraceLimit ​

ts
static stackTraceLimit: number;

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Inherited from ​

HttpError.stackTraceLimit

Methods ​

render() ​

ts
render(ctx): Promise<Response>;

Parameters ​

ctx ​

Context

Returns ​

Promise<Response>

Inherited from ​

HttpError.render


toJSON() ​

ts
toJSON(): unknown;

Returns ​

unknown

Inherited from ​

HttpError.toJSON


captureStackTrace() ​

ts
static captureStackTrace(targetObject, constructorOpt?): void;

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

js
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

js
function a() {
  b();
}

function b() {
  c();
}

function c() {
  // Create an error without stack trace to avoid calculating the stack trace twice.
  const { stackTraceLimit } = Error;
  Error.stackTraceLimit = 0;
  const error = new Error();
  Error.stackTraceLimit = stackTraceLimit;

  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
  throw error;
}

a();

Parameters ​

targetObject ​

object

constructorOpt? ​

Function

Returns ​

void

Inherited from ​

HttpError.captureStackTrace


create() ​

ts
static create(err, status?): HttpError<string>;

Parameters ​

err ​

unknown

status? ​

number

Returns ​

HttpError<string>

Inherited from ​

HttpError.create


createFromZodError() ​

ts
static createFromZodError(error): ValidationError;

Creates a ValidationError from a ZodError. Recursively converts nested validation errors.

Parameters ​

error ​

ZodError

Returns ​

ValidationError

Example ​

ts
try {
  await schema.parse(data);
} catch (err) {
  if (err instanceof ZodError) {
    const validationError = ValidationError.createFromZodError(err);
    throw validationError;
  }
}

is() ​

ts
static is(value): value is HttpError<unknown>;

Parameters ​

value ​

unknown

Returns ​

value is HttpError<unknown>

Inherited from ​

HttpError.is


isError() ​

ts
static isError(error): error is Error;

Indicates whether the argument provided is a built-in Error instance or not.

Parameters ​

error ​

unknown

Returns ​

error is Error

Inherited from ​

HttpError.isError


prepareStackTrace() ​

ts
static prepareStackTrace(err, stackTraces): any;

Parameters ​

err ​

Error

stackTraces ​

CallSite[]

Returns ​

any

See ​

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from ​

HttpError.prepareStackTrace


toJSON() ​

ts
static toJSON(err): unknown;

Serializes a ValidationError to JSON for HTTP responses.

Parameters ​

err ​

ValidationError

Returns ​

unknown

Throws ​

AssertionError if err is not a ValidationError instance

Example ​

ts
const json = ValidationError.toJSON(error);
// {
//   "message": "Validation failed for 'email'",
//   "issues": [
//     {
//       "code": "invalid_type",
//       "expected": "string",
//       "received": "undefined",
//       "path": ["email"],
//       "message": "Required"
//     }
//   ]
// }

Overrides ​

ts
BaseError.toJSON