Documentation

class Schemavariable

Schema​.build

An object containing functions that create Builder instances for specific types.

const build: Readonly<{
any: () => Builder<any>;
string: (error?: StringConvertible) => StringBuilder;
number: (error?: StringConvertible) => NumberBuilder;
int: (error?: StringConvertible) => NumberBuilder;
boolean: (error?: StringConvertible) => BooleanBuilder;
date: (error?: StringConvertible) => DateBuilder;
array: <T extends Builder>(item: T | Schema<T>) => ArrayBuilder<Infer<T>>;
object: <T extends Record<string, Builder | Schema<any>>>(
schema: T,
) => ObjectBuilder<{ [K in keyof T]: Infer<T[K]> }>;
literal: <T extends string | number | boolean>(
value: T | T[],
) => LiteralBuilder<T>;
union: <T extends (Builder | Schema<any>)[]>(
...types: T
) => Builder<Infer<T[number]>>;
optional: <T>(b: Builder<T>) => Builder<T | undefined>;
nullable: <T>(b: Builder<T>) => Builder<T | null>;
coerce: {
string: (error?: StringConvertible) => StringBuilder;
number: (error?: StringConvertible) => NumberBuilder;
boolean: (error?: StringConvertible) => BooleanBuilder;
date: (error?: StringConvertible) => DateBuilder;
};
}>;

Examples

const schema = new Schema((f) => {
  // f is the build object:
  return f.object({
    // each method creates an object with fluent interface:
    name: f.string().required(),
    age: f.number(),
    active: f.boolean()
  });
});

Static members

Related