A sync plugin for PGlite using ElectricSQL. Full documentation is available at pglite.dev/docs/sync.
To install:
npm install @electric-sql/pglite-sync
Then add it to you PGlite instance and create any local tables needed:
import { electricSync } from '@electric-sql/pglite-sync'
const pg = await PGlite.create({
extensions: {
electric: electricSync(),
},
})
await pg.exec(`
CREATE TABLE IF NOT EXISTS todo (
id SERIAL PRIMARY KEY,
task TEXT,
done BOOLEAN
);
`)
You can then use the syncShapeToTable method to sync a table from Electric:
const shape = await pg.electric.syncShapeToTable({
url: 'http://localhost:3000/v1/shape/todo',
table: 'todo',
primaryKey: ['id'],
})