@electric-sql/next
v0.2.2
Published
Postgres everywhere - your data, in sync, wherever you need it.
Downloads
16
Readme
TypeScript client for ElectricSQL
Real-time Postgres sync for modern apps.
Electric provides an HTTP interface to Postgres to enable a massive number of clients to query and get real-time updates to subsets of the database, called Shapes. In this way, Electric turns Postgres into a real-time database.
The TypeScript client helps ease reading Shapes from the HTTP API in the browser and other JavaScript environments, such as edge functions and server-side Node/Bun/Deno applications. It supports both fine-grained and coarse-grained reactivity patterns — you can subscribe to see every row that changes, or you can just subscribe to get the whole shape whenever it changes.
Install
The client is published on NPM as @electric-sql/next
:
npm i @electric-sql/next
How to use
The client exports a ShapeStream
class for getting updates to shapes on a row-by-row basis as well as a Shape
class for getting updates to the entire shape.
ShapeStream
import { ShapeStream } from 'electric-sql'
// Passes subscribers rows as they're inserted, updated, or deleted
const stream = new ShapeStream({
url: `${BASE_URL}/v1/shape/foo`,
})
stream.subscribe(messages => {
// messages is an array with one or more row updates
})
Shape
import { ShapeStream, Shape } from 'electric-sql'
const stream = new ShapeStream({
url: `${BASE_URL}/v1/shape/foo`,
})
const shape = new Shape(stream)
// Returns promise that resolves with the latest shape data once it's fully loaded
await shape.value
// passes subscribers shape data when the shape updates
shape.subscribe(shapeData => {
// shapeData is a Map of the latest value of each row in a shape.
}