@syncular/client 0.0.1-95 → 0.0.1-97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"create-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAmBjB;;GAEG;AACH,MAAM,WAAW,0BAA0B,CACzC,EAAE,SAAS,YAAY,EACvB,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM;IAEnC,iCAAiC;IACjC,KAAK,EAAE,SAAS,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,EACN,OAAO,GACP;QACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IAEN,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAE1C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC7B,QAAQ,EAAE,YAAY,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,CACZ,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC7B,MAAM,EAAE,UAAU,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,SAAS,YAAY,EACvB,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EAEnC,OAAO,EAAE,0BAA0B,CAAC,EAAE,EAAE,SAAS,CAAC,GACjD,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CA0HnC"}
1
+ {"version":3,"file":"create-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAqBjB;;GAEG;AACH,MAAM,WAAW,0BAA0B,CACzC,EAAE,SAAS,YAAY,EACvB,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM;IAEnC,iCAAiC;IACjC,KAAK,EAAE,SAAS,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,EACN,OAAO,GACP;QACE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IAEN,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAE1C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC7B,QAAQ,EAAE,YAAY,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,CACZ,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC7B,MAAM,EAAE,UAAU,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,SAAS,YAAY,EACvB,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EAEnC,OAAO,EAAE,0BAA0B,CAAC,EAAE,EAAE,SAAS,CAAC,GACjD,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAuInC"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { isRecord, normalizeScopes } from '@syncular/core';
5
5
  import { sql } from 'kysely';
6
+ const MAX_INSERT_BIND_PARAMETERS = 900;
6
7
  /**
7
8
  * Coerce a value for SQL parameter binding.
8
9
  * - PostgreSQL (PGlite) does not implicitly cast booleans to integers,
@@ -83,11 +84,15 @@ export function createClientHandler(options) {
83
84
  const onConflict = updateColumns.length === 0
84
85
  ? sql `do nothing`
85
86
  : sql `do update set ${sql.join(updateColumns.map((col) => sql `${sql.ref(col)} = ${sql.ref(`excluded.${col}`)}`), sql `, `)}`;
86
- await sql `
87
- insert into ${sql.table(table)} (${sql.join(columns.map((c) => sql.ref(c)))})
88
- values ${sql.join(rows.map((row) => sql `(${sql.join(columns.map((col) => sql.val(coerceForSql(row[col]))), sql `, `)})`), sql `, `)}
89
- on conflict (${sql.ref(primaryKey)}) ${onConflict}
90
- `.execute(ctx.trx);
87
+ const maxRowsPerInsert = Math.max(1, Math.floor(MAX_INSERT_BIND_PARAMETERS / columns.length));
88
+ for (let startIndex = 0; startIndex < rows.length; startIndex += maxRowsPerInsert) {
89
+ const batchRows = rows.slice(startIndex, startIndex + maxRowsPerInsert);
90
+ await sql `
91
+ insert into ${sql.table(table)} (${sql.join(columns.map((c) => sql.ref(c)))})
92
+ values ${sql.join(batchRows.map((row) => sql `(${sql.join(columns.map((col) => sql.val(coerceForSql(row[col]))), sql `, `)})`), sql `, `)}
93
+ on conflict (${sql.ref(primaryKey)}) ${onConflict}
94
+ `.execute(ctx.trx);
95
+ }
91
96
  };
92
97
  // Default applyChange: upsert on upsert, delete on delete
93
98
  const defaultApplyChange = async (ctx, change) => {
@@ -1 +1 @@
1
- {"version":3,"file":"create-handler.js","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-handler.js","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncular/client",
3
- "version": "0.0.1-95",
3
+ "version": "0.0.1-97",
4
4
  "description": "Client-side sync engine with offline-first support, outbox, and conflict resolution",
5
5
  "license": "MIT",
6
6
  "author": "Benjamin Kniffler",
@@ -13,6 +13,8 @@ import type {
13
13
  ClientTableHandler,
14
14
  } from './types';
15
15
 
16
+ const MAX_INSERT_BIND_PARAMETERS = 900;
17
+
16
18
  /**
17
19
  * Coerce a value for SQL parameter binding.
18
20
  * - PostgreSQL (PGlite) does not implicitly cast booleans to integers,
@@ -196,20 +198,33 @@ export function createClientHandler<
196
198
  sql`, `
197
199
  )}`;
198
200
 
199
- await sql`
200
- insert into ${sql.table(table)} (${sql.join(columns.map((c) => sql.ref(c)))})
201
- values ${sql.join(
202
- rows.map(
203
- (row) =>
204
- sql`(${sql.join(
205
- columns.map((col) => sql.val(coerceForSql(row[col]))),
206
- sql`, `
207
- )})`
208
- ),
209
- sql`, `
210
- )}
211
- on conflict (${sql.ref(primaryKey)}) ${onConflict}
212
- `.execute(ctx.trx);
201
+ const maxRowsPerInsert = Math.max(
202
+ 1,
203
+ Math.floor(MAX_INSERT_BIND_PARAMETERS / columns.length)
204
+ );
205
+
206
+ for (
207
+ let startIndex = 0;
208
+ startIndex < rows.length;
209
+ startIndex += maxRowsPerInsert
210
+ ) {
211
+ const batchRows = rows.slice(startIndex, startIndex + maxRowsPerInsert);
212
+
213
+ await sql`
214
+ insert into ${sql.table(table)} (${sql.join(columns.map((c) => sql.ref(c)))})
215
+ values ${sql.join(
216
+ batchRows.map(
217
+ (row) =>
218
+ sql`(${sql.join(
219
+ columns.map((col) => sql.val(coerceForSql(row[col]))),
220
+ sql`, `
221
+ )})`
222
+ ),
223
+ sql`, `
224
+ )}
225
+ on conflict (${sql.ref(primaryKey)}) ${onConflict}
226
+ `.execute(ctx.trx);
227
+ }
213
228
  };
214
229
 
215
230
  // Default applyChange: upsert on upsert, delete on delete