Skip to main content

Quickstart

import { DateTime } from 'luxon';

import { Column, Model, QModel, QRepository } from '@quik/database';

@Model()
export class User extends QModel {
@Column.PrimaryGenerated()
public id: number;

@Column.String({ length: 500 })
public name: string;

@Column.CreatedAt()
public createdAt: DateTime;
}

export class UserRepository extends QRepository<User> {
public constructor() {
super(User);
}
}

const repository = new UserRepository();
const user = await repository.create({ name: 'Ada' });

Notes

  • Models must extend QModel; repositories extend QRepository<TModel>.
  • Register repositories with RepositoryStore.register(...) (or use @GetRepository(...)) so they can be resolved lazily elsewhere in the app.
  • getModels()/getModelNames() list every registered @Model()/@BaseModel() class after their files have been imported — call them after module setup, not at import time.