CRUD
Queries use direct table access: jsorm.users, jsorm.cache.sessions. All methods are async and return { data: T }.
CREATE
Section titled “CREATE”const { data: user } = await jsorm.users.create({ name: "Juan", email: "juan@test.com",});createMany
Section titled “createMany”const { data: users } = await jsorm.users.createMany([ { name: "Juan", email: "juan@test.com" }, { name: "Ana", email: "ana@test.com" },]);Create with many-to-many relations
Section titled “Create with many-to-many relations”const { data: user } = await jsorm.users.create({ name: "Juan", roles: [role1.id, role2.id], // INSERT users → INSERT user_roles x 2});Create with extra columns in pivot table
Section titled “Create with extra columns in pivot table”const { data: user } = await jsorm.users.create({ name: "Juan", permissions: [ { permissionId: perm1.id, active: true }, { permissionId: perm2.id, active: false }, ],});Without select (returns full model)
Section titled “Without select (returns full model)”const { data: users } = await jsorm.users.get({ where: { active: true },});With select (returns only selected fields)
Section titled “With select (returns only selected fields)”const { data: users } = await jsorm.users.get({ select: { id: true, name: true, role: { name: true } }, where: { active: true }, orderBy: { createdAt: "desc" },});// users: { id: string; name: string; role: { name: string } }[]const { data: user } = await jsorm.users.first({ select: { name: true, email: true }, where: { email: "juan@test.com" },});UPDATE
Section titled “UPDATE”const { data: affected } = await jsorm.users.update({ where: { id: user.id }, data: { name: "Juan Updated" },});updateMany
Section titled “updateMany”const { data: affected } = await jsorm.users.updateMany([ { id: user1.id, name: "Updated 1" }, { id: user2.id, name: "Updated 2" },]);Update with many-to-many relations
Section titled “Update with many-to-many relations”await jsorm.users.update({ where: { id: user.id }, data: { roles: [role1.id, role3.id] }, // removes previous roles, inserts new ones});DELETE
Section titled “DELETE”const { data: deleted } = await jsorm.users.delete({ where: { active: false },});deleteMany
Section titled “deleteMany”const { data: deleted } = await jsorm.users.deleteMany({ where: { active: false },});where is required. Throws an error if omitted or empty, to prevent accidental deletion of all records:
// ❌ Error: deleteMany() requires a where clause to prevent accidental data lossawait jsorm.users.deleteMany({});