Skip to content

gaslamp


Function: explain()

explain\<T>(value, schema): string[]

Validate an object against a schema and return field-level error messages.

Returns an empty array if all fields pass. Each error message includes the field name, status (missing or invalid), and a value preview for invalid fields.

Type Parameters

T

T extends Record\<string, unknown>

Parameters

value

unknown

Value to validate (must be a plain object)

schema

FlameRecord\<T>

Schema mapping each key to its validator

Returns

string[]

Array of error strings, empty if validation passes

Examples

Field-level validation errors:

TypeScript
const errors = explain({ name: 123 }, {
  name: FlameGuards.isString,
  age: FlameGuards.isNumber,
});
// ["name: invalid (123)", "age: missing"]

if (errors.length > 0) {
  Logger.log(errors.join(", "));
}

Non-object input returns a single error:

TypeScript
const errors = explain("not an object", { name: FlameGuards.isString });
// ["value is not a plain object"]

Since

0.37.0