tinybase 6.1.0-beta.5 → 6.1.1
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/@types/persisters/index.d.ts +82 -0
- package/@types/persisters/with-schemas/index.d.ts +91 -0
- package/@types/store/index.d.ts +123 -1
- package/@types/store/with-schemas/index.d.ts +159 -24
- package/@types/ui-react/index.d.ts +575 -7
- package/@types/ui-react/with-schemas/index.d.ts +184 -40
- package/index.js +73 -53
- package/mergeable-store/index.js +73 -53
- package/mergeable-store/with-schemas/index.js +73 -53
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +6 -6
- package/persisters/index.js +33 -8
- package/persisters/persister-automerge/index.js +23 -3
- package/persisters/persister-automerge/with-schemas/index.js +23 -3
- package/persisters/persister-browser/index.js +23 -3
- package/persisters/persister-browser/with-schemas/index.js +23 -3
- package/persisters/persister-cr-sqlite-wasm/index.js +33 -8
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +33 -8
- package/persisters/persister-durable-object-storage/index.js +23 -3
- package/persisters/persister-durable-object-storage/with-schemas/index.js +23 -3
- package/persisters/persister-electric-sql/index.js +33 -8
- package/persisters/persister-electric-sql/with-schemas/index.js +33 -8
- package/persisters/persister-expo-sqlite/index.js +33 -8
- package/persisters/persister-expo-sqlite/with-schemas/index.js +33 -8
- package/persisters/persister-file/index.js +23 -3
- package/persisters/persister-file/with-schemas/index.js +23 -3
- package/persisters/persister-indexed-db/index.js +23 -3
- package/persisters/persister-indexed-db/with-schemas/index.js +23 -3
- package/persisters/persister-libsql/index.js +33 -8
- package/persisters/persister-libsql/with-schemas/index.js +33 -8
- package/persisters/persister-partykit-client/index.js +23 -3
- package/persisters/persister-partykit-client/with-schemas/index.js +23 -3
- package/persisters/persister-pglite/index.js +33 -8
- package/persisters/persister-pglite/with-schemas/index.js +33 -8
- package/persisters/persister-postgres/index.js +33 -8
- package/persisters/persister-postgres/with-schemas/index.js +33 -8
- package/persisters/persister-powersync/index.js +33 -8
- package/persisters/persister-powersync/with-schemas/index.js +33 -8
- package/persisters/persister-remote/index.js +23 -3
- package/persisters/persister-remote/with-schemas/index.js +23 -3
- package/persisters/persister-sqlite-bun/index.js +33 -8
- package/persisters/persister-sqlite-bun/with-schemas/index.js +33 -8
- package/persisters/persister-sqlite-wasm/index.js +33 -8
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +33 -8
- package/persisters/persister-sqlite3/index.js +33 -8
- package/persisters/persister-sqlite3/with-schemas/index.js +33 -8
- package/persisters/persister-yjs/index.js +23 -3
- package/persisters/persister-yjs/with-schemas/index.js +23 -3
- package/persisters/with-schemas/index.js +33 -8
- package/readme.md +17 -17
- package/releases.md +60 -36
- package/store/index.js +73 -53
- package/store/with-schemas/index.js +73 -53
- package/synchronizers/index.js +27 -9
- package/synchronizers/synchronizer-broadcast-channel/index.js +27 -9
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +27 -9
- package/synchronizers/synchronizer-local/index.js +27 -9
- package/synchronizers/synchronizer-local/with-schemas/index.js +27 -9
- package/synchronizers/synchronizer-ws-client/index.js +27 -9
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +27 -9
- package/synchronizers/synchronizer-ws-server/index.js +27 -9
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +27 -9
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +27 -9
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +27 -9
- package/synchronizers/with-schemas/index.js +27 -9
- package/ui-react/index.js +84 -20
- package/ui-react/with-schemas/index.js +84 -20
- package/ui-react-dom/index.js +1 -1
- package/ui-react-dom/with-schemas/index.js +1 -1
- package/ui-react-inspector/index.js +97 -57
- package/ui-react-inspector/with-schemas/index.js +97 -57
- package/with-schemas/index.js +73 -53
package/store/index.js
CHANGED
|
@@ -986,6 +986,27 @@ const createStore = () => {
|
|
|
986
986
|
transaction(() => actions(...arrayMap(args, id)));
|
|
987
987
|
return store;
|
|
988
988
|
};
|
|
989
|
+
const addSortedRowIdsListenerImpl = (
|
|
990
|
+
tableId,
|
|
991
|
+
cellId,
|
|
992
|
+
otherArgs,
|
|
993
|
+
listener,
|
|
994
|
+
mutator,
|
|
995
|
+
) => {
|
|
996
|
+
let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
997
|
+
return addListener(
|
|
998
|
+
() => {
|
|
999
|
+
const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
1000
|
+
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
1001
|
+
sortedRowIds = newSortedRowIds;
|
|
1002
|
+
listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
1006
|
+
[tableId, cellId],
|
|
1007
|
+
[getTableIds],
|
|
1008
|
+
);
|
|
1009
|
+
};
|
|
989
1010
|
const getContent = () => [getTables(), getValues()];
|
|
990
1011
|
const getTables = () => mapToObj3(tablesMap);
|
|
991
1012
|
const getTableIds = () => mapKeys(tablesMap);
|
|
@@ -994,22 +1015,36 @@ const createStore = () => {
|
|
|
994
1015
|
mapKeys(mapGet(tableCellIds, id(tableId)));
|
|
995
1016
|
const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
|
|
996
1017
|
const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
|
|
997
|
-
const getSortedRowIds = (
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1018
|
+
const getSortedRowIds = (
|
|
1019
|
+
tableIdOrArgs,
|
|
1020
|
+
cellId,
|
|
1021
|
+
descending,
|
|
1022
|
+
offset = 0,
|
|
1023
|
+
limit,
|
|
1024
|
+
) =>
|
|
1025
|
+
isObject(tableIdOrArgs)
|
|
1026
|
+
? getSortedRowIds(
|
|
1027
|
+
tableIdOrArgs.tableId,
|
|
1028
|
+
tableIdOrArgs.cellId,
|
|
1029
|
+
tableIdOrArgs.descending,
|
|
1030
|
+
tableIdOrArgs.offset,
|
|
1031
|
+
tableIdOrArgs.limit,
|
|
1032
|
+
)
|
|
1033
|
+
: arrayMap(
|
|
1034
|
+
slice(
|
|
1035
|
+
arraySort(
|
|
1036
|
+
mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
|
|
1037
|
+
isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
|
|
1038
|
+
rowId,
|
|
1039
|
+
]),
|
|
1040
|
+
([cell1], [cell2]) =>
|
|
1041
|
+
defaultSorter(cell1, cell2) * (descending ? -1 : 1),
|
|
1042
|
+
),
|
|
1043
|
+
offset,
|
|
1044
|
+
isUndefined(limit) ? limit : offset + limit,
|
|
1045
|
+
),
|
|
1046
|
+
([, rowId]) => rowId,
|
|
1047
|
+
);
|
|
1013
1048
|
const getRow = (tableId, rowId) =>
|
|
1014
1049
|
mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
|
|
1015
1050
|
const getCellIds = (tableId, rowId) =>
|
|
@@ -1401,48 +1436,33 @@ const createStore = () => {
|
|
|
1401
1436
|
mapForEach(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), cellCallback);
|
|
1402
1437
|
const forEachValue = (valueCallback) => mapForEach(valuesMap, valueCallback);
|
|
1403
1438
|
const addSortedRowIdsListener = (
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1439
|
+
tableIdOrArgs,
|
|
1440
|
+
cellIdOrListener,
|
|
1441
|
+
descendingOrMutator,
|
|
1407
1442
|
offset,
|
|
1408
1443
|
limit,
|
|
1409
1444
|
listener,
|
|
1410
1445
|
mutator,
|
|
1411
|
-
) =>
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1446
|
+
) =>
|
|
1447
|
+
isObject(tableIdOrArgs)
|
|
1448
|
+
? addSortedRowIdsListenerImpl(
|
|
1449
|
+
tableIdOrArgs.tableId,
|
|
1450
|
+
tableIdOrArgs.cellId,
|
|
1451
|
+
[
|
|
1452
|
+
tableIdOrArgs.descending ?? false,
|
|
1453
|
+
tableIdOrArgs.offset ?? 0,
|
|
1454
|
+
tableIdOrArgs.limit,
|
|
1455
|
+
],
|
|
1456
|
+
cellIdOrListener,
|
|
1457
|
+
descendingOrMutator,
|
|
1458
|
+
)
|
|
1459
|
+
: addSortedRowIdsListenerImpl(
|
|
1460
|
+
tableIdOrArgs,
|
|
1461
|
+
cellIdOrListener,
|
|
1462
|
+
[descendingOrMutator, offset, limit],
|
|
1463
|
+
listener,
|
|
1464
|
+
mutator,
|
|
1427
1465
|
);
|
|
1428
|
-
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
1429
|
-
sortedRowIds = newSortedRowIds;
|
|
1430
|
-
listener(
|
|
1431
|
-
store,
|
|
1432
|
-
tableId,
|
|
1433
|
-
cellId,
|
|
1434
|
-
descending,
|
|
1435
|
-
offset,
|
|
1436
|
-
limit,
|
|
1437
|
-
sortedRowIds,
|
|
1438
|
-
);
|
|
1439
|
-
}
|
|
1440
|
-
},
|
|
1441
|
-
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
1442
|
-
[tableId, cellId],
|
|
1443
|
-
[getTableIds],
|
|
1444
|
-
);
|
|
1445
|
-
};
|
|
1446
1466
|
const addStartTransactionListener = (listener) =>
|
|
1447
1467
|
addListener(listener, startTransactionListeners);
|
|
1448
1468
|
const addWillFinishTransactionListener = (listener) =>
|
|
@@ -986,6 +986,27 @@ const createStore = () => {
|
|
|
986
986
|
transaction(() => actions(...arrayMap(args, id)));
|
|
987
987
|
return store;
|
|
988
988
|
};
|
|
989
|
+
const addSortedRowIdsListenerImpl = (
|
|
990
|
+
tableId,
|
|
991
|
+
cellId,
|
|
992
|
+
otherArgs,
|
|
993
|
+
listener,
|
|
994
|
+
mutator,
|
|
995
|
+
) => {
|
|
996
|
+
let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
997
|
+
return addListener(
|
|
998
|
+
() => {
|
|
999
|
+
const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
1000
|
+
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
1001
|
+
sortedRowIds = newSortedRowIds;
|
|
1002
|
+
listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
1006
|
+
[tableId, cellId],
|
|
1007
|
+
[getTableIds],
|
|
1008
|
+
);
|
|
1009
|
+
};
|
|
989
1010
|
const getContent = () => [getTables(), getValues()];
|
|
990
1011
|
const getTables = () => mapToObj3(tablesMap);
|
|
991
1012
|
const getTableIds = () => mapKeys(tablesMap);
|
|
@@ -994,22 +1015,36 @@ const createStore = () => {
|
|
|
994
1015
|
mapKeys(mapGet(tableCellIds, id(tableId)));
|
|
995
1016
|
const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
|
|
996
1017
|
const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
|
|
997
|
-
const getSortedRowIds = (
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1018
|
+
const getSortedRowIds = (
|
|
1019
|
+
tableIdOrArgs,
|
|
1020
|
+
cellId,
|
|
1021
|
+
descending,
|
|
1022
|
+
offset = 0,
|
|
1023
|
+
limit,
|
|
1024
|
+
) =>
|
|
1025
|
+
isObject(tableIdOrArgs)
|
|
1026
|
+
? getSortedRowIds(
|
|
1027
|
+
tableIdOrArgs.tableId,
|
|
1028
|
+
tableIdOrArgs.cellId,
|
|
1029
|
+
tableIdOrArgs.descending,
|
|
1030
|
+
tableIdOrArgs.offset,
|
|
1031
|
+
tableIdOrArgs.limit,
|
|
1032
|
+
)
|
|
1033
|
+
: arrayMap(
|
|
1034
|
+
slice(
|
|
1035
|
+
arraySort(
|
|
1036
|
+
mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
|
|
1037
|
+
isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
|
|
1038
|
+
rowId,
|
|
1039
|
+
]),
|
|
1040
|
+
([cell1], [cell2]) =>
|
|
1041
|
+
defaultSorter(cell1, cell2) * (descending ? -1 : 1),
|
|
1042
|
+
),
|
|
1043
|
+
offset,
|
|
1044
|
+
isUndefined(limit) ? limit : offset + limit,
|
|
1045
|
+
),
|
|
1046
|
+
([, rowId]) => rowId,
|
|
1047
|
+
);
|
|
1013
1048
|
const getRow = (tableId, rowId) =>
|
|
1014
1049
|
mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
|
|
1015
1050
|
const getCellIds = (tableId, rowId) =>
|
|
@@ -1401,48 +1436,33 @@ const createStore = () => {
|
|
|
1401
1436
|
mapForEach(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), cellCallback);
|
|
1402
1437
|
const forEachValue = (valueCallback) => mapForEach(valuesMap, valueCallback);
|
|
1403
1438
|
const addSortedRowIdsListener = (
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1439
|
+
tableIdOrArgs,
|
|
1440
|
+
cellIdOrListener,
|
|
1441
|
+
descendingOrMutator,
|
|
1407
1442
|
offset,
|
|
1408
1443
|
limit,
|
|
1409
1444
|
listener,
|
|
1410
1445
|
mutator,
|
|
1411
|
-
) =>
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1446
|
+
) =>
|
|
1447
|
+
isObject(tableIdOrArgs)
|
|
1448
|
+
? addSortedRowIdsListenerImpl(
|
|
1449
|
+
tableIdOrArgs.tableId,
|
|
1450
|
+
tableIdOrArgs.cellId,
|
|
1451
|
+
[
|
|
1452
|
+
tableIdOrArgs.descending ?? false,
|
|
1453
|
+
tableIdOrArgs.offset ?? 0,
|
|
1454
|
+
tableIdOrArgs.limit,
|
|
1455
|
+
],
|
|
1456
|
+
cellIdOrListener,
|
|
1457
|
+
descendingOrMutator,
|
|
1458
|
+
)
|
|
1459
|
+
: addSortedRowIdsListenerImpl(
|
|
1460
|
+
tableIdOrArgs,
|
|
1461
|
+
cellIdOrListener,
|
|
1462
|
+
[descendingOrMutator, offset, limit],
|
|
1463
|
+
listener,
|
|
1464
|
+
mutator,
|
|
1427
1465
|
);
|
|
1428
|
-
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
1429
|
-
sortedRowIds = newSortedRowIds;
|
|
1430
|
-
listener(
|
|
1431
|
-
store,
|
|
1432
|
-
tableId,
|
|
1433
|
-
cellId,
|
|
1434
|
-
descending,
|
|
1435
|
-
offset,
|
|
1436
|
-
limit,
|
|
1437
|
-
sortedRowIds,
|
|
1438
|
-
);
|
|
1439
|
-
}
|
|
1440
|
-
},
|
|
1441
|
-
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
1442
|
-
[tableId, cellId],
|
|
1443
|
-
[getTableIds],
|
|
1444
|
-
);
|
|
1445
|
-
};
|
|
1446
1466
|
const addStartTransactionListener = (listener) =>
|
|
1447
1467
|
addListener(listener, startTransactionListeners);
|
|
1448
1468
|
const addWillFinishTransactionListener = (listener) =>
|
package/synchronizers/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
|
+
const DOT = '.';
|
|
2
3
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
3
4
|
str.split(separator, limit);
|
|
4
5
|
|
|
@@ -399,6 +400,25 @@ const createCustomPersister = (
|
|
|
399
400
|
return persister;
|
|
400
401
|
};
|
|
401
402
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
403
|
+
const startAutoPersisting = async (
|
|
404
|
+
initialContent,
|
|
405
|
+
startSaveFirst = false,
|
|
406
|
+
) => {
|
|
407
|
+
const [call1, call2] = startSaveFirst
|
|
408
|
+
? [startAutoSave, startAutoLoad]
|
|
409
|
+
: [startAutoLoad, startAutoSave];
|
|
410
|
+
await call1(initialContent);
|
|
411
|
+
await call2(initialContent);
|
|
412
|
+
return persister;
|
|
413
|
+
};
|
|
414
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
415
|
+
const [call1, call2] = stopSaveFirst
|
|
416
|
+
? [stopAutoSave, stopAutoLoad]
|
|
417
|
+
: [stopAutoLoad, stopAutoSave];
|
|
418
|
+
await call1();
|
|
419
|
+
await call2();
|
|
420
|
+
return persister;
|
|
421
|
+
};
|
|
402
422
|
const getStatus = () => status;
|
|
403
423
|
const addStatusListener = (listener) =>
|
|
404
424
|
addListener(listener, statusListeners);
|
|
@@ -412,10 +432,9 @@ const createCustomPersister = (
|
|
|
412
432
|
return persister;
|
|
413
433
|
};
|
|
414
434
|
const getStore = () => store;
|
|
415
|
-
const destroy =
|
|
435
|
+
const destroy = () => {
|
|
416
436
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
417
|
-
|
|
418
|
-
return await persister.stopAutoSave();
|
|
437
|
+
return stopAutoPersisting();
|
|
419
438
|
};
|
|
420
439
|
const getStats = () => ({loads, saves});
|
|
421
440
|
const persister = {
|
|
@@ -427,6 +446,8 @@ const createCustomPersister = (
|
|
|
427
446
|
startAutoSave,
|
|
428
447
|
stopAutoSave,
|
|
429
448
|
isAutoSaving,
|
|
449
|
+
startAutoPersisting,
|
|
450
|
+
stopAutoPersisting,
|
|
430
451
|
getStatus,
|
|
431
452
|
addStatusListener,
|
|
432
453
|
delListener,
|
|
@@ -473,7 +494,7 @@ const createCustomSynchronizer = (
|
|
|
473
494
|
};
|
|
474
495
|
const request = async (toClientId, message, body, transactionId) =>
|
|
475
496
|
promiseNew((resolve, reject) => {
|
|
476
|
-
const requestId = transactionId +
|
|
497
|
+
const requestId = transactionId + DOT + getUniqueId(4);
|
|
477
498
|
const timeout = startTimeout(() => {
|
|
478
499
|
collDel(pendingRequests, requestId);
|
|
479
500
|
reject(
|
|
@@ -591,14 +612,11 @@ const createCustomSynchronizer = (
|
|
|
591
612
|
const delPersisterListener = () => (persisterListener = void 0);
|
|
592
613
|
const startSync = async (initialContent) => {
|
|
593
614
|
syncing = 1;
|
|
594
|
-
return await (
|
|
595
|
-
await persister.startAutoLoad(initialContent)
|
|
596
|
-
).startAutoSave();
|
|
615
|
+
return await persister.startAutoPersisting(initialContent);
|
|
597
616
|
};
|
|
598
617
|
const stopSync = async () => {
|
|
599
618
|
syncing = 0;
|
|
600
|
-
await persister.
|
|
601
|
-
await persister.stopAutoSave();
|
|
619
|
+
await persister.stopAutoPersisting();
|
|
602
620
|
return persister;
|
|
603
621
|
};
|
|
604
622
|
const destroy = async () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
|
+
const DOT = '.';
|
|
2
3
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
3
4
|
str.split(separator, limit);
|
|
4
5
|
|
|
@@ -399,6 +400,25 @@ const createCustomPersister = (
|
|
|
399
400
|
return persister;
|
|
400
401
|
};
|
|
401
402
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
403
|
+
const startAutoPersisting = async (
|
|
404
|
+
initialContent,
|
|
405
|
+
startSaveFirst = false,
|
|
406
|
+
) => {
|
|
407
|
+
const [call1, call2] = startSaveFirst
|
|
408
|
+
? [startAutoSave, startAutoLoad]
|
|
409
|
+
: [startAutoLoad, startAutoSave];
|
|
410
|
+
await call1(initialContent);
|
|
411
|
+
await call2(initialContent);
|
|
412
|
+
return persister;
|
|
413
|
+
};
|
|
414
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
415
|
+
const [call1, call2] = stopSaveFirst
|
|
416
|
+
? [stopAutoSave, stopAutoLoad]
|
|
417
|
+
: [stopAutoLoad, stopAutoSave];
|
|
418
|
+
await call1();
|
|
419
|
+
await call2();
|
|
420
|
+
return persister;
|
|
421
|
+
};
|
|
402
422
|
const getStatus = () => status;
|
|
403
423
|
const addStatusListener = (listener) =>
|
|
404
424
|
addListener(listener, statusListeners);
|
|
@@ -412,10 +432,9 @@ const createCustomPersister = (
|
|
|
412
432
|
return persister;
|
|
413
433
|
};
|
|
414
434
|
const getStore = () => store;
|
|
415
|
-
const destroy =
|
|
435
|
+
const destroy = () => {
|
|
416
436
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
417
|
-
|
|
418
|
-
return await persister.stopAutoSave();
|
|
437
|
+
return stopAutoPersisting();
|
|
419
438
|
};
|
|
420
439
|
const getStats = () => ({loads, saves});
|
|
421
440
|
const persister = {
|
|
@@ -427,6 +446,8 @@ const createCustomPersister = (
|
|
|
427
446
|
startAutoSave,
|
|
428
447
|
stopAutoSave,
|
|
429
448
|
isAutoSaving,
|
|
449
|
+
startAutoPersisting,
|
|
450
|
+
stopAutoPersisting,
|
|
430
451
|
getStatus,
|
|
431
452
|
addStatusListener,
|
|
432
453
|
delListener,
|
|
@@ -463,7 +484,7 @@ const createCustomSynchronizer = (
|
|
|
463
484
|
};
|
|
464
485
|
const request = async (toClientId, message, body, transactionId) =>
|
|
465
486
|
promiseNew((resolve, reject) => {
|
|
466
|
-
const requestId = transactionId +
|
|
487
|
+
const requestId = transactionId + DOT + getUniqueId(4);
|
|
467
488
|
const timeout = startTimeout(() => {
|
|
468
489
|
collDel(pendingRequests, requestId);
|
|
469
490
|
reject(
|
|
@@ -581,14 +602,11 @@ const createCustomSynchronizer = (
|
|
|
581
602
|
const delPersisterListener = () => (persisterListener = void 0);
|
|
582
603
|
const startSync = async (initialContent) => {
|
|
583
604
|
syncing = 1;
|
|
584
|
-
return await (
|
|
585
|
-
await persister.startAutoLoad(initialContent)
|
|
586
|
-
).startAutoSave();
|
|
605
|
+
return await persister.startAutoPersisting(initialContent);
|
|
587
606
|
};
|
|
588
607
|
const stopSync = async () => {
|
|
589
608
|
syncing = 0;
|
|
590
|
-
await persister.
|
|
591
|
-
await persister.stopAutoSave();
|
|
609
|
+
await persister.stopAutoPersisting();
|
|
592
610
|
return persister;
|
|
593
611
|
};
|
|
594
612
|
const destroy = async () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
|
+
const DOT = '.';
|
|
2
3
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
3
4
|
str.split(separator, limit);
|
|
4
5
|
|
|
@@ -399,6 +400,25 @@ const createCustomPersister = (
|
|
|
399
400
|
return persister;
|
|
400
401
|
};
|
|
401
402
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
403
|
+
const startAutoPersisting = async (
|
|
404
|
+
initialContent,
|
|
405
|
+
startSaveFirst = false,
|
|
406
|
+
) => {
|
|
407
|
+
const [call1, call2] = startSaveFirst
|
|
408
|
+
? [startAutoSave, startAutoLoad]
|
|
409
|
+
: [startAutoLoad, startAutoSave];
|
|
410
|
+
await call1(initialContent);
|
|
411
|
+
await call2(initialContent);
|
|
412
|
+
return persister;
|
|
413
|
+
};
|
|
414
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
415
|
+
const [call1, call2] = stopSaveFirst
|
|
416
|
+
? [stopAutoSave, stopAutoLoad]
|
|
417
|
+
: [stopAutoLoad, stopAutoSave];
|
|
418
|
+
await call1();
|
|
419
|
+
await call2();
|
|
420
|
+
return persister;
|
|
421
|
+
};
|
|
402
422
|
const getStatus = () => status;
|
|
403
423
|
const addStatusListener = (listener) =>
|
|
404
424
|
addListener(listener, statusListeners);
|
|
@@ -412,10 +432,9 @@ const createCustomPersister = (
|
|
|
412
432
|
return persister;
|
|
413
433
|
};
|
|
414
434
|
const getStore = () => store;
|
|
415
|
-
const destroy =
|
|
435
|
+
const destroy = () => {
|
|
416
436
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
417
|
-
|
|
418
|
-
return await persister.stopAutoSave();
|
|
437
|
+
return stopAutoPersisting();
|
|
419
438
|
};
|
|
420
439
|
const getStats = () => ({loads, saves});
|
|
421
440
|
const persister = {
|
|
@@ -427,6 +446,8 @@ const createCustomPersister = (
|
|
|
427
446
|
startAutoSave,
|
|
428
447
|
stopAutoSave,
|
|
429
448
|
isAutoSaving,
|
|
449
|
+
startAutoPersisting,
|
|
450
|
+
stopAutoPersisting,
|
|
430
451
|
getStatus,
|
|
431
452
|
addStatusListener,
|
|
432
453
|
delListener,
|
|
@@ -463,7 +484,7 @@ const createCustomSynchronizer = (
|
|
|
463
484
|
};
|
|
464
485
|
const request = async (toClientId, message, body, transactionId) =>
|
|
465
486
|
promiseNew((resolve, reject) => {
|
|
466
|
-
const requestId = transactionId +
|
|
487
|
+
const requestId = transactionId + DOT + getUniqueId(4);
|
|
467
488
|
const timeout = startTimeout(() => {
|
|
468
489
|
collDel(pendingRequests, requestId);
|
|
469
490
|
reject(
|
|
@@ -581,14 +602,11 @@ const createCustomSynchronizer = (
|
|
|
581
602
|
const delPersisterListener = () => (persisterListener = void 0);
|
|
582
603
|
const startSync = async (initialContent) => {
|
|
583
604
|
syncing = 1;
|
|
584
|
-
return await (
|
|
585
|
-
await persister.startAutoLoad(initialContent)
|
|
586
|
-
).startAutoSave();
|
|
605
|
+
return await persister.startAutoPersisting(initialContent);
|
|
587
606
|
};
|
|
588
607
|
const stopSync = async () => {
|
|
589
608
|
syncing = 0;
|
|
590
|
-
await persister.
|
|
591
|
-
await persister.stopAutoSave();
|
|
609
|
+
await persister.stopAutoPersisting();
|
|
592
610
|
return persister;
|
|
593
611
|
};
|
|
594
612
|
const destroy = async () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
|
+
const DOT = '.';
|
|
2
3
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
3
4
|
str.split(separator, limit);
|
|
4
5
|
|
|
@@ -401,6 +402,25 @@ const createCustomPersister = (
|
|
|
401
402
|
return persister;
|
|
402
403
|
};
|
|
403
404
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
405
|
+
const startAutoPersisting = async (
|
|
406
|
+
initialContent,
|
|
407
|
+
startSaveFirst = false,
|
|
408
|
+
) => {
|
|
409
|
+
const [call1, call2] = startSaveFirst
|
|
410
|
+
? [startAutoSave, startAutoLoad]
|
|
411
|
+
: [startAutoLoad, startAutoSave];
|
|
412
|
+
await call1(initialContent);
|
|
413
|
+
await call2(initialContent);
|
|
414
|
+
return persister;
|
|
415
|
+
};
|
|
416
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
417
|
+
const [call1, call2] = stopSaveFirst
|
|
418
|
+
? [stopAutoSave, stopAutoLoad]
|
|
419
|
+
: [stopAutoLoad, stopAutoSave];
|
|
420
|
+
await call1();
|
|
421
|
+
await call2();
|
|
422
|
+
return persister;
|
|
423
|
+
};
|
|
404
424
|
const getStatus = () => status;
|
|
405
425
|
const addStatusListener = (listener) =>
|
|
406
426
|
addListener(listener, statusListeners);
|
|
@@ -414,10 +434,9 @@ const createCustomPersister = (
|
|
|
414
434
|
return persister;
|
|
415
435
|
};
|
|
416
436
|
const getStore = () => store;
|
|
417
|
-
const destroy =
|
|
437
|
+
const destroy = () => {
|
|
418
438
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
419
|
-
|
|
420
|
-
return await persister.stopAutoSave();
|
|
439
|
+
return stopAutoPersisting();
|
|
421
440
|
};
|
|
422
441
|
const getStats = () => ({loads, saves});
|
|
423
442
|
const persister = {
|
|
@@ -429,6 +448,8 @@ const createCustomPersister = (
|
|
|
429
448
|
startAutoSave,
|
|
430
449
|
stopAutoSave,
|
|
431
450
|
isAutoSaving,
|
|
451
|
+
startAutoPersisting,
|
|
452
|
+
stopAutoPersisting,
|
|
432
453
|
getStatus,
|
|
433
454
|
addStatusListener,
|
|
434
455
|
delListener,
|
|
@@ -465,7 +486,7 @@ const createCustomSynchronizer = (
|
|
|
465
486
|
};
|
|
466
487
|
const request = async (toClientId, message, body, transactionId) =>
|
|
467
488
|
promiseNew((resolve, reject) => {
|
|
468
|
-
const requestId = transactionId +
|
|
489
|
+
const requestId = transactionId + DOT + getUniqueId(4);
|
|
469
490
|
const timeout = startTimeout(() => {
|
|
470
491
|
collDel(pendingRequests, requestId);
|
|
471
492
|
reject(
|
|
@@ -583,14 +604,11 @@ const createCustomSynchronizer = (
|
|
|
583
604
|
const delPersisterListener = () => (persisterListener = void 0);
|
|
584
605
|
const startSync = async (initialContent) => {
|
|
585
606
|
syncing = 1;
|
|
586
|
-
return await (
|
|
587
|
-
await persister.startAutoLoad(initialContent)
|
|
588
|
-
).startAutoSave();
|
|
607
|
+
return await persister.startAutoPersisting(initialContent);
|
|
589
608
|
};
|
|
590
609
|
const stopSync = async () => {
|
|
591
610
|
syncing = 0;
|
|
592
|
-
await persister.
|
|
593
|
-
await persister.stopAutoSave();
|
|
611
|
+
await persister.stopAutoPersisting();
|
|
594
612
|
return persister;
|
|
595
613
|
};
|
|
596
614
|
const destroy = async () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const EMPTY_STRING = '';
|
|
2
|
+
const DOT = '.';
|
|
2
3
|
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
3
4
|
str.split(separator, limit);
|
|
4
5
|
|
|
@@ -401,6 +402,25 @@ const createCustomPersister = (
|
|
|
401
402
|
return persister;
|
|
402
403
|
};
|
|
403
404
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
405
|
+
const startAutoPersisting = async (
|
|
406
|
+
initialContent,
|
|
407
|
+
startSaveFirst = false,
|
|
408
|
+
) => {
|
|
409
|
+
const [call1, call2] = startSaveFirst
|
|
410
|
+
? [startAutoSave, startAutoLoad]
|
|
411
|
+
: [startAutoLoad, startAutoSave];
|
|
412
|
+
await call1(initialContent);
|
|
413
|
+
await call2(initialContent);
|
|
414
|
+
return persister;
|
|
415
|
+
};
|
|
416
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
417
|
+
const [call1, call2] = stopSaveFirst
|
|
418
|
+
? [stopAutoSave, stopAutoLoad]
|
|
419
|
+
: [stopAutoLoad, stopAutoSave];
|
|
420
|
+
await call1();
|
|
421
|
+
await call2();
|
|
422
|
+
return persister;
|
|
423
|
+
};
|
|
404
424
|
const getStatus = () => status;
|
|
405
425
|
const addStatusListener = (listener) =>
|
|
406
426
|
addListener(listener, statusListeners);
|
|
@@ -414,10 +434,9 @@ const createCustomPersister = (
|
|
|
414
434
|
return persister;
|
|
415
435
|
};
|
|
416
436
|
const getStore = () => store;
|
|
417
|
-
const destroy =
|
|
437
|
+
const destroy = () => {
|
|
418
438
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
419
|
-
|
|
420
|
-
return await persister.stopAutoSave();
|
|
439
|
+
return stopAutoPersisting();
|
|
421
440
|
};
|
|
422
441
|
const getStats = () => ({loads, saves});
|
|
423
442
|
const persister = {
|
|
@@ -429,6 +448,8 @@ const createCustomPersister = (
|
|
|
429
448
|
startAutoSave,
|
|
430
449
|
stopAutoSave,
|
|
431
450
|
isAutoSaving,
|
|
451
|
+
startAutoPersisting,
|
|
452
|
+
stopAutoPersisting,
|
|
432
453
|
getStatus,
|
|
433
454
|
addStatusListener,
|
|
434
455
|
delListener,
|
|
@@ -465,7 +486,7 @@ const createCustomSynchronizer = (
|
|
|
465
486
|
};
|
|
466
487
|
const request = async (toClientId, message, body, transactionId) =>
|
|
467
488
|
promiseNew((resolve, reject) => {
|
|
468
|
-
const requestId = transactionId +
|
|
489
|
+
const requestId = transactionId + DOT + getUniqueId(4);
|
|
469
490
|
const timeout = startTimeout(() => {
|
|
470
491
|
collDel(pendingRequests, requestId);
|
|
471
492
|
reject(
|
|
@@ -583,14 +604,11 @@ const createCustomSynchronizer = (
|
|
|
583
604
|
const delPersisterListener = () => (persisterListener = void 0);
|
|
584
605
|
const startSync = async (initialContent) => {
|
|
585
606
|
syncing = 1;
|
|
586
|
-
return await (
|
|
587
|
-
await persister.startAutoLoad(initialContent)
|
|
588
|
-
).startAutoSave();
|
|
607
|
+
return await persister.startAutoPersisting(initialContent);
|
|
589
608
|
};
|
|
590
609
|
const stopSync = async () => {
|
|
591
610
|
syncing = 0;
|
|
592
|
-
await persister.
|
|
593
|
-
await persister.stopAutoSave();
|
|
611
|
+
await persister.stopAutoPersisting();
|
|
594
612
|
return persister;
|
|
595
613
|
};
|
|
596
614
|
const destroy = async () => {
|