From d80b1cb15d12bf36048472e85c9a43ec0f39f2b0 Mon Sep 17 00:00:00 2001 From: yacineb Date: Mon, 2 Dec 2024 12:46:35 +0100 Subject: [PATCH 1/3] doc: export return type for syncShapeToTable --- packages/pglite-sync/src/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/pglite-sync/src/index.ts b/packages/pglite-sync/src/index.ts index 8c9b27d49..b8501e245 100644 --- a/packages/pglite-sync/src/index.ts +++ b/packages/pglite-sync/src/index.ts @@ -30,6 +30,13 @@ export interface SyncShapeToTableOptions { useCopy?: boolean } +export interface SyncShapeToTableResult { + unsubscribe: () => void + readonly isUpToDate: boolean + readonly shapeId: string + subscribe: (cb: () => void, error: (err: Error) => void) => () => void +} + export interface ElectricSyncOptions { debug?: boolean metadataSchema?: string @@ -52,7 +59,9 @@ async function createPlugin( const shapePerTableLock = new Map() const namespaceObj = { - syncShapeToTable: async (options: SyncShapeToTableOptions) => { + syncShapeToTable: async ( + options: SyncShapeToTableOptions, + ): Promise => { if (shapePerTableLock.has(options.table)) { throw new Error('Already syncing shape for table ' + options.table) } From f8e76354caea6e46c4871fbdde10a81393beb5f8 Mon Sep 17 00:00:00 2001 From: yacineb Date: Wed, 4 Dec 2024 09:50:24 +0100 Subject: [PATCH 2/3] feat: expose stream object as of for useShape hook --- packages/pglite-sync/src/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/pglite-sync/src/index.ts b/packages/pglite-sync/src/index.ts index b8501e245..8d88fe7f5 100644 --- a/packages/pglite-sync/src/index.ts +++ b/packages/pglite-sync/src/index.ts @@ -4,6 +4,7 @@ import { ShapeStream, isChangeMessage, isControlMessage, + ShapeStreamInterface, } from '@electric-sql/client' import type { Extension, @@ -35,6 +36,7 @@ export interface SyncShapeToTableResult { readonly isUpToDate: boolean readonly shapeId: string subscribe: (cb: () => void, error: (err: Error) => void) => () => void + stream: ShapeStreamInterface } export interface ElectricSyncOptions { @@ -249,6 +251,7 @@ async function createPlugin( get shapeId() { return stream.shapeHandle }, + stream, subscribe: (cb: () => void, error: (err: Error) => void) => { return stream.subscribe(() => { if (stream.isUpToDate) { From c9748f28579e5468227ae1db1fa89cb8488b207e Mon Sep 17 00:00:00 2001 From: Sam Willis Date: Sun, 8 Dec 2024 14:38:58 +0000 Subject: [PATCH 3/3] Changeset --- .changeset/poor-cheetahs-beg.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/poor-cheetahs-beg.md diff --git a/.changeset/poor-cheetahs-beg.md b/.changeset/poor-cheetahs-beg.md new file mode 100644 index 000000000..bc59a5f3e --- /dev/null +++ b/.changeset/poor-cheetahs-beg.md @@ -0,0 +1,5 @@ +--- +'@electric-sql/pglite-sync': patch +--- + +Export return type of `syncShapeToTable`