Skip to content

Schema API Reference

The Schema API allows you to define the structure, types, and indexes of your data.

schema(fields, options)

Creates a frozen schema definition.

ParameterTypeDescription
fieldsobjectAn object where keys are field names and values are FieldBuilder instances.
optionsobjectOptional configuration like compoundIndexes.

options.compoundIndexes

An array of field name arrays to create compound indexes.

typescript
const userSchema = schema({
  firstName: string(),
  lastName: string()
}, {
  compoundIndexes: [['firstName', 'lastName']]
});

Field Builders

Zorix provides builders for various data types:

  • string()
  • number()
  • boolean()
  • date()
  • array()
  • object()
  • any()

Common Builder Methods

Every builder supports these methods:

.primary()

Marks the field as the primary key. Only one primary key is allowed per schema.

.index(options)

Adds an index for this field.

  • options.unique: (boolean) Ensure uniqueness.
  • options.multiEntry: (boolean) For arrays, index each element.

.required()

Makes the field mandatory.

.default(value | fn)

Sets a default value or a function to generate one.

Schema Instance Methods

The object returned by schema() is frozen and contains internal metadata used by Zorix, but also exposes:

.validate(data)

Returns { valid: boolean, field?: string, reason?: string }.

.parse(data)

Validates and applies defaults to an object. Throws ValidationError if invalid.

Released under the MIT License.