@legendapp/state 2.2.0-next.87 → 2.2.0-next.89
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/config/{enable$get.d.ts → enable$GetSet.d.ts} +2 -2
- package/config/{enable$get.js → enable$GetSet.js} +4 -4
- package/config/enable$GetSet.js.map +1 -0
- package/config/{enable$get.mjs → enable$GetSet.mjs} +4 -4
- package/config/enable$GetSet.mjs.map +1 -0
- package/config/{enable_peek.d.ts → enable_PeekAssign.d.ts} +2 -2
- package/config/{enable_peek.js → enable_PeekAssign.js} +4 -4
- package/config/enable_PeekAssign.js.map +1 -0
- package/config/{enable_peek.mjs → enable_PeekAssign.mjs} +4 -4
- package/config/enable_PeekAssign.mjs.map +1 -0
- package/index.js +8 -1
- package/index.js.map +1 -1
- package/index.mjs +8 -1
- package/index.mjs.map +1 -1
- package/package.json +9 -9
- package/persist.js +2 -1
- package/persist.js.map +1 -1
- package/persist.mjs +2 -1
- package/persist.mjs.map +1 -1
- package/src/ObservableObject.ts +8 -1
- package/src/config/{enable$get.ts → enable$GetSet.ts} +2 -2
- package/src/config/{enable_peek.ts → enable_PeekAssign.ts} +2 -2
- package/src/sync/syncHelpers.ts +121 -1
- package/src/sync/syncObservable.ts +2 -1
- package/src/sync/syncTypes.ts +8 -8
- package/src/sync/synced.ts +3 -1
- package/src/sync-plugins/crud.ts +21 -89
- package/src/sync-plugins/keel.ts +80 -61
- package/src/sync-plugins/supabase.ts +43 -51
- package/sync-plugins/crud.d.ts +4 -9
- package/sync-plugins/crud.js +16 -75
- package/sync-plugins/crud.js.map +1 -1
- package/sync-plugins/crud.mjs +18 -75
- package/sync-plugins/crud.mjs.map +1 -1
- package/sync-plugins/keel.d.ts +26 -13
- package/sync-plugins/keel.js +12 -39
- package/sync-plugins/keel.js.map +1 -1
- package/sync-plugins/keel.mjs +13 -40
- package/sync-plugins/keel.mjs.map +1 -1
- package/sync-plugins/supabase.d.ts +13 -13
- package/sync-plugins/supabase.js +3 -21
- package/sync-plugins/supabase.js.map +1 -1
- package/sync-plugins/supabase.mjs +4 -22
- package/sync-plugins/supabase.mjs.map +1 -1
- package/sync.d.ts +3 -3
- package/sync.js +86 -1
- package/sync.js.map +1 -1
- package/sync.mjs +85 -3
- package/sync.mjs.map +1 -1
- package/config/enable$get.js.map +0 -1
- package/config/enable$get.mjs.map +0 -1
- package/config/enable_peek.js.map +0 -1
- package/config/enable_peek.mjs.map +0 -1
package/sync-plugins/keel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keel.js","sources":["../src/sync-plugins/keel.ts"],"sourcesContent":[null],"names":["internal","observable","when","removeNullUndefined","syncedCrud","computeSelector"],"mappings":";;;;;;AAiBA,MAAM,EAAE,KAAK,EAAE,GAAGA,cAAQ,CAAC;MASd,QAAQ,GAAc,CAAC,WAAW,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"keel.js","sources":["../src/sync-plugins/keel.ts"],"sourcesContent":[null],"names":["internal","observable","when","removeNullUndefined","mergeIntoObservable","isFunction","syncedCrud","computeSelector"],"mappings":"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"}
|
package/sync-plugins/keel.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { observable, computeSelector, internal, when } from '@legendapp/state';
|
|
1
|
+
import { observable, mergeIntoObservable, computeSelector, isFunction, internal, when } from '@legendapp/state';
|
|
2
2
|
import { removeNullUndefined } from '@legendapp/state/sync';
|
|
3
3
|
import { syncedCrud } from '@legendapp/state/sync-plugins/crud';
|
|
4
4
|
|
|
@@ -38,12 +38,11 @@ function convertObjectToCreate(item) {
|
|
|
38
38
|
return cloned;
|
|
39
39
|
}
|
|
40
40
|
function configureSyncedKeel(config) {
|
|
41
|
-
const { enabled, realtimePlugin, ...rest } = config;
|
|
41
|
+
const { enabled, realtimePlugin, client, ...rest } = config;
|
|
42
42
|
Object.assign(keelConfig, removeNullUndefined(rest));
|
|
43
43
|
if (enabled !== undefined) {
|
|
44
44
|
isEnabled$.set(enabled);
|
|
45
45
|
}
|
|
46
|
-
const { client } = keelConfig;
|
|
47
46
|
if (realtimePlugin) {
|
|
48
47
|
keelConfig.realtimePlugin = realtimePlugin;
|
|
49
48
|
if (client && !modifiedClients.has(client)) {
|
|
@@ -111,14 +110,12 @@ async function getAllPages(listFn, params) {
|
|
|
111
110
|
return { results: allData, subscribe: subscribe_ };
|
|
112
111
|
}
|
|
113
112
|
function syncedKeel(props) {
|
|
114
|
-
const {
|
|
113
|
+
const { realtimePlugin } = keelConfig;
|
|
114
|
+
mergeIntoObservable(props, keelConfig);
|
|
115
|
+
const { get: getParam, list: listParam, create: createParam, update: updateParam, delete: deleteParam, first, where: whereParam, waitFor, generateId: generateIdParam, ...rest } = props;
|
|
115
116
|
const { changesSince } = props;
|
|
116
|
-
|
|
117
|
-
if (!asType) {
|
|
118
|
-
asType = (getParam ? 'first' : keelConfig.as || undefined);
|
|
119
|
-
}
|
|
117
|
+
const asType = getParam ? 'first' : props.as;
|
|
120
118
|
const generateId = generateIdParam || keelConfig.generateId;
|
|
121
|
-
const realtimePlugin = keelConfig.realtimePlugin;
|
|
122
119
|
let realtimeKeyList = undefined;
|
|
123
120
|
let realtimeKeyGet = undefined;
|
|
124
121
|
const fieldCreatedAt = 'createdAt';
|
|
@@ -127,12 +124,9 @@ function syncedKeel(props) {
|
|
|
127
124
|
? async (listParams) => {
|
|
128
125
|
const { lastSync, refresh } = listParams;
|
|
129
126
|
const queryBySync = !!lastSync && changesSince === 'last-sync';
|
|
130
|
-
// If this is one of the customized functions for use with realtime then we need to pass
|
|
131
|
-
// the refresh function to it
|
|
132
|
-
const isRawRequest = (listParam || getParam).toString().includes('rawRequest');
|
|
133
127
|
// If querying with lastSync pass it to the "where" parameters
|
|
134
|
-
const where = queryBySync ? { updatedAt: { after: new Date(+new Date(lastSync) + 1) } } : {};
|
|
135
|
-
const params =
|
|
128
|
+
const where = Object.assign(queryBySync ? { updatedAt: { after: new Date(+new Date(lastSync) + 1) } } : {}, isFunction(whereParam) ? whereParam() : whereParam);
|
|
129
|
+
const params = { where, first };
|
|
136
130
|
// TODO: Error?
|
|
137
131
|
const { results, subscribe } = await getAllPages(listParam, params);
|
|
138
132
|
if (!realtimeKeyList) {
|
|
@@ -157,29 +151,10 @@ function syncedKeel(props) {
|
|
|
157
151
|
}
|
|
158
152
|
}
|
|
159
153
|
: undefined;
|
|
160
|
-
const onSaved = (data
|
|
161
|
-
if (data) {
|
|
162
|
-
const savedOut = {};
|
|
163
|
-
if (isCreate) {
|
|
164
|
-
// Update with any fields that were undefined when creating
|
|
165
|
-
Object.keys(data).forEach((key) => {
|
|
166
|
-
if (input[key] === undefined) {
|
|
167
|
-
savedOut[key] = data[key];
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
// Update with any fields ending in createdAt or updatedAt
|
|
173
|
-
Object.keys(data).forEach((key) => {
|
|
174
|
-
const k = key;
|
|
175
|
-
const keyLower = key.toLowerCase();
|
|
176
|
-
if ((keyLower.endsWith('createdat') || keyLower.endsWith('updatedat')) && data[k] instanceof Date) {
|
|
177
|
-
savedOut[k] = data[k];
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
}
|
|
154
|
+
const onSaved = (data) => {
|
|
155
|
+
if (realtimePlugin && data) {
|
|
181
156
|
const updatedAt = data[fieldUpdatedAt];
|
|
182
|
-
if (updatedAt
|
|
157
|
+
if (updatedAt) {
|
|
183
158
|
if (realtimeKeyGet) {
|
|
184
159
|
realtimePlugin.setLatestChange(realtimeKeyGet, updatedAt);
|
|
185
160
|
}
|
|
@@ -187,7 +162,6 @@ function syncedKeel(props) {
|
|
|
187
162
|
realtimePlugin.setLatestChange(realtimeKeyList, updatedAt);
|
|
188
163
|
}
|
|
189
164
|
}
|
|
190
|
-
return savedOut;
|
|
191
165
|
}
|
|
192
166
|
};
|
|
193
167
|
const handleSetError = async (error, params, isCreate) => {
|
|
@@ -241,8 +215,8 @@ function syncedKeel(props) {
|
|
|
241
215
|
}
|
|
242
216
|
: undefined;
|
|
243
217
|
const deleteFn = deleteParam
|
|
244
|
-
? async (
|
|
245
|
-
const { data, error } = await deleteParam({ id
|
|
218
|
+
? async ({ id }, params) => {
|
|
219
|
+
const { data, error } = await deleteParam({ id });
|
|
246
220
|
if (error) {
|
|
247
221
|
handleSetError(error, params, false);
|
|
248
222
|
}
|
|
@@ -257,7 +231,6 @@ function syncedKeel(props) {
|
|
|
257
231
|
update,
|
|
258
232
|
delete: deleteFn,
|
|
259
233
|
waitFor: () => isEnabled$.get() && (waitFor ? computeSelector(waitFor) : true),
|
|
260
|
-
waitForSet,
|
|
261
234
|
onSaved,
|
|
262
235
|
fieldCreatedAt,
|
|
263
236
|
fieldUpdatedAt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keel.mjs","sources":["../src/sync-plugins/keel.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAiBA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;MASd,QAAQ,GAAc,CAAC,WAAW,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"keel.mjs","sources":["../src/sync-plugins/keel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -3,34 +3,34 @@ import { SyncedOptions, SyncedOptionsGlobal, type SyncedGetParams } from '@legen
|
|
|
3
3
|
import { CrudAsOption, SyncedCrudPropsBase, SyncedCrudPropsMany, SyncedCrudReturnType } from '@legendapp/state/sync-plugins/crud';
|
|
4
4
|
import type { PostgrestFilterBuilder, PostgrestQueryBuilder } from '@supabase/postgrest-js';
|
|
5
5
|
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
6
|
-
type
|
|
7
|
-
type
|
|
8
|
-
type
|
|
9
|
-
type
|
|
6
|
+
export type SupabaseSchemaOf<Client extends SupabaseClient> = Client extends SupabaseClient<infer _, infer __, infer Schema> ? Schema : never;
|
|
7
|
+
export type SupabaseTableOf<Client extends SupabaseClient> = SupabaseSchemaOf<Client>['Tables'];
|
|
8
|
+
export type SupabaseCollectionOf<Client extends SupabaseClient> = keyof SupabaseTableOf<Client>;
|
|
9
|
+
export type SupabaseRowOf<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>> = SupabaseTableOf<Client>[Collection]['Row'];
|
|
10
10
|
export type SyncedSupabaseConfig<T extends {
|
|
11
11
|
id: string;
|
|
12
|
-
}> = Omit<SyncedCrudPropsBase<T>, 'create' | 'update' | 'delete'
|
|
13
|
-
export interface
|
|
12
|
+
}> = Omit<SyncedCrudPropsBase<T>, 'create' | 'update' | 'delete'>;
|
|
13
|
+
export interface SyncedSupabaseConfiguration extends Omit<SyncedSupabaseConfig<{
|
|
14
14
|
id: string;
|
|
15
15
|
}>, 'persist' | keyof SyncedOptions> {
|
|
16
16
|
persist?: SyncedOptionsGlobal;
|
|
17
17
|
enabled?: Observable<boolean>;
|
|
18
18
|
as?: Exclude<CrudAsOption, 'first'>;
|
|
19
19
|
}
|
|
20
|
-
interface SyncedSupabaseProps<Client extends SupabaseClient, Collection extends
|
|
20
|
+
interface SyncedSupabaseProps<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>, TOption extends CrudAsOption = 'object'> extends SyncedSupabaseConfig<SupabaseRowOf<Client, Collection>>, SyncedCrudPropsMany<SupabaseRowOf<Client, Collection>, SupabaseRowOf<Client, Collection>, TOption> {
|
|
21
21
|
supabase: Client;
|
|
22
22
|
collection: Collection;
|
|
23
|
-
select?: (query: PostgrestQueryBuilder<
|
|
23
|
+
select?: (query: PostgrestQueryBuilder<SupabaseSchemaOf<Client>, SupabaseTableOf<Client>[Collection], Collection>) => PostgrestFilterBuilder<SupabaseSchemaOf<Client>, SupabaseRowOf<Client, Collection>, SupabaseRowOf<Client, Collection>[], Collection, [
|
|
24
24
|
]>;
|
|
25
|
-
filter?: (select: PostgrestFilterBuilder<
|
|
26
|
-
]>, params: SyncedGetParams) => PostgrestFilterBuilder<
|
|
25
|
+
filter?: (select: PostgrestFilterBuilder<SupabaseSchemaOf<Client>, SupabaseRowOf<Client, Collection>, SupabaseRowOf<Client, Collection>[], Collection, [
|
|
26
|
+
]>, params: SyncedGetParams) => PostgrestFilterBuilder<SupabaseSchemaOf<Client>, SupabaseRowOf<Client, Collection>, SupabaseRowOf<Client, Collection>[], Collection, [
|
|
27
27
|
]>;
|
|
28
28
|
actions?: ('create' | 'read' | 'update' | 'delete')[];
|
|
29
|
-
realtime?: {
|
|
29
|
+
realtime?: boolean | {
|
|
30
30
|
schema?: string;
|
|
31
31
|
filter?: string;
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
export declare function configureSyncedSupabase(config:
|
|
35
|
-
export declare function syncedSupabase<Client extends SupabaseClient, Collection extends
|
|
34
|
+
export declare function configureSyncedSupabase(config: SyncedSupabaseConfiguration): void;
|
|
35
|
+
export declare function syncedSupabase<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client> & string, AsOption extends CrudAsOption = 'object'>(props: SyncedSupabaseProps<Client, Collection, AsOption>): SyncedCrudReturnType<SupabaseRowOf<Client, Collection>, AsOption>;
|
|
36
36
|
export {};
|
package/sync-plugins/supabase.js
CHANGED
|
@@ -24,7 +24,6 @@ function syncedSupabase(props) {
|
|
|
24
24
|
const from = client.from(collection);
|
|
25
25
|
let select = selectFn ? selectFn(from) : from.select();
|
|
26
26
|
if (changesSince === 'last-sync') {
|
|
27
|
-
select = select.neq('deleted', true);
|
|
28
27
|
if (lastSync) {
|
|
29
28
|
const date = new Date(lastSync).toISOString();
|
|
30
29
|
select = select.or([
|
|
@@ -60,9 +59,7 @@ function syncedSupabase(props) {
|
|
|
60
59
|
? async (input) => {
|
|
61
60
|
const id = input.id;
|
|
62
61
|
const from = client.from(collection);
|
|
63
|
-
const res = await (
|
|
64
|
-
.eq('id', id)
|
|
65
|
-
.select();
|
|
62
|
+
const res = await from.delete().eq('id', id).select();
|
|
66
63
|
const { data, error } = res;
|
|
67
64
|
if (data) {
|
|
68
65
|
const created = data[0];
|
|
@@ -75,7 +72,7 @@ function syncedSupabase(props) {
|
|
|
75
72
|
: undefined;
|
|
76
73
|
const subscribe = realtime
|
|
77
74
|
? ({ node, value$, update }) => {
|
|
78
|
-
const { filter, schema } = realtime;
|
|
75
|
+
const { filter, schema } = (state.isObject(realtime) ? realtime : {});
|
|
79
76
|
const channel = client
|
|
80
77
|
.channel(`LS_${node.key || ''}${channelNum++}`)
|
|
81
78
|
.on('postgres_changes', {
|
|
@@ -122,25 +119,10 @@ function syncedSupabase(props) {
|
|
|
122
119
|
create,
|
|
123
120
|
update,
|
|
124
121
|
delete: deleteFn,
|
|
125
|
-
onSaved: (saved) => {
|
|
126
|
-
// Update the local timestamps with server response
|
|
127
|
-
if (fieldCreatedAt || fieldUpdatedAt) {
|
|
128
|
-
const ret = {
|
|
129
|
-
id: saved.id,
|
|
130
|
-
};
|
|
131
|
-
if (fieldCreatedAt) {
|
|
132
|
-
ret[fieldCreatedAt] = fieldCreatedAt;
|
|
133
|
-
}
|
|
134
|
-
if (fieldUpdatedAt) {
|
|
135
|
-
ret[fieldUpdatedAt] = fieldUpdatedAt;
|
|
136
|
-
}
|
|
137
|
-
return ret;
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
122
|
subscribe,
|
|
141
123
|
fieldCreatedAt,
|
|
142
124
|
fieldUpdatedAt,
|
|
143
|
-
updatePartial:
|
|
125
|
+
updatePartial: false,
|
|
144
126
|
generateId,
|
|
145
127
|
waitFor: () => isEnabled$.get() && (waitFor ? state.computeSelector(waitFor) : true),
|
|
146
128
|
waitForSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.js","sources":["../src/sync-plugins/supabase.ts"],"sourcesContent":[null],"names":["observable","removeNullUndefined","mergeIntoObservable","symbolDelete","syncedCrud","computeSelector"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"supabase.js","sources":["../src/sync-plugins/supabase.ts"],"sourcesContent":[null],"names":["observable","removeNullUndefined","mergeIntoObservable","isObject","symbolDelete","syncedCrud","computeSelector"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { observable, mergeIntoObservable, computeSelector, symbolDelete } from '@legendapp/state';
|
|
1
|
+
import { observable, mergeIntoObservable, computeSelector, isObject, symbolDelete } from '@legendapp/state';
|
|
2
2
|
import { removeNullUndefined } from '@legendapp/state/sync';
|
|
3
3
|
import { syncedCrud } from '@legendapp/state/sync-plugins/crud';
|
|
4
4
|
|
|
@@ -22,7 +22,6 @@ function syncedSupabase(props) {
|
|
|
22
22
|
const from = client.from(collection);
|
|
23
23
|
let select = selectFn ? selectFn(from) : from.select();
|
|
24
24
|
if (changesSince === 'last-sync') {
|
|
25
|
-
select = select.neq('deleted', true);
|
|
26
25
|
if (lastSync) {
|
|
27
26
|
const date = new Date(lastSync).toISOString();
|
|
28
27
|
select = select.or([
|
|
@@ -58,9 +57,7 @@ function syncedSupabase(props) {
|
|
|
58
57
|
? async (input) => {
|
|
59
58
|
const id = input.id;
|
|
60
59
|
const from = client.from(collection);
|
|
61
|
-
const res = await (
|
|
62
|
-
.eq('id', id)
|
|
63
|
-
.select();
|
|
60
|
+
const res = await from.delete().eq('id', id).select();
|
|
64
61
|
const { data, error } = res;
|
|
65
62
|
if (data) {
|
|
66
63
|
const created = data[0];
|
|
@@ -73,7 +70,7 @@ function syncedSupabase(props) {
|
|
|
73
70
|
: undefined;
|
|
74
71
|
const subscribe = realtime
|
|
75
72
|
? ({ node, value$, update }) => {
|
|
76
|
-
const { filter, schema } = realtime;
|
|
73
|
+
const { filter, schema } = (isObject(realtime) ? realtime : {});
|
|
77
74
|
const channel = client
|
|
78
75
|
.channel(`LS_${node.key || ''}${channelNum++}`)
|
|
79
76
|
.on('postgres_changes', {
|
|
@@ -120,25 +117,10 @@ function syncedSupabase(props) {
|
|
|
120
117
|
create,
|
|
121
118
|
update,
|
|
122
119
|
delete: deleteFn,
|
|
123
|
-
onSaved: (saved) => {
|
|
124
|
-
// Update the local timestamps with server response
|
|
125
|
-
if (fieldCreatedAt || fieldUpdatedAt) {
|
|
126
|
-
const ret = {
|
|
127
|
-
id: saved.id,
|
|
128
|
-
};
|
|
129
|
-
if (fieldCreatedAt) {
|
|
130
|
-
ret[fieldCreatedAt] = fieldCreatedAt;
|
|
131
|
-
}
|
|
132
|
-
if (fieldUpdatedAt) {
|
|
133
|
-
ret[fieldUpdatedAt] = fieldUpdatedAt;
|
|
134
|
-
}
|
|
135
|
-
return ret;
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
120
|
subscribe,
|
|
139
121
|
fieldCreatedAt,
|
|
140
122
|
fieldUpdatedAt,
|
|
141
|
-
updatePartial:
|
|
123
|
+
updatePartial: false,
|
|
142
124
|
generateId,
|
|
143
125
|
waitFor: () => isEnabled$.get() && (waitFor ? computeSelector(waitFor) : true),
|
|
144
126
|
waitForSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.mjs","sources":["../src/sync-plugins/supabase.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"supabase.mjs","sources":["../src/sync-plugins/supabase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/sync.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { SyncedOptionsGlobal } from './src/sync/syncTypes';
|
|
2
|
-
export * from './src/sync/persistTypes';
|
|
3
2
|
export { configureObservableSync } from './src/sync/configureObservableSync';
|
|
4
|
-
export
|
|
3
|
+
export * from './src/sync/persistTypes';
|
|
4
|
+
export * from './src/sync/syncHelpers';
|
|
5
5
|
export { mapSyncPlugins, syncObservable } from './src/sync/syncObservable';
|
|
6
|
-
export { synced } from './src/sync/synced';
|
|
7
6
|
export * from './src/sync/syncTypes';
|
|
7
|
+
export { synced } from './src/sync/synced';
|
|
8
8
|
export declare function isInRemoteChange(): boolean;
|
|
9
9
|
export declare const internal: {
|
|
10
10
|
observableSyncConfiguration: SyncedOptionsGlobal;
|
package/sync.js
CHANGED
|
@@ -50,6 +50,87 @@ function deepEqual(a, b, ignoreFields, nullVsUndefined) {
|
|
|
50
50
|
: undefined;
|
|
51
51
|
return JSON.stringify(a, replacer) === JSON.stringify(b, replacer);
|
|
52
52
|
}
|
|
53
|
+
function combineTransforms(...transforms) {
|
|
54
|
+
return {
|
|
55
|
+
load: (value, method) => {
|
|
56
|
+
let inValue = value;
|
|
57
|
+
transforms.forEach((transform) => {
|
|
58
|
+
if (transform.load) {
|
|
59
|
+
inValue = transform.load(inValue, method);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return inValue;
|
|
63
|
+
},
|
|
64
|
+
save: (value) => {
|
|
65
|
+
let outValue = value;
|
|
66
|
+
transforms.forEach((transform) => {
|
|
67
|
+
if (transform.save) {
|
|
68
|
+
outValue = transform.save(outValue);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return outValue;
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const ISO8601 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/;
|
|
76
|
+
function transformStringifyKeys(...keys) {
|
|
77
|
+
return {
|
|
78
|
+
load: (value) => {
|
|
79
|
+
keys.forEach((key) => {
|
|
80
|
+
const keyRemote = state.isObject(key) ? key.from : key;
|
|
81
|
+
const keyLocal = state.isObject(key) ? key.to : key;
|
|
82
|
+
const v = value[keyRemote];
|
|
83
|
+
if (!state.isNullOrUndefined(v)) {
|
|
84
|
+
value[keyLocal] = state.isString(v) ? JSON.parse(v) : v;
|
|
85
|
+
}
|
|
86
|
+
if (keyLocal !== keyRemote) {
|
|
87
|
+
delete value[keyRemote];
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return value;
|
|
91
|
+
},
|
|
92
|
+
save: (value) => {
|
|
93
|
+
keys.forEach((key) => {
|
|
94
|
+
const keyRemote = state.isObject(key) ? key.from : key;
|
|
95
|
+
const keyLocal = state.isObject(key) ? key.to : key;
|
|
96
|
+
const v = value[keyLocal];
|
|
97
|
+
if (!state.isNullOrUndefined(v) && !state.isString(v)) {
|
|
98
|
+
value[keyRemote] = JSON.stringify(v);
|
|
99
|
+
}
|
|
100
|
+
if (keyLocal !== keyRemote) {
|
|
101
|
+
delete value[keyLocal];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return value;
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function transformStringifyDates(...args) {
|
|
109
|
+
return {
|
|
110
|
+
load: (value) => {
|
|
111
|
+
const keys = args.length > 0 ? args : Object.keys(value);
|
|
112
|
+
for (let i = 0; i < keys.length; i++) {
|
|
113
|
+
const key = keys[i];
|
|
114
|
+
const keyValue = value[key];
|
|
115
|
+
if (state.isString(keyValue) && keyValue.match(ISO8601)) {
|
|
116
|
+
value[key] = new Date(keyValue);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return value;
|
|
120
|
+
},
|
|
121
|
+
save: (value) => {
|
|
122
|
+
const keys = args.length > 0 ? args : Object.keys(value);
|
|
123
|
+
for (let i = 0; i < keys.length; i++) {
|
|
124
|
+
const key = keys[i];
|
|
125
|
+
const keyValue = value[key];
|
|
126
|
+
if (state.isDate(keyValue)) {
|
|
127
|
+
value[key] = keyValue.toISOString();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return value;
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
53
134
|
|
|
54
135
|
function syncObservableAdapter({ get, set }) {
|
|
55
136
|
const ret = {};
|
|
@@ -465,7 +546,8 @@ async function doChangeRemote(changeInfo) {
|
|
|
465
546
|
let value = obs.peek();
|
|
466
547
|
const transformSave = (_a = syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.transform) === null || _a === void 0 ? void 0 : _a.save;
|
|
467
548
|
if (transformSave) {
|
|
468
|
-
value
|
|
549
|
+
// Clone value before transforming to ensure it doesn't change observable value
|
|
550
|
+
value = transformSave(clone(value));
|
|
469
551
|
}
|
|
470
552
|
onBeforeSet === null || onBeforeSet === void 0 ? void 0 : onBeforeSet();
|
|
471
553
|
localState.numSavesOutstanding = (localState.numSavesOutstanding || 0) + 1;
|
|
@@ -965,6 +1047,7 @@ const internal = {
|
|
|
965
1047
|
observableSyncConfiguration,
|
|
966
1048
|
};
|
|
967
1049
|
|
|
1050
|
+
exports.combineTransforms = combineTransforms;
|
|
968
1051
|
exports.configureObservableSync = configureObservableSync;
|
|
969
1052
|
exports.deepEqual = deepEqual;
|
|
970
1053
|
exports.diffObjects = diffObjects;
|
|
@@ -974,4 +1057,6 @@ exports.mapSyncPlugins = mapSyncPlugins;
|
|
|
974
1057
|
exports.removeNullUndefined = removeNullUndefined;
|
|
975
1058
|
exports.syncObservable = syncObservable;
|
|
976
1059
|
exports.synced = synced;
|
|
1060
|
+
exports.transformStringifyDates = transformStringifyDates;
|
|
1061
|
+
exports.transformStringifyKeys = transformStringifyKeys;
|
|
977
1062
|
//# sourceMappingURL=sync.js.map
|