@legendapp/state 2.2.0-next.75 → 2.2.0-next.76
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/helpers/time.d.ts +2 -2
- package/index.js +7 -5
- package/index.js.map +1 -1
- package/index.mjs +7 -5
- package/index.mjs.map +1 -1
- package/package.json +11 -1
- package/persist.js +82 -87
- package/persist.js.map +1 -1
- package/persist.mjs +82 -87
- package/persist.mjs.map +1 -1
- package/src/batching.ts +2 -0
- package/src/computed.ts +4 -2
- package/src/globals.ts +1 -1
- package/src/helpers.ts +1 -1
- package/src/history/undoRedo.ts +111 -0
- package/src/observableInterfaces.ts +6 -5
- package/src/observe.ts +1 -1
- package/src/sync/activateSyncedNode.ts +2 -20
- package/src/sync/syncObservable.ts +88 -73
- package/src/sync-plugins/crud.ts +109 -98
- package/src/sync-plugins/fetch.ts +56 -26
- package/src/sync-plugins/keel.ts +447 -0
- package/src/sync-plugins/supabase.ts +225 -0
- package/src/syncTypes.ts +10 -4
- package/sync-plugins/crud.d.ts +27 -26
- package/sync-plugins/crud.js +50 -42
- package/sync-plugins/crud.js.map +1 -1
- package/sync-plugins/crud.mjs +50 -42
- package/sync-plugins/crud.mjs.map +1 -1
- package/sync-plugins/fetch.d.ts +8 -7
- package/sync-plugins/fetch.js +33 -11
- package/sync-plugins/fetch.js.map +1 -1
- package/sync-plugins/fetch.mjs +34 -12
- package/sync-plugins/fetch.mjs.map +1 -1
- package/sync-plugins/keel.d.ts +91 -0
- package/sync-plugins/keel.js +278 -0
- package/sync-plugins/keel.js.map +1 -0
- package/sync-plugins/keel.mjs +274 -0
- package/sync-plugins/keel.mjs.map +1 -0
- package/sync-plugins/supabase.d.ts +32 -0
- package/sync-plugins/supabase.js +134 -0
- package/sync-plugins/supabase.js.map +1 -0
- package/sync-plugins/supabase.mjs +131 -0
- package/sync-plugins/supabase.mjs.map +1 -0
- package/sync.js +82 -87
- package/sync.js.map +1 -1
- package/sync.mjs +83 -88
- package/sync.mjs.map +1 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Observable,
|
|
3
|
+
SyncedOptionsGlobal,
|
|
4
|
+
computeSelector,
|
|
5
|
+
getNodeValue,
|
|
6
|
+
mergeIntoObservable,
|
|
7
|
+
observable,
|
|
8
|
+
symbolDelete,
|
|
9
|
+
type SyncedGetParams,
|
|
10
|
+
type SyncedSubscribeParams,
|
|
11
|
+
} from '@legendapp/state';
|
|
12
|
+
import {
|
|
13
|
+
CrudAsOption,
|
|
14
|
+
SyncedCrudPropsBase,
|
|
15
|
+
SyncedCrudPropsMany,
|
|
16
|
+
SyncedCrudReturnType,
|
|
17
|
+
syncedCrud,
|
|
18
|
+
} from '@legendapp/state/sync-plugins/crud';
|
|
19
|
+
import type { PostgrestFilterBuilder } from '@supabase/postgrest-js';
|
|
20
|
+
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
21
|
+
|
|
22
|
+
// Unused types but maybe useful in the future so keeping them for now
|
|
23
|
+
// type DatabaseOf<TClient extends SupabaseClient> = TClient extends SupabaseClient<infer TDB> ? TDB : never;
|
|
24
|
+
// type SchemaNameOf<TClient extends SupabaseClient> = TClient extends SupabaseClient<infer _, infer TSchemaName>
|
|
25
|
+
// ? TSchemaName
|
|
26
|
+
// : never;
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
type SchemaOf<TClient extends SupabaseClient> = TClient extends SupabaseClient<infer _, infer __, infer TSchema>
|
|
30
|
+
? TSchema
|
|
31
|
+
: never;
|
|
32
|
+
type TableOf<TClient extends SupabaseClient> = SchemaOf<TClient>['Tables'];
|
|
33
|
+
type CollectionOf<TClient extends SupabaseClient> = keyof TableOf<TClient>;
|
|
34
|
+
type RowOf<
|
|
35
|
+
TClient extends SupabaseClient,
|
|
36
|
+
TCollection extends CollectionOf<TClient>,
|
|
37
|
+
> = TableOf<TClient>[TCollection]['Row'];
|
|
38
|
+
|
|
39
|
+
export type SyncedSupabaseConfig<T extends { id: string }> = Omit<
|
|
40
|
+
SyncedCrudPropsBase<T>,
|
|
41
|
+
'create' | 'update' | 'delete' | 'onSaved' | 'transform' | 'fieldCreatedAt' | 'updatePartial' | 'subscribe'
|
|
42
|
+
>;
|
|
43
|
+
|
|
44
|
+
export interface SyncedSupabaseGlobalConfig extends Omit<SyncedSupabaseConfig<{ id: string }>, 'persist'> {
|
|
45
|
+
persist?: SyncedOptionsGlobal;
|
|
46
|
+
enabled?: Observable<boolean>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface SyncedSupabaseProps<
|
|
50
|
+
TClient extends SupabaseClient,
|
|
51
|
+
TCollection extends CollectionOf<TClient>,
|
|
52
|
+
TOption extends CrudAsOption = 'object',
|
|
53
|
+
> extends SyncedSupabaseConfig<RowOf<TClient, TCollection>>,
|
|
54
|
+
SyncedCrudPropsMany<RowOf<TClient, TCollection>, RowOf<TClient, TCollection>, TOption> {
|
|
55
|
+
supabase: TClient;
|
|
56
|
+
collection: TCollection;
|
|
57
|
+
filter?: (
|
|
58
|
+
select: PostgrestFilterBuilder<
|
|
59
|
+
SchemaOf<TClient>,
|
|
60
|
+
RowOf<TClient, TCollection>,
|
|
61
|
+
RowOf<TClient, TCollection>[],
|
|
62
|
+
TCollection,
|
|
63
|
+
[]
|
|
64
|
+
>,
|
|
65
|
+
params: SyncedGetParams,
|
|
66
|
+
) => PostgrestFilterBuilder<
|
|
67
|
+
SchemaOf<TClient>,
|
|
68
|
+
RowOf<TClient, TCollection>,
|
|
69
|
+
RowOf<TClient, TCollection>[],
|
|
70
|
+
TCollection,
|
|
71
|
+
[]
|
|
72
|
+
>;
|
|
73
|
+
actions?: ('create' | 'read' | 'update' | 'delete')[];
|
|
74
|
+
realtime?: { schema?: string; filter?: string };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
let channelNum = 1;
|
|
78
|
+
const supabaseConfig: SyncedSupabaseGlobalConfig = {};
|
|
79
|
+
const isEnabled$ = observable(true);
|
|
80
|
+
|
|
81
|
+
export function configureSyncedSupabase(config: SyncedSupabaseGlobalConfig) {
|
|
82
|
+
const { enabled, ...rest } = config;
|
|
83
|
+
if (enabled !== undefined) {
|
|
84
|
+
isEnabled$.set(enabled);
|
|
85
|
+
}
|
|
86
|
+
Object.assign(supabaseConfig, rest);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function syncedSupabase<
|
|
90
|
+
Client extends SupabaseClient,
|
|
91
|
+
Collection extends CollectionOf<Client> & string,
|
|
92
|
+
AsOption extends CrudAsOption = 'object',
|
|
93
|
+
>(props: SyncedSupabaseProps<Client, Collection, AsOption>): SyncedCrudReturnType<RowOf<Client, Collection>, AsOption> {
|
|
94
|
+
mergeIntoObservable(props, supabaseConfig);
|
|
95
|
+
const {
|
|
96
|
+
supabase: client,
|
|
97
|
+
collection,
|
|
98
|
+
filter,
|
|
99
|
+
actions,
|
|
100
|
+
fieldUpdatedAt,
|
|
101
|
+
realtime,
|
|
102
|
+
changesSince,
|
|
103
|
+
waitFor,
|
|
104
|
+
waitForSet,
|
|
105
|
+
...rest
|
|
106
|
+
} = props;
|
|
107
|
+
const list =
|
|
108
|
+
!actions || actions.includes('read')
|
|
109
|
+
? async (params: SyncedGetParams) => {
|
|
110
|
+
const { lastSync } = params;
|
|
111
|
+
let select = client.from(collection).select();
|
|
112
|
+
if (changesSince === 'last-sync') {
|
|
113
|
+
select = select.neq('deleted', true);
|
|
114
|
+
if (lastSync) {
|
|
115
|
+
const date = new Date(lastSync).toISOString();
|
|
116
|
+
select = select.or(
|
|
117
|
+
`created_at.gt.${date}${fieldUpdatedAt ? `,${fieldUpdatedAt}.gt.${date}` : ''}`,
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (filter) {
|
|
122
|
+
select = filter(select, params);
|
|
123
|
+
}
|
|
124
|
+
const { data, error } = await select;
|
|
125
|
+
if (error) {
|
|
126
|
+
throw new Error(error?.message);
|
|
127
|
+
}
|
|
128
|
+
return (data! || []) as RowOf<Client, Collection>[];
|
|
129
|
+
}
|
|
130
|
+
: undefined;
|
|
131
|
+
|
|
132
|
+
const upsert = async (input: RowOf<Client, Collection>) => {
|
|
133
|
+
const res = await client.from(collection).upsert(input).select();
|
|
134
|
+
const { data, error } = res;
|
|
135
|
+
if (data) {
|
|
136
|
+
const created = data[0];
|
|
137
|
+
return created;
|
|
138
|
+
} else {
|
|
139
|
+
throw new Error(error?.message);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const create = !actions || actions.includes('create') ? upsert : undefined;
|
|
143
|
+
const update = !actions || actions.includes('update') ? upsert : undefined;
|
|
144
|
+
const deleteFn =
|
|
145
|
+
!actions || actions.includes('delete')
|
|
146
|
+
? async (input: RowOf<Client, Collection>) => {
|
|
147
|
+
const id = input.id;
|
|
148
|
+
const from = client.from(collection);
|
|
149
|
+
const res = await (changesSince === 'last-sync' ? from.update({ deleted: true }) : from.delete())
|
|
150
|
+
.eq('id', id)
|
|
151
|
+
.select();
|
|
152
|
+
const { data, error } = res;
|
|
153
|
+
if (data) {
|
|
154
|
+
const created = data[0];
|
|
155
|
+
return created;
|
|
156
|
+
} else {
|
|
157
|
+
throw new Error(error?.message);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
: undefined;
|
|
161
|
+
const subscribe = realtime
|
|
162
|
+
? ({ node, update }: SyncedSubscribeParams) => {
|
|
163
|
+
const { filter, schema } = realtime;
|
|
164
|
+
const channel = client
|
|
165
|
+
.channel(`LS_${node.key || ''}${channelNum++}`)
|
|
166
|
+
.on(
|
|
167
|
+
'postgres_changes',
|
|
168
|
+
{
|
|
169
|
+
event: '*',
|
|
170
|
+
table: collection,
|
|
171
|
+
schema: schema || 'public',
|
|
172
|
+
filter: filter || undefined,
|
|
173
|
+
},
|
|
174
|
+
(payload) => {
|
|
175
|
+
const { eventType, new: value, old } = payload;
|
|
176
|
+
if (eventType === 'INSERT' || eventType === 'UPDATE') {
|
|
177
|
+
const cur = getNodeValue(node)?.[value.id];
|
|
178
|
+
const curDateStr = cur && (cur.updated_at || cur.created_at);
|
|
179
|
+
const valueDateStr = value.updated_at || value.created_at;
|
|
180
|
+
const valueDate = +new Date(valueDateStr);
|
|
181
|
+
// Check if new or newer than last seen locally
|
|
182
|
+
if (valueDateStr && (!curDateStr || valueDate > +new Date(curDateStr))) {
|
|
183
|
+
// Update local with the new value
|
|
184
|
+
update({
|
|
185
|
+
value: { [value.id]: value },
|
|
186
|
+
lastSync: valueDate,
|
|
187
|
+
mode: 'merge',
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
} else if (eventType === 'DELETE') {
|
|
191
|
+
const { id } = old;
|
|
192
|
+
update({
|
|
193
|
+
value: { [id]: symbolDelete },
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
)
|
|
198
|
+
.subscribe();
|
|
199
|
+
|
|
200
|
+
return channel.unsubscribe;
|
|
201
|
+
}
|
|
202
|
+
: undefined;
|
|
203
|
+
|
|
204
|
+
return syncedCrud<RowOf<Client, Collection>, RowOf<Client, Collection>, AsOption>({
|
|
205
|
+
...rest,
|
|
206
|
+
list,
|
|
207
|
+
create,
|
|
208
|
+
update,
|
|
209
|
+
delete: deleteFn,
|
|
210
|
+
onSaved: (saved) => {
|
|
211
|
+
// Update the local timestamps with server response
|
|
212
|
+
return {
|
|
213
|
+
id: saved.id,
|
|
214
|
+
created_at: saved.created_at,
|
|
215
|
+
updated_at: saved.updated_at,
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
subscribe,
|
|
219
|
+
fieldCreatedAt: 'created_at',
|
|
220
|
+
fieldUpdatedAt,
|
|
221
|
+
updatePartial: true,
|
|
222
|
+
waitFor: () => isEnabled$.get() && (waitFor ? computeSelector(waitFor) : true),
|
|
223
|
+
waitForSet: () => isEnabled$.get() && (waitForSet ? computeSelector(waitForSet) : true),
|
|
224
|
+
});
|
|
225
|
+
}
|
package/src/syncTypes.ts
CHANGED
|
@@ -38,7 +38,7 @@ export interface SyncedGetParams {
|
|
|
38
38
|
refresh: () => void;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export
|
|
41
|
+
export interface SyncedSetParams<T> extends SetParams<T> {
|
|
42
42
|
node: NodeValue;
|
|
43
43
|
valuePrevious: T;
|
|
44
44
|
update: UpdateFn;
|
|
@@ -46,14 +46,20 @@ export type SyncedSetParams<T> = SetParams<T> & {
|
|
|
46
46
|
cancelRetry: () => void;
|
|
47
47
|
retryNum: number;
|
|
48
48
|
fromSubscribe: boolean | undefined;
|
|
49
|
-
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface SyncedSubscribeParams {
|
|
52
|
+
node: NodeValue;
|
|
53
|
+
update: UpdateFn;
|
|
54
|
+
refresh: () => void;
|
|
55
|
+
}
|
|
50
56
|
|
|
51
57
|
export type GetMode = 'set' | 'assign' | 'merge' | 'append' | 'prepend';
|
|
52
58
|
|
|
53
59
|
export interface SyncedOptions<T = any> extends Omit<LinkedOptions<T>, 'get' | 'set'> {
|
|
54
60
|
get?: (params: SyncedGetParams) => Promise<T> | T;
|
|
55
61
|
set?: (params: SyncedSetParams<T>) => void | Promise<any>;
|
|
56
|
-
subscribe?: (params:
|
|
62
|
+
subscribe?: (params: SyncedSubscribeParams) => void;
|
|
57
63
|
retry?: RetryOptions;
|
|
58
64
|
persist?: PersistOptions<any>;
|
|
59
65
|
debounceSet?: number;
|
|
@@ -71,7 +77,7 @@ export interface SyncedOptions<T = any> extends Omit<LinkedOptions<T>, 'get' | '
|
|
|
71
77
|
}
|
|
72
78
|
|
|
73
79
|
export interface SyncedOptionsGlobal<T = any> extends Omit<SyncedOptions<T>, 'get' | 'set' | 'persist'> {
|
|
74
|
-
persist?: ObservablePersistPluginOptions &
|
|
80
|
+
persist?: ObservablePersistPluginOptions & Omit<PersistOptions, 'name' | 'transform' | 'options'>;
|
|
75
81
|
}
|
|
76
82
|
|
|
77
83
|
export interface ObservablePersistPluginOptions {
|
package/sync-plugins/crud.d.ts
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
1
|
import { SyncTransform, SyncedGetParams, SyncedOptions, SyncedSetParams } from '@legendapp/state';
|
|
2
|
-
export type CrudAsOption = 'Map' | 'object' | 'first'
|
|
2
|
+
export type CrudAsOption = 'Map' | 'object' | 'first';
|
|
3
3
|
export type CrudResult<T> = T;
|
|
4
|
-
export interface SyncedCrudPropsSingle<
|
|
5
|
-
get?: (params: SyncedGetParams) => Promise<CrudResult<
|
|
6
|
-
initial?:
|
|
4
|
+
export interface SyncedCrudPropsSingle<TRemote, TLocal> {
|
|
5
|
+
get?: (params: SyncedGetParams) => Promise<CrudResult<TRemote | null>> | CrudResult<TRemote | null>;
|
|
6
|
+
initial?: InitialValue<TLocal, 'first'>;
|
|
7
|
+
as?: never | 'first';
|
|
7
8
|
}
|
|
8
|
-
export interface SyncedCrudPropsMany<
|
|
9
|
-
list?: (params: SyncedGetParams) => Promise<CrudResult<
|
|
10
|
-
as?:
|
|
11
|
-
initial?: InitialValue<
|
|
9
|
+
export interface SyncedCrudPropsMany<TRemote, TLocal, TAsOption extends CrudAsOption> {
|
|
10
|
+
list?: (params: SyncedGetParams) => Promise<CrudResult<TRemote[] | null>> | CrudResult<TRemote[] | null>;
|
|
11
|
+
as?: TAsOption;
|
|
12
|
+
initial?: InitialValue<TLocal, TAsOption>;
|
|
12
13
|
}
|
|
13
|
-
export interface SyncedCrudPropsBase<
|
|
14
|
-
id: string;
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
transform?: SyncTransform<TOut, TGet>;
|
|
14
|
+
export interface SyncedCrudPropsBase<TRemote extends {
|
|
15
|
+
id: string | number;
|
|
16
|
+
}, TLocal = TRemote> extends Omit<SyncedOptions<TLocal>, 'get' | 'set' | 'transform' | 'initial'> {
|
|
17
|
+
create?(input: TRemote, params: SyncedSetParams<TRemote>): Promise<CrudResult<TRemote> | null | undefined>;
|
|
18
|
+
update?(input: Partial<TRemote>, params: SyncedSetParams<TRemote>): Promise<CrudResult<Partial<TRemote> | null | undefined>>;
|
|
19
|
+
delete?(input: TRemote, params: SyncedSetParams<TRemote>): Promise<CrudResult<any>>;
|
|
20
|
+
onSaved?(saved: TLocal, input: TRemote, isCreate: boolean): Partial<TLocal> | void;
|
|
21
|
+
transform?: SyncTransform<TLocal, TRemote>;
|
|
22
22
|
fieldUpdatedAt?: string;
|
|
23
|
+
fieldCreatedAt?: string;
|
|
23
24
|
updatePartial?: boolean;
|
|
25
|
+
changesSince?: 'all' | 'last-sync';
|
|
24
26
|
}
|
|
25
|
-
type
|
|
26
|
-
type
|
|
27
|
-
export type SyncedCrudReturnType<TGet, TSet, TOption extends CrudAsOption> = Promise<TOption extends 'Map' ? Map<string, OutputType<TGet, TSet>> : TOption extends 'object' ? Record<string, OutputType<TGet, TSet>> : TOption extends 'first' ? OutputType<TGet, TSet> : TGet[]> & {};
|
|
27
|
+
type InitialValue<T, TAsOption extends CrudAsOption> = TAsOption extends 'Map' ? Map<string, T> : TAsOption extends 'object' ? Record<string, T> : TAsOption extends 'first' ? T : T[];
|
|
28
|
+
export type SyncedCrudReturnType<TLocal, TAsOption extends CrudAsOption> = TAsOption extends 'Map' ? Map<string, TLocal> : TAsOption extends 'object' ? Record<string, TLocal> : TAsOption extends 'first' ? TLocal : TLocal[];
|
|
28
29
|
export declare function createTransform<T extends Record<string, any>, T2 extends Record<string, any>>(...keys: (keyof T | {
|
|
29
30
|
from: keyof T;
|
|
30
31
|
to: keyof T2;
|
|
31
32
|
})[]): SyncTransform<T2, T>;
|
|
32
33
|
export declare function combineTransforms<T, T2>(transform1: SyncTransform<T2, T>, ...transforms: Partial<SyncTransform<T2, T>>[]): SyncTransform<T2, T>;
|
|
33
|
-
export declare function syncedCrud<
|
|
34
|
-
id: string;
|
|
35
|
-
},
|
|
36
|
-
export declare function syncedCrud<
|
|
37
|
-
id: string;
|
|
38
|
-
},
|
|
34
|
+
export declare function syncedCrud<TRemote extends {
|
|
35
|
+
id: string | number;
|
|
36
|
+
}, TLocal = TRemote>(props: SyncedCrudPropsBase<TRemote, TLocal> & SyncedCrudPropsSingle<TRemote, TLocal>): SyncedCrudReturnType<TLocal, 'first'>;
|
|
37
|
+
export declare function syncedCrud<TRemote extends {
|
|
38
|
+
id: string | number;
|
|
39
|
+
}, TLocal = TRemote, TAsOption extends CrudAsOption = 'object'>(props: SyncedCrudPropsBase<TRemote, TLocal> & SyncedCrudPropsMany<TRemote, TLocal, TAsOption>): SyncedCrudReturnType<TLocal, Exclude<TAsOption, 'first'>>;
|
|
39
40
|
export {};
|
package/sync-plugins/crud.js
CHANGED
|
@@ -70,25 +70,23 @@ function combineTransforms(transform1, ...transforms) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
function syncedCrud(props) {
|
|
73
|
-
const { get: getFn, list: listFn, create: createFn, update: updateFn, delete: deleteFn, transform,
|
|
73
|
+
const { get: getFn, list: listFn, create: createFn, update: updateFn, delete: deleteFn, transform, fieldCreatedAt, fieldUpdatedAt, updatePartial, onSaved, mode: modeParam, changesSince, ...rest } = props;
|
|
74
74
|
let asType = props.as;
|
|
75
75
|
if (!asType) {
|
|
76
|
-
asType = (getFn ? 'first' : '
|
|
76
|
+
asType = (getFn ? 'first' : 'object');
|
|
77
77
|
}
|
|
78
78
|
const asMap = asType === 'Map';
|
|
79
|
-
const ensureId = (obj) => obj.id || (obj.id = generateId());
|
|
80
79
|
const get = getFn || listFn
|
|
81
80
|
? async (getParams) => {
|
|
82
81
|
const { updateLastSync, lastSync } = getParams;
|
|
83
82
|
if (listFn) {
|
|
84
|
-
if (lastSync) {
|
|
85
|
-
getParams.mode =
|
|
86
|
-
modeParam || (asType === 'array' ? 'append' : asType === 'first' ? 'set' : 'assign');
|
|
83
|
+
if (changesSince === 'last-sync' && lastSync) {
|
|
84
|
+
getParams.mode = modeParam || (asType === 'first' ? 'set' : 'assign');
|
|
87
85
|
}
|
|
88
|
-
|
|
86
|
+
const data = (await listFn(getParams)) || [];
|
|
89
87
|
let newLastSync = 0;
|
|
90
88
|
for (let i = 0; i < data.length; i++) {
|
|
91
|
-
const updated = data[i][fieldUpdatedAt];
|
|
89
|
+
const updated = data[i][fieldUpdatedAt] || data[i][fieldCreatedAt];
|
|
92
90
|
if (updated) {
|
|
93
91
|
newLastSync = Math.max(newLastSync, +new Date(updated));
|
|
94
92
|
}
|
|
@@ -96,18 +94,16 @@ function syncedCrud(props) {
|
|
|
96
94
|
if (newLastSync && newLastSync !== lastSync) {
|
|
97
95
|
updateLastSync(newLastSync);
|
|
98
96
|
}
|
|
97
|
+
let transformed = data;
|
|
99
98
|
if (transform === null || transform === void 0 ? void 0 : transform.load) {
|
|
100
|
-
|
|
99
|
+
transformed = await Promise.all(data.map(transform.load));
|
|
101
100
|
}
|
|
102
101
|
if (asType === 'first') {
|
|
103
|
-
return
|
|
104
|
-
}
|
|
105
|
-
else if (asType === 'array') {
|
|
106
|
-
return data;
|
|
102
|
+
return transformed.length > 0 ? transformed[0] : null;
|
|
107
103
|
}
|
|
108
104
|
else {
|
|
109
105
|
const out = asMap ? new Map() : {};
|
|
110
|
-
|
|
106
|
+
transformed.forEach((result) => {
|
|
111
107
|
const value = result.__deleted ? state.internal.symbolDelete : result;
|
|
112
108
|
asMap ? out.set(result.id, value) : (out[result.id] = value);
|
|
113
109
|
});
|
|
@@ -115,17 +111,18 @@ function syncedCrud(props) {
|
|
|
115
111
|
}
|
|
116
112
|
}
|
|
117
113
|
else if (getFn) {
|
|
118
|
-
|
|
114
|
+
const data = await getFn(getParams);
|
|
115
|
+
let transformed = data;
|
|
119
116
|
if (data) {
|
|
120
|
-
const newLastSync = data[fieldUpdatedAt];
|
|
117
|
+
const newLastSync = data[fieldUpdatedAt] || data[fieldCreatedAt];
|
|
121
118
|
if (newLastSync && newLastSync !== lastSync) {
|
|
122
119
|
updateLastSync(newLastSync);
|
|
123
120
|
}
|
|
124
121
|
if (transform === null || transform === void 0 ? void 0 : transform.load) {
|
|
125
|
-
|
|
122
|
+
transformed = await transform.load(data);
|
|
126
123
|
}
|
|
127
124
|
}
|
|
128
|
-
return
|
|
125
|
+
return transformed;
|
|
129
126
|
}
|
|
130
127
|
}
|
|
131
128
|
: undefined;
|
|
@@ -139,23 +136,27 @@ function syncedCrud(props) {
|
|
|
139
136
|
var _a;
|
|
140
137
|
if (asType === 'first') {
|
|
141
138
|
if (value) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
else if (path.length === 0) {
|
|
149
|
-
if (valueAtPath) {
|
|
150
|
-
updates.set(id, valueAtPath);
|
|
139
|
+
const id = value === null || value === void 0 ? void 0 : value.id;
|
|
140
|
+
if (id) {
|
|
141
|
+
const isCreate = fieldCreatedAt ? !value[fieldCreatedAt] : !prevAtPath;
|
|
142
|
+
if (isCreate || retryAsCreate) {
|
|
143
|
+
creates.set(id, value);
|
|
151
144
|
}
|
|
152
|
-
else if (
|
|
153
|
-
|
|
145
|
+
else if (path.length === 0) {
|
|
146
|
+
if (valueAtPath) {
|
|
147
|
+
updates.set(id, valueAtPath);
|
|
148
|
+
}
|
|
149
|
+
else if (prevAtPath) {
|
|
150
|
+
deletes.set(prevAtPath === null || prevAtPath === void 0 ? void 0 : prevAtPath.id, prevAtPath);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const key = path[0];
|
|
155
|
+
updates.set(id, Object.assign(updates.get(id) || { id }, { [key]: value[key] }));
|
|
154
156
|
}
|
|
155
157
|
}
|
|
156
158
|
else {
|
|
157
|
-
|
|
158
|
-
updates.set(id, Object.assign(updates.get(id) || { id }, { [key]: value[key] }));
|
|
159
|
+
console.error('[legend-state]: added item without an id');
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
else if (path.length === 0) {
|
|
@@ -170,7 +171,7 @@ function syncedCrud(props) {
|
|
|
170
171
|
let isCreateGuess;
|
|
171
172
|
if (path.length === 0) {
|
|
172
173
|
isCreateGuess =
|
|
173
|
-
!fieldUpdatedAt &&
|
|
174
|
+
!(fieldCreatedAt || fieldUpdatedAt) &&
|
|
174
175
|
!(((_a = (asMap
|
|
175
176
|
? Array.from(valueAtPath.values())
|
|
176
177
|
: state.isArray(valueAtPath)
|
|
@@ -185,7 +186,7 @@ function syncedCrud(props) {
|
|
|
185
186
|
else {
|
|
186
187
|
const itemKey = path[0];
|
|
187
188
|
const itemValue = asMap ? value.get(itemKey) : value[itemKey];
|
|
188
|
-
isCreateGuess = !fieldUpdatedAt && path.length === 1 && !prevAtPath;
|
|
189
|
+
isCreateGuess = !(fieldCreatedAt || fieldUpdatedAt) && path.length === 1 && !prevAtPath;
|
|
189
190
|
if (!itemValue) {
|
|
190
191
|
if (path.length === 1 && prevAtPath) {
|
|
191
192
|
if (deleteFn) {
|
|
@@ -201,8 +202,11 @@ function syncedCrud(props) {
|
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
itemsChanged === null || itemsChanged === void 0 ? void 0 : itemsChanged.forEach((item) => {
|
|
204
|
-
|
|
205
|
-
|
|
205
|
+
const isCreate = fieldCreatedAt
|
|
206
|
+
? !item[fieldCreatedAt]
|
|
207
|
+
: fieldUpdatedAt
|
|
208
|
+
? !item[fieldUpdatedAt]
|
|
209
|
+
: isCreateGuess;
|
|
206
210
|
if (isCreate) {
|
|
207
211
|
if (createFn) {
|
|
208
212
|
creates.set(item.id, item);
|
|
@@ -226,13 +230,16 @@ function syncedCrud(props) {
|
|
|
226
230
|
if (data && onSaved) {
|
|
227
231
|
const dataLoaded = ((transform === null || transform === void 0 ? void 0 : transform.load) ? transform.load(data) : data);
|
|
228
232
|
const savedOut = onSaved(dataLoaded, input, isCreate);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
value
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
if (savedOut) {
|
|
234
|
+
const createdAt = fieldCreatedAt ? savedOut[fieldCreatedAt] : undefined;
|
|
235
|
+
const updatedAt = fieldUpdatedAt ? savedOut[fieldUpdatedAt] : undefined;
|
|
236
|
+
const value = itemKey !== 'undefined' && asType !== 'first' ? { [itemKey]: savedOut } : savedOut;
|
|
237
|
+
update({
|
|
238
|
+
value,
|
|
239
|
+
lastSync: updatedAt || createdAt ? +new Date(updatedAt || createdAt) : undefined,
|
|
240
|
+
mode: 'merge',
|
|
241
|
+
});
|
|
242
|
+
}
|
|
236
243
|
}
|
|
237
244
|
};
|
|
238
245
|
return Promise.all([
|
|
@@ -257,6 +264,7 @@ function syncedCrud(props) {
|
|
|
257
264
|
return sync.synced({
|
|
258
265
|
set,
|
|
259
266
|
get,
|
|
267
|
+
mode: modeParam,
|
|
260
268
|
...rest,
|
|
261
269
|
});
|
|
262
270
|
}
|
package/sync-plugins/crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.js","sources":["../src/sync-plugins/crud.ts"],"sourcesContent":[null],"names":["internal","isObject","isNullOrUndefined","isString","isArray","isNumber","diffObjects","synced"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.js","sources":["../src/sync-plugins/crud.ts"],"sourcesContent":[null],"names":["internal","isObject","isNullOrUndefined","isString","isArray","isNumber","diffObjects","synced"],"mappings":"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"}
|