LogoRobo.js
Framework

f

Variable: f

const f: {
  boolean: () => Field<"boolean", false, unknown>;
  date: () => Field<"date", false, unknown>;
  enum: <T>(values) => Field<"enum", false, unknown>;
  hasMany: (model, opts) => RelationField;
  hasOne: (model, opts) => RelationField;
  id: () => Field<"string", false, unknown>;
  json: <T>() => Field<"json", false, T>;
  manyToMany: (model) => RelationField;
  number: () => Field<"number", false, unknown>;
  relation: (model, foreignKey) => RelationField;
  string: () => Field<"string", false, unknown>;
};

Field builder factory object.

Usage:

const schema = {
  id: f.id(),
  name: f.string(),
  age: f.number().optional(),
  email: f.string().unique(),
  createdAt: f.date().default(() => new Date()),
}

Type declaration

NameTypeDescription
boolean() => Field<"boolean", false, unknown>Create a boolean field.
date() => Field<"date", false, unknown>Create a date field.
enum<T>(values) => Field<"enum", false, unknown>Create an enum field with allowed values.
hasMany(model, opts) => RelationFieldCreate a has-many relation (one-to-many inverse).
hasOne(model, opts) => RelationFieldCreate a has-one relation (one-to-one inverse).
id() => Field<"string", false, unknown>Create an ID field (string, primary key).
json<T>() => Field<"json", false, T>Create a JSON field with optional type parameter.
manyToMany(model) => RelationFieldCreate a many-to-many relation (implicit junction table).
number() => Field<"number", false, unknown>Create a number field.
relation(model, foreignKey) => RelationFieldCreate a belongs-to relation (many-to-one, stores FK locally).
string() => Field<"string", false, unknown>Create a string field.

On this page