tinybase 6.1.0-beta.5 → 6.2.0-beta.0
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 +120 -0
- package/@types/ui-react/with-schemas/index.d.ts +179 -37
- 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
|
@@ -2,9 +2,12 @@ const getTypeOf = (thing) => typeof thing;
|
|
|
2
2
|
const TINYBASE = 'tinybase';
|
|
3
3
|
const EMPTY_STRING = '';
|
|
4
4
|
const COMMA = ',';
|
|
5
|
+
const DOT = '.';
|
|
5
6
|
const STRING = getTypeOf(EMPTY_STRING);
|
|
6
7
|
const TRUE = 'true';
|
|
7
8
|
const UNDEFINED = '\uFFFC';
|
|
9
|
+
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
10
|
+
str.split(separator, limit);
|
|
8
11
|
const strReplace = (str, searchValue, replaceValue) =>
|
|
9
12
|
str.replace(searchValue, replaceValue);
|
|
10
13
|
|
|
@@ -79,7 +82,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
79
82
|
return await executeCommand(sql, params);
|
|
80
83
|
}
|
|
81
84
|
: executeCommand;
|
|
82
|
-
const escapeId = (str) =>
|
|
85
|
+
const escapeId = (str) =>
|
|
86
|
+
arrayJoin(
|
|
87
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
88
|
+
DOT,
|
|
89
|
+
);
|
|
83
90
|
const escapeColumnNames = (...columnNames) =>
|
|
84
91
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
85
92
|
const getPlaceholders = (array, offset = [1]) =>
|
|
@@ -557,6 +564,25 @@ const createCustomPersister = (
|
|
|
557
564
|
return persister;
|
|
558
565
|
};
|
|
559
566
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
567
|
+
const startAutoPersisting = async (
|
|
568
|
+
initialContent,
|
|
569
|
+
startSaveFirst = false,
|
|
570
|
+
) => {
|
|
571
|
+
const [call1, call2] = startSaveFirst
|
|
572
|
+
? [startAutoSave, startAutoLoad]
|
|
573
|
+
: [startAutoLoad, startAutoSave];
|
|
574
|
+
await call1(initialContent);
|
|
575
|
+
await call2(initialContent);
|
|
576
|
+
return persister;
|
|
577
|
+
};
|
|
578
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
579
|
+
const [call1, call2] = stopSaveFirst
|
|
580
|
+
? [stopAutoSave, stopAutoLoad]
|
|
581
|
+
: [stopAutoLoad, stopAutoSave];
|
|
582
|
+
await call1();
|
|
583
|
+
await call2();
|
|
584
|
+
return persister;
|
|
585
|
+
};
|
|
560
586
|
const getStatus = () => status;
|
|
561
587
|
const addStatusListener = (listener) =>
|
|
562
588
|
addListener(listener, statusListeners);
|
|
@@ -570,10 +596,9 @@ const createCustomPersister = (
|
|
|
570
596
|
return persister;
|
|
571
597
|
};
|
|
572
598
|
const getStore = () => store;
|
|
573
|
-
const destroy =
|
|
599
|
+
const destroy = () => {
|
|
574
600
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
575
|
-
|
|
576
|
-
return await persister.stopAutoSave();
|
|
601
|
+
return stopAutoPersisting();
|
|
577
602
|
};
|
|
578
603
|
const getStats = () => ({loads, saves});
|
|
579
604
|
const persister = {
|
|
@@ -585,6 +610,8 @@ const createCustomPersister = (
|
|
|
585
610
|
startAutoSave,
|
|
586
611
|
stopAutoSave,
|
|
587
612
|
isAutoSaving,
|
|
613
|
+
startAutoPersisting,
|
|
614
|
+
stopAutoPersisting,
|
|
588
615
|
getStatus,
|
|
589
616
|
addStatusListener,
|
|
590
617
|
delListener,
|
|
@@ -902,8 +929,7 @@ const createJsonPersister = (
|
|
|
902
929
|
);
|
|
903
930
|
});
|
|
904
931
|
const destroy = async () => {
|
|
905
|
-
await persister.
|
|
906
|
-
await persister.stopAutoSave();
|
|
932
|
+
await persister.stopAutoPersisting();
|
|
907
933
|
extraDestroy();
|
|
908
934
|
return persister;
|
|
909
935
|
};
|
|
@@ -1037,8 +1063,7 @@ const createTabularPersister = (
|
|
|
1037
1063
|
}
|
|
1038
1064
|
});
|
|
1039
1065
|
const destroy = async () => {
|
|
1040
|
-
await persister.
|
|
1041
|
-
await persister.stopAutoSave();
|
|
1066
|
+
await persister.stopAutoPersisting();
|
|
1042
1067
|
extraDestroy();
|
|
1043
1068
|
return persister;
|
|
1044
1069
|
};
|
|
@@ -4,9 +4,12 @@ const getTypeOf = (thing) => typeof thing;
|
|
|
4
4
|
const TINYBASE = 'tinybase';
|
|
5
5
|
const EMPTY_STRING = '';
|
|
6
6
|
const COMMA = ',';
|
|
7
|
+
const DOT = '.';
|
|
7
8
|
const STRING = getTypeOf(EMPTY_STRING);
|
|
8
9
|
const TRUE = 'true';
|
|
9
10
|
const UNDEFINED = '\uFFFC';
|
|
11
|
+
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
12
|
+
str.split(separator, limit);
|
|
10
13
|
const strReplace = (str, searchValue, replaceValue) =>
|
|
11
14
|
str.replace(searchValue, replaceValue);
|
|
12
15
|
|
|
@@ -81,7 +84,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
81
84
|
return await executeCommand(sql, params);
|
|
82
85
|
}
|
|
83
86
|
: executeCommand;
|
|
84
|
-
const escapeId = (str) =>
|
|
87
|
+
const escapeId = (str) =>
|
|
88
|
+
arrayJoin(
|
|
89
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
90
|
+
DOT,
|
|
91
|
+
);
|
|
85
92
|
const escapeColumnNames = (...columnNames) =>
|
|
86
93
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
87
94
|
const getPlaceholders = (array, offset = [1]) =>
|
|
@@ -559,6 +566,25 @@ const createCustomPersister = (
|
|
|
559
566
|
return persister;
|
|
560
567
|
};
|
|
561
568
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
569
|
+
const startAutoPersisting = async (
|
|
570
|
+
initialContent,
|
|
571
|
+
startSaveFirst = false,
|
|
572
|
+
) => {
|
|
573
|
+
const [call1, call2] = startSaveFirst
|
|
574
|
+
? [startAutoSave, startAutoLoad]
|
|
575
|
+
: [startAutoLoad, startAutoSave];
|
|
576
|
+
await call1(initialContent);
|
|
577
|
+
await call2(initialContent);
|
|
578
|
+
return persister;
|
|
579
|
+
};
|
|
580
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
581
|
+
const [call1, call2] = stopSaveFirst
|
|
582
|
+
? [stopAutoSave, stopAutoLoad]
|
|
583
|
+
: [stopAutoLoad, stopAutoSave];
|
|
584
|
+
await call1();
|
|
585
|
+
await call2();
|
|
586
|
+
return persister;
|
|
587
|
+
};
|
|
562
588
|
const getStatus = () => status;
|
|
563
589
|
const addStatusListener = (listener) =>
|
|
564
590
|
addListener(listener, statusListeners);
|
|
@@ -572,10 +598,9 @@ const createCustomPersister = (
|
|
|
572
598
|
return persister;
|
|
573
599
|
};
|
|
574
600
|
const getStore = () => store;
|
|
575
|
-
const destroy =
|
|
601
|
+
const destroy = () => {
|
|
576
602
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
577
|
-
|
|
578
|
-
return await persister.stopAutoSave();
|
|
603
|
+
return stopAutoPersisting();
|
|
579
604
|
};
|
|
580
605
|
const getStats = () => ({loads, saves});
|
|
581
606
|
const persister = {
|
|
@@ -587,6 +612,8 @@ const createCustomPersister = (
|
|
|
587
612
|
startAutoSave,
|
|
588
613
|
stopAutoSave,
|
|
589
614
|
isAutoSaving,
|
|
615
|
+
startAutoPersisting,
|
|
616
|
+
stopAutoPersisting,
|
|
590
617
|
getStatus,
|
|
591
618
|
addStatusListener,
|
|
592
619
|
delListener,
|
|
@@ -904,8 +931,7 @@ const createJsonPersister = (
|
|
|
904
931
|
);
|
|
905
932
|
});
|
|
906
933
|
const destroy = async () => {
|
|
907
|
-
await persister.
|
|
908
|
-
await persister.stopAutoSave();
|
|
934
|
+
await persister.stopAutoPersisting();
|
|
909
935
|
extraDestroy();
|
|
910
936
|
return persister;
|
|
911
937
|
};
|
|
@@ -1039,8 +1065,7 @@ const createTabularPersister = (
|
|
|
1039
1065
|
}
|
|
1040
1066
|
});
|
|
1041
1067
|
const destroy = async () => {
|
|
1042
|
-
await persister.
|
|
1043
|
-
await persister.stopAutoSave();
|
|
1068
|
+
await persister.stopAutoPersisting();
|
|
1044
1069
|
extraDestroy();
|
|
1045
1070
|
return persister;
|
|
1046
1071
|
};
|
|
@@ -4,9 +4,12 @@ const getTypeOf = (thing) => typeof thing;
|
|
|
4
4
|
const TINYBASE = 'tinybase';
|
|
5
5
|
const EMPTY_STRING = '';
|
|
6
6
|
const COMMA = ',';
|
|
7
|
+
const DOT = '.';
|
|
7
8
|
const STRING = getTypeOf(EMPTY_STRING);
|
|
8
9
|
const TRUE = 'true';
|
|
9
10
|
const UNDEFINED = '\uFFFC';
|
|
11
|
+
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
12
|
+
str.split(separator, limit);
|
|
10
13
|
const strReplace = (str, searchValue, replaceValue) =>
|
|
11
14
|
str.replace(searchValue, replaceValue);
|
|
12
15
|
|
|
@@ -81,7 +84,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
81
84
|
return await executeCommand(sql, params);
|
|
82
85
|
}
|
|
83
86
|
: executeCommand;
|
|
84
|
-
const escapeId = (str) =>
|
|
87
|
+
const escapeId = (str) =>
|
|
88
|
+
arrayJoin(
|
|
89
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
90
|
+
DOT,
|
|
91
|
+
);
|
|
85
92
|
const escapeColumnNames = (...columnNames) =>
|
|
86
93
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
87
94
|
const getPlaceholders = (array, offset = [1]) =>
|
|
@@ -559,6 +566,25 @@ const createCustomPersister = (
|
|
|
559
566
|
return persister;
|
|
560
567
|
};
|
|
561
568
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
569
|
+
const startAutoPersisting = async (
|
|
570
|
+
initialContent,
|
|
571
|
+
startSaveFirst = false,
|
|
572
|
+
) => {
|
|
573
|
+
const [call1, call2] = startSaveFirst
|
|
574
|
+
? [startAutoSave, startAutoLoad]
|
|
575
|
+
: [startAutoLoad, startAutoSave];
|
|
576
|
+
await call1(initialContent);
|
|
577
|
+
await call2(initialContent);
|
|
578
|
+
return persister;
|
|
579
|
+
};
|
|
580
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
581
|
+
const [call1, call2] = stopSaveFirst
|
|
582
|
+
? [stopAutoSave, stopAutoLoad]
|
|
583
|
+
: [stopAutoLoad, stopAutoSave];
|
|
584
|
+
await call1();
|
|
585
|
+
await call2();
|
|
586
|
+
return persister;
|
|
587
|
+
};
|
|
562
588
|
const getStatus = () => status;
|
|
563
589
|
const addStatusListener = (listener) =>
|
|
564
590
|
addListener(listener, statusListeners);
|
|
@@ -572,10 +598,9 @@ const createCustomPersister = (
|
|
|
572
598
|
return persister;
|
|
573
599
|
};
|
|
574
600
|
const getStore = () => store;
|
|
575
|
-
const destroy =
|
|
601
|
+
const destroy = () => {
|
|
576
602
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
577
|
-
|
|
578
|
-
return await persister.stopAutoSave();
|
|
603
|
+
return stopAutoPersisting();
|
|
579
604
|
};
|
|
580
605
|
const getStats = () => ({loads, saves});
|
|
581
606
|
const persister = {
|
|
@@ -587,6 +612,8 @@ const createCustomPersister = (
|
|
|
587
612
|
startAutoSave,
|
|
588
613
|
stopAutoSave,
|
|
589
614
|
isAutoSaving,
|
|
615
|
+
startAutoPersisting,
|
|
616
|
+
stopAutoPersisting,
|
|
590
617
|
getStatus,
|
|
591
618
|
addStatusListener,
|
|
592
619
|
delListener,
|
|
@@ -904,8 +931,7 @@ const createJsonPersister = (
|
|
|
904
931
|
);
|
|
905
932
|
});
|
|
906
933
|
const destroy = async () => {
|
|
907
|
-
await persister.
|
|
908
|
-
await persister.stopAutoSave();
|
|
934
|
+
await persister.stopAutoPersisting();
|
|
909
935
|
extraDestroy();
|
|
910
936
|
return persister;
|
|
911
937
|
};
|
|
@@ -1039,8 +1065,7 @@ const createTabularPersister = (
|
|
|
1039
1065
|
}
|
|
1040
1066
|
});
|
|
1041
1067
|
const destroy = async () => {
|
|
1042
|
-
await persister.
|
|
1043
|
-
await persister.stopAutoSave();
|
|
1068
|
+
await persister.stopAutoPersisting();
|
|
1044
1069
|
extraDestroy();
|
|
1045
1070
|
return persister;
|
|
1046
1071
|
};
|
|
@@ -365,6 +365,25 @@ const createCustomPersister = (
|
|
|
365
365
|
return persister;
|
|
366
366
|
};
|
|
367
367
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
368
|
+
const startAutoPersisting = async (
|
|
369
|
+
initialContent,
|
|
370
|
+
startSaveFirst = false,
|
|
371
|
+
) => {
|
|
372
|
+
const [call1, call2] = startSaveFirst
|
|
373
|
+
? [startAutoSave, startAutoLoad]
|
|
374
|
+
: [startAutoLoad, startAutoSave];
|
|
375
|
+
await call1(initialContent);
|
|
376
|
+
await call2(initialContent);
|
|
377
|
+
return persister;
|
|
378
|
+
};
|
|
379
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
380
|
+
const [call1, call2] = stopSaveFirst
|
|
381
|
+
? [stopAutoSave, stopAutoLoad]
|
|
382
|
+
: [stopAutoLoad, stopAutoSave];
|
|
383
|
+
await call1();
|
|
384
|
+
await call2();
|
|
385
|
+
return persister;
|
|
386
|
+
};
|
|
368
387
|
const getStatus = () => status;
|
|
369
388
|
const addStatusListener = (listener) =>
|
|
370
389
|
addListener(listener, statusListeners);
|
|
@@ -378,10 +397,9 @@ const createCustomPersister = (
|
|
|
378
397
|
return persister;
|
|
379
398
|
};
|
|
380
399
|
const getStore = () => store;
|
|
381
|
-
const destroy =
|
|
400
|
+
const destroy = () => {
|
|
382
401
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
383
|
-
|
|
384
|
-
return await persister.stopAutoSave();
|
|
402
|
+
return stopAutoPersisting();
|
|
385
403
|
};
|
|
386
404
|
const getStats = () => ({loads, saves});
|
|
387
405
|
const persister = {
|
|
@@ -393,6 +411,8 @@ const createCustomPersister = (
|
|
|
393
411
|
startAutoSave,
|
|
394
412
|
stopAutoSave,
|
|
395
413
|
isAutoSaving,
|
|
414
|
+
startAutoPersisting,
|
|
415
|
+
stopAutoPersisting,
|
|
396
416
|
getStatus,
|
|
397
417
|
addStatusListener,
|
|
398
418
|
delListener,
|
|
@@ -365,6 +365,25 @@ const createCustomPersister = (
|
|
|
365
365
|
return persister;
|
|
366
366
|
};
|
|
367
367
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
368
|
+
const startAutoPersisting = async (
|
|
369
|
+
initialContent,
|
|
370
|
+
startSaveFirst = false,
|
|
371
|
+
) => {
|
|
372
|
+
const [call1, call2] = startSaveFirst
|
|
373
|
+
? [startAutoSave, startAutoLoad]
|
|
374
|
+
: [startAutoLoad, startAutoSave];
|
|
375
|
+
await call1(initialContent);
|
|
376
|
+
await call2(initialContent);
|
|
377
|
+
return persister;
|
|
378
|
+
};
|
|
379
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
380
|
+
const [call1, call2] = stopSaveFirst
|
|
381
|
+
? [stopAutoSave, stopAutoLoad]
|
|
382
|
+
: [stopAutoLoad, stopAutoSave];
|
|
383
|
+
await call1();
|
|
384
|
+
await call2();
|
|
385
|
+
return persister;
|
|
386
|
+
};
|
|
368
387
|
const getStatus = () => status;
|
|
369
388
|
const addStatusListener = (listener) =>
|
|
370
389
|
addListener(listener, statusListeners);
|
|
@@ -378,10 +397,9 @@ const createCustomPersister = (
|
|
|
378
397
|
return persister;
|
|
379
398
|
};
|
|
380
399
|
const getStore = () => store;
|
|
381
|
-
const destroy =
|
|
400
|
+
const destroy = () => {
|
|
382
401
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
383
|
-
|
|
384
|
-
return await persister.stopAutoSave();
|
|
402
|
+
return stopAutoPersisting();
|
|
385
403
|
};
|
|
386
404
|
const getStats = () => ({loads, saves});
|
|
387
405
|
const persister = {
|
|
@@ -393,6 +411,8 @@ const createCustomPersister = (
|
|
|
393
411
|
startAutoSave,
|
|
394
412
|
stopAutoSave,
|
|
395
413
|
isAutoSaving,
|
|
414
|
+
startAutoPersisting,
|
|
415
|
+
stopAutoPersisting,
|
|
396
416
|
getStatus,
|
|
397
417
|
addStatusListener,
|
|
398
418
|
delListener,
|
|
@@ -371,6 +371,25 @@ const createCustomPersister = (
|
|
|
371
371
|
return persister;
|
|
372
372
|
};
|
|
373
373
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
374
|
+
const startAutoPersisting = async (
|
|
375
|
+
initialContent,
|
|
376
|
+
startSaveFirst = false,
|
|
377
|
+
) => {
|
|
378
|
+
const [call1, call2] = startSaveFirst
|
|
379
|
+
? [startAutoSave, startAutoLoad]
|
|
380
|
+
: [startAutoLoad, startAutoSave];
|
|
381
|
+
await call1(initialContent);
|
|
382
|
+
await call2(initialContent);
|
|
383
|
+
return persister;
|
|
384
|
+
};
|
|
385
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
386
|
+
const [call1, call2] = stopSaveFirst
|
|
387
|
+
? [stopAutoSave, stopAutoLoad]
|
|
388
|
+
: [stopAutoLoad, stopAutoSave];
|
|
389
|
+
await call1();
|
|
390
|
+
await call2();
|
|
391
|
+
return persister;
|
|
392
|
+
};
|
|
374
393
|
const getStatus = () => status;
|
|
375
394
|
const addStatusListener = (listener) =>
|
|
376
395
|
addListener(listener, statusListeners);
|
|
@@ -384,10 +403,9 @@ const createCustomPersister = (
|
|
|
384
403
|
return persister;
|
|
385
404
|
};
|
|
386
405
|
const getStore = () => store;
|
|
387
|
-
const destroy =
|
|
406
|
+
const destroy = () => {
|
|
388
407
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
389
|
-
|
|
390
|
-
return await persister.stopAutoSave();
|
|
408
|
+
return stopAutoPersisting();
|
|
391
409
|
};
|
|
392
410
|
const getStats = () => ({loads, saves});
|
|
393
411
|
const persister = {
|
|
@@ -399,6 +417,8 @@ const createCustomPersister = (
|
|
|
399
417
|
startAutoSave,
|
|
400
418
|
stopAutoSave,
|
|
401
419
|
isAutoSaving,
|
|
420
|
+
startAutoPersisting,
|
|
421
|
+
stopAutoPersisting,
|
|
402
422
|
getStatus,
|
|
403
423
|
addStatusListener,
|
|
404
424
|
delListener,
|
|
@@ -371,6 +371,25 @@ const createCustomPersister = (
|
|
|
371
371
|
return persister;
|
|
372
372
|
};
|
|
373
373
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
374
|
+
const startAutoPersisting = async (
|
|
375
|
+
initialContent,
|
|
376
|
+
startSaveFirst = false,
|
|
377
|
+
) => {
|
|
378
|
+
const [call1, call2] = startSaveFirst
|
|
379
|
+
? [startAutoSave, startAutoLoad]
|
|
380
|
+
: [startAutoLoad, startAutoSave];
|
|
381
|
+
await call1(initialContent);
|
|
382
|
+
await call2(initialContent);
|
|
383
|
+
return persister;
|
|
384
|
+
};
|
|
385
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
386
|
+
const [call1, call2] = stopSaveFirst
|
|
387
|
+
? [stopAutoSave, stopAutoLoad]
|
|
388
|
+
: [stopAutoLoad, stopAutoSave];
|
|
389
|
+
await call1();
|
|
390
|
+
await call2();
|
|
391
|
+
return persister;
|
|
392
|
+
};
|
|
374
393
|
const getStatus = () => status;
|
|
375
394
|
const addStatusListener = (listener) =>
|
|
376
395
|
addListener(listener, statusListeners);
|
|
@@ -384,10 +403,9 @@ const createCustomPersister = (
|
|
|
384
403
|
return persister;
|
|
385
404
|
};
|
|
386
405
|
const getStore = () => store;
|
|
387
|
-
const destroy =
|
|
406
|
+
const destroy = () => {
|
|
388
407
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
389
|
-
|
|
390
|
-
return await persister.stopAutoSave();
|
|
408
|
+
return stopAutoPersisting();
|
|
391
409
|
};
|
|
392
410
|
const getStats = () => ({loads, saves});
|
|
393
411
|
const persister = {
|
|
@@ -399,6 +417,8 @@ const createCustomPersister = (
|
|
|
399
417
|
startAutoSave,
|
|
400
418
|
stopAutoSave,
|
|
401
419
|
isAutoSaving,
|
|
420
|
+
startAutoPersisting,
|
|
421
|
+
stopAutoPersisting,
|
|
402
422
|
getStatus,
|
|
403
423
|
addStatusListener,
|
|
404
424
|
delListener,
|
|
@@ -2,9 +2,12 @@ const getTypeOf = (thing) => typeof thing;
|
|
|
2
2
|
const TINYBASE = 'tinybase';
|
|
3
3
|
const EMPTY_STRING = '';
|
|
4
4
|
const COMMA = ',';
|
|
5
|
+
const DOT = '.';
|
|
5
6
|
const STRING = getTypeOf(EMPTY_STRING);
|
|
6
7
|
const TRUE = 'true';
|
|
7
8
|
const UNDEFINED = '\uFFFC';
|
|
9
|
+
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
10
|
+
str.split(separator, limit);
|
|
8
11
|
const strReplace = (str, searchValue, replaceValue) =>
|
|
9
12
|
str.replace(searchValue, replaceValue);
|
|
10
13
|
|
|
@@ -79,7 +82,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
79
82
|
return await executeCommand(sql, params);
|
|
80
83
|
}
|
|
81
84
|
: executeCommand;
|
|
82
|
-
const escapeId = (str) =>
|
|
85
|
+
const escapeId = (str) =>
|
|
86
|
+
arrayJoin(
|
|
87
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
88
|
+
DOT,
|
|
89
|
+
);
|
|
83
90
|
const escapeColumnNames = (...columnNames) =>
|
|
84
91
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
85
92
|
const getPlaceholders = (array, offset = [1]) =>
|
|
@@ -557,6 +564,25 @@ const createCustomPersister = (
|
|
|
557
564
|
return persister;
|
|
558
565
|
};
|
|
559
566
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
567
|
+
const startAutoPersisting = async (
|
|
568
|
+
initialContent,
|
|
569
|
+
startSaveFirst = false,
|
|
570
|
+
) => {
|
|
571
|
+
const [call1, call2] = startSaveFirst
|
|
572
|
+
? [startAutoSave, startAutoLoad]
|
|
573
|
+
: [startAutoLoad, startAutoSave];
|
|
574
|
+
await call1(initialContent);
|
|
575
|
+
await call2(initialContent);
|
|
576
|
+
return persister;
|
|
577
|
+
};
|
|
578
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
579
|
+
const [call1, call2] = stopSaveFirst
|
|
580
|
+
? [stopAutoSave, stopAutoLoad]
|
|
581
|
+
: [stopAutoLoad, stopAutoSave];
|
|
582
|
+
await call1();
|
|
583
|
+
await call2();
|
|
584
|
+
return persister;
|
|
585
|
+
};
|
|
560
586
|
const getStatus = () => status;
|
|
561
587
|
const addStatusListener = (listener) =>
|
|
562
588
|
addListener(listener, statusListeners);
|
|
@@ -570,10 +596,9 @@ const createCustomPersister = (
|
|
|
570
596
|
return persister;
|
|
571
597
|
};
|
|
572
598
|
const getStore = () => store;
|
|
573
|
-
const destroy =
|
|
599
|
+
const destroy = () => {
|
|
574
600
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
575
|
-
|
|
576
|
-
return await persister.stopAutoSave();
|
|
601
|
+
return stopAutoPersisting();
|
|
577
602
|
};
|
|
578
603
|
const getStats = () => ({loads, saves});
|
|
579
604
|
const persister = {
|
|
@@ -585,6 +610,8 @@ const createCustomPersister = (
|
|
|
585
610
|
startAutoSave,
|
|
586
611
|
stopAutoSave,
|
|
587
612
|
isAutoSaving,
|
|
613
|
+
startAutoPersisting,
|
|
614
|
+
stopAutoPersisting,
|
|
588
615
|
getStatus,
|
|
589
616
|
addStatusListener,
|
|
590
617
|
delListener,
|
|
@@ -902,8 +929,7 @@ const createJsonPersister = (
|
|
|
902
929
|
);
|
|
903
930
|
});
|
|
904
931
|
const destroy = async () => {
|
|
905
|
-
await persister.
|
|
906
|
-
await persister.stopAutoSave();
|
|
932
|
+
await persister.stopAutoPersisting();
|
|
907
933
|
extraDestroy();
|
|
908
934
|
return persister;
|
|
909
935
|
};
|
|
@@ -1037,8 +1063,7 @@ const createTabularPersister = (
|
|
|
1037
1063
|
}
|
|
1038
1064
|
});
|
|
1039
1065
|
const destroy = async () => {
|
|
1040
|
-
await persister.
|
|
1041
|
-
await persister.stopAutoSave();
|
|
1066
|
+
await persister.stopAutoPersisting();
|
|
1042
1067
|
extraDestroy();
|
|
1043
1068
|
return persister;
|
|
1044
1069
|
};
|
|
@@ -2,9 +2,12 @@ const getTypeOf = (thing) => typeof thing;
|
|
|
2
2
|
const TINYBASE = 'tinybase';
|
|
3
3
|
const EMPTY_STRING = '';
|
|
4
4
|
const COMMA = ',';
|
|
5
|
+
const DOT = '.';
|
|
5
6
|
const STRING = getTypeOf(EMPTY_STRING);
|
|
6
7
|
const TRUE = 'true';
|
|
7
8
|
const UNDEFINED = '\uFFFC';
|
|
9
|
+
const strSplit = (str, separator = EMPTY_STRING, limit) =>
|
|
10
|
+
str.split(separator, limit);
|
|
8
11
|
const strReplace = (str, searchValue, replaceValue) =>
|
|
9
12
|
str.replace(searchValue, replaceValue);
|
|
10
13
|
|
|
@@ -79,7 +82,11 @@ const getWrappedCommand = (executeCommand, onSqlCommand) =>
|
|
|
79
82
|
return await executeCommand(sql, params);
|
|
80
83
|
}
|
|
81
84
|
: executeCommand;
|
|
82
|
-
const escapeId = (str) =>
|
|
85
|
+
const escapeId = (str) =>
|
|
86
|
+
arrayJoin(
|
|
87
|
+
arrayMap(strSplit(str, DOT), (part) => `"${strReplace(part, /"/g, '""')}"`),
|
|
88
|
+
DOT,
|
|
89
|
+
);
|
|
83
90
|
const escapeColumnNames = (...columnNames) =>
|
|
84
91
|
arrayJoin(arrayMap(columnNames, escapeId), COMMA);
|
|
85
92
|
const getPlaceholders = (array, offset = [1]) =>
|
|
@@ -557,6 +564,25 @@ const createCustomPersister = (
|
|
|
557
564
|
return persister;
|
|
558
565
|
};
|
|
559
566
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
567
|
+
const startAutoPersisting = async (
|
|
568
|
+
initialContent,
|
|
569
|
+
startSaveFirst = false,
|
|
570
|
+
) => {
|
|
571
|
+
const [call1, call2] = startSaveFirst
|
|
572
|
+
? [startAutoSave, startAutoLoad]
|
|
573
|
+
: [startAutoLoad, startAutoSave];
|
|
574
|
+
await call1(initialContent);
|
|
575
|
+
await call2(initialContent);
|
|
576
|
+
return persister;
|
|
577
|
+
};
|
|
578
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
579
|
+
const [call1, call2] = stopSaveFirst
|
|
580
|
+
? [stopAutoSave, stopAutoLoad]
|
|
581
|
+
: [stopAutoLoad, stopAutoSave];
|
|
582
|
+
await call1();
|
|
583
|
+
await call2();
|
|
584
|
+
return persister;
|
|
585
|
+
};
|
|
560
586
|
const getStatus = () => status;
|
|
561
587
|
const addStatusListener = (listener) =>
|
|
562
588
|
addListener(listener, statusListeners);
|
|
@@ -570,10 +596,9 @@ const createCustomPersister = (
|
|
|
570
596
|
return persister;
|
|
571
597
|
};
|
|
572
598
|
const getStore = () => store;
|
|
573
|
-
const destroy =
|
|
599
|
+
const destroy = () => {
|
|
574
600
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
575
|
-
|
|
576
|
-
return await persister.stopAutoSave();
|
|
601
|
+
return stopAutoPersisting();
|
|
577
602
|
};
|
|
578
603
|
const getStats = () => ({loads, saves});
|
|
579
604
|
const persister = {
|
|
@@ -585,6 +610,8 @@ const createCustomPersister = (
|
|
|
585
610
|
startAutoSave,
|
|
586
611
|
stopAutoSave,
|
|
587
612
|
isAutoSaving,
|
|
613
|
+
startAutoPersisting,
|
|
614
|
+
stopAutoPersisting,
|
|
588
615
|
getStatus,
|
|
589
616
|
addStatusListener,
|
|
590
617
|
delListener,
|
|
@@ -902,8 +929,7 @@ const createJsonPersister = (
|
|
|
902
929
|
);
|
|
903
930
|
});
|
|
904
931
|
const destroy = async () => {
|
|
905
|
-
await persister.
|
|
906
|
-
await persister.stopAutoSave();
|
|
932
|
+
await persister.stopAutoPersisting();
|
|
907
933
|
extraDestroy();
|
|
908
934
|
return persister;
|
|
909
935
|
};
|
|
@@ -1037,8 +1063,7 @@ const createTabularPersister = (
|
|
|
1037
1063
|
}
|
|
1038
1064
|
});
|
|
1039
1065
|
const destroy = async () => {
|
|
1040
|
-
await persister.
|
|
1041
|
-
await persister.stopAutoSave();
|
|
1066
|
+
await persister.stopAutoPersisting();
|
|
1042
1067
|
extraDestroy();
|
|
1043
1068
|
return persister;
|
|
1044
1069
|
};
|
|
@@ -367,6 +367,25 @@ const createCustomPersister = (
|
|
|
367
367
|
return persister;
|
|
368
368
|
};
|
|
369
369
|
const isAutoSaving = () => !isUndefined(autoSaveListenerId);
|
|
370
|
+
const startAutoPersisting = async (
|
|
371
|
+
initialContent,
|
|
372
|
+
startSaveFirst = false,
|
|
373
|
+
) => {
|
|
374
|
+
const [call1, call2] = startSaveFirst
|
|
375
|
+
? [startAutoSave, startAutoLoad]
|
|
376
|
+
: [startAutoLoad, startAutoSave];
|
|
377
|
+
await call1(initialContent);
|
|
378
|
+
await call2(initialContent);
|
|
379
|
+
return persister;
|
|
380
|
+
};
|
|
381
|
+
const stopAutoPersisting = async (stopSaveFirst = false) => {
|
|
382
|
+
const [call1, call2] = stopSaveFirst
|
|
383
|
+
? [stopAutoSave, stopAutoLoad]
|
|
384
|
+
: [stopAutoLoad, stopAutoSave];
|
|
385
|
+
await call1();
|
|
386
|
+
await call2();
|
|
387
|
+
return persister;
|
|
388
|
+
};
|
|
370
389
|
const getStatus = () => status;
|
|
371
390
|
const addStatusListener = (listener) =>
|
|
372
391
|
addListener(listener, statusListeners);
|
|
@@ -380,10 +399,9 @@ const createCustomPersister = (
|
|
|
380
399
|
return persister;
|
|
381
400
|
};
|
|
382
401
|
const getStore = () => store;
|
|
383
|
-
const destroy =
|
|
402
|
+
const destroy = () => {
|
|
384
403
|
arrayClear(mapGet(scheduleActions, scheduleId));
|
|
385
|
-
|
|
386
|
-
return await persister.stopAutoSave();
|
|
404
|
+
return stopAutoPersisting();
|
|
387
405
|
};
|
|
388
406
|
const getStats = () => ({loads, saves});
|
|
389
407
|
const persister = {
|
|
@@ -395,6 +413,8 @@ const createCustomPersister = (
|
|
|
395
413
|
startAutoSave,
|
|
396
414
|
stopAutoSave,
|
|
397
415
|
isAutoSaving,
|
|
416
|
+
startAutoPersisting,
|
|
417
|
+
stopAutoPersisting,
|
|
398
418
|
getStatus,
|
|
399
419
|
addStatusListener,
|
|
400
420
|
delListener,
|