@syncular/client 0.0.1-123 → 0.0.1-124
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.
- package/dist/create-client.d.ts.map +1 -1
- package/dist/create-client.js +6 -1
- package/dist/create-client.js.map +1 -1
- package/dist/handlers/create-handler.d.ts +5 -5
- package/dist/handlers/create-handler.d.ts.map +1 -1
- package/dist/handlers/create-handler.js.map +1 -1
- package/dist/handlers/types.d.ts +5 -5
- package/dist/handlers/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/create-client.ts +5 -1
- package/src/handlers/create-handler.ts +13 -5
- package/src/handlers/types.ts +10 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,UAAU,mBAAmB,CAAC,EAAE,SAAS,YAAY;IACnD,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,qDAAqD;QACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAC;IAEnD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAEjD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,kBAAkB,CAAC,EAAE,SAAS,YAAY;IAClD,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,gBAAgB;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,UAAU,mBAAmB,CAAC,EAAE,SAAS,YAAY;IACnD,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,qDAAqD;QACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAC;IAEnD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAEjD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,kBAAkB,CAAC,EAAE,SAAS,YAAY;IAClD,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,gBAAgB;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAuHjC"}
|
package/dist/create-client.js
CHANGED
|
@@ -122,7 +122,12 @@ export async function createClient(options) {
|
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
// Custom subscription config
|
|
125
|
-
const scopes =
|
|
125
|
+
const scopes = {};
|
|
126
|
+
for (const [scopeKey, scopeValue] of Object.entries(sub.scopes ?? {})) {
|
|
127
|
+
if (scopeValue === undefined)
|
|
128
|
+
continue;
|
|
129
|
+
scopes[scopeKey] = scopeValue;
|
|
130
|
+
}
|
|
126
131
|
if (Object.keys(scopes).length === 0) {
|
|
127
132
|
throw new Error(`Handler "${handler.table}" subscription scopes cannot be empty. ` +
|
|
128
133
|
'Set subscribe: false or provide subscribe.scopes.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/client - Declarative client handler helper
|
|
3
3
|
*/
|
|
4
|
-
import type { ScopeDefinition, SyncChange, SyncSnapshot } from '@syncular/core';
|
|
4
|
+
import type { ScopeDefinition, ScopeKeysFromDefinitions, ScopeValuesFromPatterns, SyncChange, SyncSnapshot } from '@syncular/core';
|
|
5
5
|
import type { SyncClientDb } from '../schema';
|
|
6
6
|
import type { ClientClearContext, ClientHandlerContext, ClientSnapshotHookContext, ClientTableHandler } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* Options for creating a declarative client handler.
|
|
9
9
|
*/
|
|
10
|
-
export interface CreateClientHandlerOptions<DB extends SyncClientDb, TableName extends keyof DB & string> {
|
|
10
|
+
export interface CreateClientHandlerOptions<DB extends SyncClientDb, TableName extends keyof DB & string, ScopeDefs extends readonly ScopeDefinition[] = readonly ScopeDefinition[]> {
|
|
11
11
|
/** Table name in the database */
|
|
12
12
|
table: TableName;
|
|
13
13
|
/**
|
|
@@ -25,7 +25,7 @@ export interface CreateClientHandlerOptions<DB extends SyncClientDb, TableName e
|
|
|
25
25
|
* ]
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
scopes:
|
|
28
|
+
scopes: ScopeDefs;
|
|
29
29
|
/**
|
|
30
30
|
* Subscription configuration for this table.
|
|
31
31
|
* - `true` (default): Subscribe to this table with default scopes/params
|
|
@@ -33,7 +33,7 @@ export interface CreateClientHandlerOptions<DB extends SyncClientDb, TableName e
|
|
|
33
33
|
* - Object: Subscribe with custom scopes and params
|
|
34
34
|
*/
|
|
35
35
|
subscribe?: boolean | {
|
|
36
|
-
scopes?:
|
|
36
|
+
scopes?: ScopeValuesFromPatterns<ScopeDefs>;
|
|
37
37
|
params?: Record<string, unknown>;
|
|
38
38
|
};
|
|
39
39
|
/** Primary key column name (default: 'id') */
|
|
@@ -106,5 +106,5 @@ export interface CreateClientHandlerOptions<DB extends SyncClientDb, TableName e
|
|
|
106
106
|
* });
|
|
107
107
|
* ```
|
|
108
108
|
*/
|
|
109
|
-
export declare function createClientHandler<DB extends SyncClientDb, TableName extends keyof DB & string>(options: CreateClientHandlerOptions<DB, TableName>): ClientTableHandler<DB, TableName
|
|
109
|
+
export declare function createClientHandler<DB extends SyncClientDb, TableName extends keyof DB & string, ScopeDefs extends readonly ScopeDefinition[] = readonly ScopeDefinition[]>(options: CreateClientHandlerOptions<DB, TableName, ScopeDefs>): ClientTableHandler<DB, TableName, ScopeKeysFromDefinitions<ScopeDefs>>;
|
|
110
110
|
//# sourceMappingURL=create-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"create-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,UAAU,EACV,YAAY,EACb,MAAM,gBAAgB,CAAC;AAGxB,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,EACnC,SAAS,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE;IAEzE,iCAAiC;IACjC,KAAK,EAAE,SAAS,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE,SAAS,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EACN,OAAO,GACP;QACE,MAAM,CAAC,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC5C,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,EACnC,SAAS,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,EAEzE,OAAO,EAAE,0BAA0B,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,GAC5D,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAuIxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-handler.js","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"create-handler.js","sourceRoot":"","sources":["../../src/handlers/create-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/client - Sync client table handler interface
|
|
3
3
|
*/
|
|
4
|
-
import type { ScopeValues, SyncChange, SyncSnapshot } from '@syncular/core';
|
|
4
|
+
import type { ScopeValues, ScopeValuesForKeys, SyncChange, SyncSnapshot } from '@syncular/core';
|
|
5
5
|
import type { Transaction } from 'kysely';
|
|
6
6
|
/**
|
|
7
7
|
* Context passed to client table handler methods.
|
|
@@ -29,16 +29,16 @@ export interface ClientClearContext<DB> extends ClientHandlerContext<DB> {
|
|
|
29
29
|
/**
|
|
30
30
|
* Subscription configuration for a handler.
|
|
31
31
|
*/
|
|
32
|
-
export interface HandlerSubscriptionConfig {
|
|
32
|
+
export interface HandlerSubscriptionConfig<ScopeKeys extends string = string> {
|
|
33
33
|
/** Scope values for this subscription */
|
|
34
|
-
scopes?:
|
|
34
|
+
scopes?: ScopeValuesForKeys<ScopeKeys>;
|
|
35
35
|
/** Params for this subscription */
|
|
36
36
|
params?: Record<string, unknown>;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Client-side table handler for applying sync snapshots and changes.
|
|
40
40
|
*/
|
|
41
|
-
export interface ClientTableHandler<DB, TableName extends keyof DB & string = keyof DB & string> {
|
|
41
|
+
export interface ClientTableHandler<DB, TableName extends keyof DB & string = keyof DB & string, ScopeKeys extends string = string> {
|
|
42
42
|
/** Table name (used as identifier in sync operations) */
|
|
43
43
|
table: TableName;
|
|
44
44
|
/**
|
|
@@ -52,7 +52,7 @@ export interface ClientTableHandler<DB, TableName extends keyof DB & string = ke
|
|
|
52
52
|
* - `false`: Don't subscribe (local-only handler)
|
|
53
53
|
* - Object: Subscribe with custom scopes/params
|
|
54
54
|
*/
|
|
55
|
-
subscribe?: boolean | HandlerSubscriptionConfig
|
|
55
|
+
subscribe?: boolean | HandlerSubscriptionConfig<ScopeKeys>;
|
|
56
56
|
/**
|
|
57
57
|
* Apply a snapshot page for this table.
|
|
58
58
|
* The handler is responsible for upserting the rows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE;IACtC,2BAA2B;IAC3B,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,EAAE,CAC3C,SAAQ,oBAAoB,CAAC,EAAE,CAAC;IAChC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,EAAE,CAAE,SAAQ,oBAAoB,CAAC,EAAE,CAAC;IACtE,+EAA+E;IAC/E,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAC1E,yCAAyC;IACzC,MAAM,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,EAAE,EACF,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EACvD,SAAS,SAAS,MAAM,GAAG,MAAM;IAEjC,yDAAyD;IACzD,KAAK,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAE3D;;;OAGG;IACH,aAAa,CACX,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC7B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;;OAGG;IACH,eAAe,CAAC,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,aAAa,CAAC,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/client",
|
|
3
|
-
"version": "0.0.1-
|
|
3
|
+
"version": "0.0.1-124",
|
|
4
4
|
"description": "Client-side sync engine with offline-first support, outbox, and conflict resolution",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"release": "bunx syncular-publish"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@syncular/core": "0.0.1-
|
|
50
|
-
"@syncular/transport-http": "0.0.1-
|
|
49
|
+
"@syncular/core": "0.0.1-124",
|
|
50
|
+
"@syncular/transport-http": "0.0.1-124"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"kysely": "*"
|
package/src/create-client.ts
CHANGED
|
@@ -253,7 +253,11 @@ export async function createClient<DB extends SyncClientDb>(
|
|
|
253
253
|
};
|
|
254
254
|
}
|
|
255
255
|
// Custom subscription config
|
|
256
|
-
const scopes: ScopeValues =
|
|
256
|
+
const scopes: ScopeValues = {};
|
|
257
|
+
for (const [scopeKey, scopeValue] of Object.entries(sub.scopes ?? {})) {
|
|
258
|
+
if (scopeValue === undefined) continue;
|
|
259
|
+
scopes[scopeKey] = scopeValue;
|
|
260
|
+
}
|
|
257
261
|
if (Object.keys(scopes).length === 0) {
|
|
258
262
|
throw new Error(
|
|
259
263
|
`Handler "${handler.table}" subscription scopes cannot be empty. ` +
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
* @syncular/client - Declarative client handler helper
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
ScopeDefinition,
|
|
7
|
+
ScopeKeysFromDefinitions,
|
|
8
|
+
ScopeValuesFromPatterns,
|
|
9
|
+
SyncChange,
|
|
10
|
+
SyncSnapshot,
|
|
11
|
+
} from '@syncular/core';
|
|
6
12
|
import { isRecord, normalizeScopes } from '@syncular/core';
|
|
7
13
|
import { sql } from 'kysely';
|
|
8
14
|
import type { SyncClientDb } from '../schema';
|
|
@@ -38,6 +44,7 @@ function coerceForSql(value: unknown): unknown {
|
|
|
38
44
|
export interface CreateClientHandlerOptions<
|
|
39
45
|
DB extends SyncClientDb,
|
|
40
46
|
TableName extends keyof DB & string,
|
|
47
|
+
ScopeDefs extends readonly ScopeDefinition[] = readonly ScopeDefinition[],
|
|
41
48
|
> {
|
|
42
49
|
/** Table name in the database */
|
|
43
50
|
table: TableName;
|
|
@@ -57,7 +64,7 @@ export interface CreateClientHandlerOptions<
|
|
|
57
64
|
* ]
|
|
58
65
|
* ```
|
|
59
66
|
*/
|
|
60
|
-
scopes:
|
|
67
|
+
scopes: ScopeDefs;
|
|
61
68
|
|
|
62
69
|
/**
|
|
63
70
|
* Subscription configuration for this table.
|
|
@@ -68,7 +75,7 @@ export interface CreateClientHandlerOptions<
|
|
|
68
75
|
subscribe?:
|
|
69
76
|
| boolean
|
|
70
77
|
| {
|
|
71
|
-
scopes?:
|
|
78
|
+
scopes?: ScopeValuesFromPatterns<ScopeDefs>;
|
|
72
79
|
params?: Record<string, unknown>;
|
|
73
80
|
};
|
|
74
81
|
|
|
@@ -158,9 +165,10 @@ export interface CreateClientHandlerOptions<
|
|
|
158
165
|
export function createClientHandler<
|
|
159
166
|
DB extends SyncClientDb,
|
|
160
167
|
TableName extends keyof DB & string,
|
|
168
|
+
ScopeDefs extends readonly ScopeDefinition[] = readonly ScopeDefinition[],
|
|
161
169
|
>(
|
|
162
|
-
options: CreateClientHandlerOptions<DB, TableName>
|
|
163
|
-
): ClientTableHandler<DB, TableName
|
|
170
|
+
options: CreateClientHandlerOptions<DB, TableName, ScopeDefs>
|
|
171
|
+
): ClientTableHandler<DB, TableName, ScopeKeysFromDefinitions<ScopeDefs>> {
|
|
164
172
|
const { table, scopes: scopeDefs } = options;
|
|
165
173
|
const primaryKey =
|
|
166
174
|
options.primaryKey ?? ('id' as keyof DB[TableName] & string);
|
package/src/handlers/types.ts
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
* @syncular/client - Sync client table handler interface
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
ScopeValues,
|
|
7
|
+
ScopeValuesForKeys,
|
|
8
|
+
SyncChange,
|
|
9
|
+
SyncSnapshot,
|
|
10
|
+
} from '@syncular/core';
|
|
6
11
|
import type { Transaction } from 'kysely';
|
|
7
12
|
|
|
8
13
|
/**
|
|
@@ -35,9 +40,9 @@ export interface ClientClearContext<DB> extends ClientHandlerContext<DB> {
|
|
|
35
40
|
/**
|
|
36
41
|
* Subscription configuration for a handler.
|
|
37
42
|
*/
|
|
38
|
-
export interface HandlerSubscriptionConfig {
|
|
43
|
+
export interface HandlerSubscriptionConfig<ScopeKeys extends string = string> {
|
|
39
44
|
/** Scope values for this subscription */
|
|
40
|
-
scopes?:
|
|
45
|
+
scopes?: ScopeValuesForKeys<ScopeKeys>;
|
|
41
46
|
/** Params for this subscription */
|
|
42
47
|
params?: Record<string, unknown>;
|
|
43
48
|
}
|
|
@@ -48,6 +53,7 @@ export interface HandlerSubscriptionConfig {
|
|
|
48
53
|
export interface ClientTableHandler<
|
|
49
54
|
DB,
|
|
50
55
|
TableName extends keyof DB & string = keyof DB & string,
|
|
56
|
+
ScopeKeys extends string = string,
|
|
51
57
|
> {
|
|
52
58
|
/** Table name (used as identifier in sync operations) */
|
|
53
59
|
table: TableName;
|
|
@@ -64,7 +70,7 @@ export interface ClientTableHandler<
|
|
|
64
70
|
* - `false`: Don't subscribe (local-only handler)
|
|
65
71
|
* - Object: Subscribe with custom scopes/params
|
|
66
72
|
*/
|
|
67
|
-
subscribe?: boolean | HandlerSubscriptionConfig
|
|
73
|
+
subscribe?: boolean | HandlerSubscriptionConfig<ScopeKeys>;
|
|
68
74
|
|
|
69
75
|
/**
|
|
70
76
|
* Apply a snapshot page for this table.
|