API reference / @evolu/common / Evolu/Internal / ValidateSchema

Type Alias: ValidateSchema<S>

type ValidateSchema<S> = ValidateSchemaHasId<S> extends never ? ValidateIdColumnType<S> extends never ? ValidateNoDefaultColumns<S> extends never ? ValidateColumnTypes<S> extends never ? S : ValidateColumnTypes<S> : ValidateNoDefaultColumns<S> : ValidateIdColumnType<S> : ValidateSchemaHasId<S>;

Defined in: packages/common/src/Evolu/Schema.ts:95

Validates an EvoluSchema at compile time, returning the first error found as a readable string literal type. This approach provides much clearer and more actionable TypeScript errors than the default, which are often hard to read.

Validates the following schema requirements:

  1. All tables must have an 'id' column
  2. The 'id' column must be a branded ID type (created with id() function)
  3. Tables cannot use default column names (createdAt, updatedAt, isDeleted)
  4. All column types must be compatible with SQLite (extend SqliteValue)

Type Parameters

Type Parameter
S extends EvoluSchema

Was this page helpful?