UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

15 lines (14 loc) 608 B
import { ThroughSchema } from "./ThroughSchema.js"; /** Validate a value of a specific type or `null`. */ export class NullableSchema extends ThroughSchema { constructor({ value = null, ...options }) { super({ value, ...options }); } validate(unsafeValue = this.value) { if (unsafeValue === null || unsafeValue === undefined || unsafeValue === "" || Number.isNaN(unsafeValue)) return null; return super.validate(unsafeValue); } } /** Create a new nullable schema from a source schema. */ export const NULLABLE = (source) => new NullableSchema({ source });