import { wrapPowerSyncWithKysely } from '@powersync/kysely-driver'; import { PowerSyncDatabase } from '@powersync/web'; // Define schema as in: https://docs.powersync.com/usage/installation/client-side-setup/define-your-schema import { appSchema } from './schema'; export const powerSyncDb = new PowerSyncDatabase({ database: { dbFilename: 'test.sqlite' }, schema: appSchema }); export const db = wrapPowerSyncWithKysely(powerSyncDb);
import { wrapPowerSyncWithKysely } from '@powersync/kysely-driver'; import { PowerSyncDatabase } from "@powersync/web"; // Define schema as in: https://docs.powersync.com/usage/installation/client-side-setup/define-your-schema import { appSchema, Database } from "./schema"; export const powerSyncDb = new PowerSyncDatabase({ database: { dbFilename: "test.sqlite" }, schema: appSchema, }); // `db` now automatically contains types for defined tables export const db = wrapPowerSyncWithKysely<Database>(powerSyncDb)
const result = await db.selectFrom('users').selectAll().execute(); // [{ id: '1', name: 'user1' }, { id: '2', name: 'user2' }]
await db.insertInto('users').values({ id: '1', name: 'John' }).execute(); const result = await db.selectFrom('users').selectAll().execute(); // [{ id: '1', name: 'John' }]
await db.insertInto('users').values({ id: '2', name: 'Ben' }).execute(); await db.deleteFrom('users').where('name', '=', 'Ben').execute(); const result = await db.selectFrom('users').selectAll().execute(); // []
await db.insertInto('users').values({ id: '3', name: 'Lucy' }).execute(); await db.updateTable('users').where('name', '=', 'Lucy').set('name', 'Lucy Smith').execute(); const result = await db.selectFrom('users').select('name').executeTakeFirstOrThrow(); // 'Lucy Smith'
watch()
const query = db.selectFrom('users').selectAll(); db.watch(query, { onResult(results) { console.log(results); }, }); // [{ id: '1', name: 'John' }]
await db.transaction().execute(async (transaction) => { await transaction.insertInto('users').values({ id: '4', name: 'James' }).execute(); await transaction.updateTable('users').where('name', '=', 'James').set('name', 'James Smith').execute(); }); const result = await db.selectFrom('users').select('name').executeTakeFirstOrThrow(); // 'James Smith'