tinybase 8.6.0-beta.0 → 9.0.0-beta.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/_internal/queries/with-schemas/index.d.ts +1 -2
- package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
- package/@types/mergeable-store/index.d.ts +4 -4
- package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
- package/@types/persisters/index.d.ts +34 -13
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
- package/@types/persisters/with-schemas/index.d.ts +72 -30
- package/@types/queries/index.d.ts +5 -7
- package/@types/queries/with-schemas/index.d.ts +9 -15
- package/@types/store/index.d.ts +1 -2
- package/@types/store/with-schemas/index.d.ts +19 -29
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
- package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
- package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
- package/@types/ui-react/with-schemas/index.d.ts +3 -6
- package/@types/ui-react-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +3 -4
- package/@types/ui-solid/with-schemas/index.d.ts +4 -8
- package/@types/ui-solid-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +6 -12
- package/index.js +67 -25
- package/indexes/index.js +6 -8
- package/indexes/with-schemas/index.js +6 -8
- package/mergeable-store/index.js +46 -6
- package/mergeable-store/with-schemas/index.js +46 -6
- package/metrics/index.js +6 -8
- package/metrics/with-schemas/index.js +6 -8
- 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/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/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-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/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-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/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/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/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-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/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-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/omni/index.js +364 -155
- package/omni/with-schemas/index.js +364 -155
- package/package.json +8 -8
- package/persisters/index.js +133 -40
- package/persisters/persister-automerge/index.js +4 -3
- package/persisters/persister-automerge/with-schemas/index.js +4 -3
- package/persisters/persister-browser/index.js +4 -3
- package/persisters/persister-browser/with-schemas/index.js +4 -3
- package/persisters/persister-cr-sqlite-wasm/index.js +133 -40
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-durable-object-sql-storage/index.js +275 -113
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +275 -113
- package/persisters/persister-durable-object-storage/index.js +4 -3
- package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
- package/persisters/persister-electric-sql/index.js +133 -40
- package/persisters/persister-electric-sql/with-schemas/index.js +133 -40
- package/persisters/persister-expo-sqlite/index.js +133 -40
- package/persisters/persister-expo-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-file/index.js +4 -3
- package/persisters/persister-file/with-schemas/index.js +4 -3
- package/persisters/persister-indexed-db/index.js +4 -3
- package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
- package/persisters/persister-libsql/index.js +133 -40
- package/persisters/persister-libsql/with-schemas/index.js +133 -40
- package/persisters/persister-partykit-client/index.js +4 -3
- package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
- package/persisters/persister-pglite/index.js +134 -40
- package/persisters/persister-pglite/with-schemas/index.js +134 -40
- package/persisters/persister-postgres/index.js +134 -40
- package/persisters/persister-postgres/with-schemas/index.js +134 -40
- package/persisters/persister-powersync/index.js +186 -120
- package/persisters/persister-powersync/with-schemas/index.js +186 -120
- package/persisters/persister-react-native-mmkv/index.js +4 -3
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
- package/persisters/persister-react-native-sqlite/index.js +133 -40
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-remote/index.js +4 -3
- package/persisters/persister-remote/with-schemas/index.js +4 -3
- package/persisters/persister-sqlite-bun/index.js +133 -40
- package/persisters/persister-sqlite-bun/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite-wasm/index.js +133 -40
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite3/index.js +133 -40
- package/persisters/persister-sqlite3/with-schemas/index.js +133 -40
- package/persisters/persister-yjs/index.js +4 -3
- package/persisters/persister-yjs/with-schemas/index.js +4 -3
- package/persisters/with-schemas/index.js +133 -40
- package/queries/index.js +21 -19
- package/queries/with-schemas/index.js +21 -19
- package/readme.md +14 -14
- package/relationships/index.js +6 -8
- package/relationships/with-schemas/index.js +6 -8
- package/releases.md +72 -57
- package/store/index.js +33 -2
- package/store/with-schemas/index.js +33 -2
- package/synchronizers/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-local/index.js +4 -3
- package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-ws-client/index.js +120 -45
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +120 -45
- package/synchronizers/synchronizer-ws-server/index.js +116 -36
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +116 -36
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +125 -41
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +125 -41
- package/synchronizers/with-schemas/index.js +4 -3
- package/ui-react-inspector/index.js +36 -5
- package/ui-react-inspector/with-schemas/index.js +36 -5
- package/ui-solid-inspector/index.js +36 -5
- package/ui-solid-inspector/with-schemas/index.js +36 -5
- package/ui-svelte/index.js +1 -1
- package/ui-svelte/with-schemas/index.js +1 -1
- package/ui-svelte-dom/index.js +2 -2
- package/ui-svelte-dom/with-schemas/index.js +2 -2
- package/ui-svelte-inspector/index.js +38 -7
- package/ui-svelte-inspector/with-schemas/index.js +38 -7
- package/with-schemas/index.js +67 -25
|
@@ -22,6 +22,7 @@ const GLOBAL = globalThis;
|
|
|
22
22
|
const isNullish = (thing) => thing == null;
|
|
23
23
|
const isUndefined = (thing) => thing === void 0;
|
|
24
24
|
const isNull = (thing) => thing === null;
|
|
25
|
+
const isTrue = (thing) => thing === true;
|
|
25
26
|
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
27
|
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
27
28
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
@@ -42,6 +43,7 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
|
|
46
|
+
const arrayHas = (array, value) => array.includes(value);
|
|
45
47
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
46
48
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
47
49
|
const arrayMap = (array, cb) => array.map(cb);
|
|
@@ -227,6 +229,8 @@ const DEFAULT_TABULAR_VALUES_CONFIG = {
|
|
|
227
229
|
save: 0,
|
|
228
230
|
[TABLE_NAME]: TINYBASE + '_values',
|
|
229
231
|
};
|
|
232
|
+
const getValuesIn = (config) => (isArray(config) ? config : void 0);
|
|
233
|
+
const hasValues = (config) => isTrue(config) || isArray(config);
|
|
230
234
|
const getDefaultedConfig = (configOrStoreTableName) =>
|
|
231
235
|
objMerge(
|
|
232
236
|
DEFAULT_CONFIG,
|
|
@@ -277,11 +281,15 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
277
281
|
];
|
|
278
282
|
}
|
|
279
283
|
const {tables: {load = {}, save = {}} = {}, values = {}} = config;
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
284
|
+
const valuesConfigObj = objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values);
|
|
285
|
+
const {load: valuesLoad, save: valuesSave} = valuesConfigObj;
|
|
286
|
+
const valuesConfig = [
|
|
287
|
+
hasValues(valuesLoad),
|
|
288
|
+
hasValues(valuesSave),
|
|
289
|
+
valuesConfigObj[TABLE_NAME],
|
|
290
|
+
getValuesIn(valuesLoad),
|
|
291
|
+
getValuesIn(valuesSave),
|
|
292
|
+
];
|
|
285
293
|
const valuesTable = valuesConfig[2];
|
|
286
294
|
const managedTableNames = setNew(valuesTable);
|
|
287
295
|
const excludedTableNames = setNew(valuesTable);
|
|
@@ -509,13 +517,14 @@ const createCustomPersister = (
|
|
|
509
517
|
const content = await getPersisted();
|
|
510
518
|
if (isArray(content)) {
|
|
511
519
|
setContentOrChanges(content);
|
|
512
|
-
} else if (initialContent) {
|
|
520
|
+
} else if (isUndefined(content) && initialContent) {
|
|
513
521
|
setDefaultContent(initialContent);
|
|
514
|
-
} else {
|
|
522
|
+
} else if (!isUndefined(content)) {
|
|
515
523
|
errorNew(`Content is not an array: ${content}`);
|
|
516
524
|
}
|
|
517
525
|
},
|
|
518
|
-
() => {
|
|
526
|
+
(error) => {
|
|
527
|
+
onIgnoredError?.(error);
|
|
519
528
|
if (initialContent) {
|
|
520
529
|
setDefaultContent(initialContent);
|
|
521
530
|
}
|
|
@@ -674,8 +683,18 @@ const getCommandFunctions = (
|
|
|
674
683
|
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
675
684
|
);
|
|
676
685
|
};
|
|
677
|
-
const loadTable = async (
|
|
678
|
-
|
|
686
|
+
const loadTable = async (
|
|
687
|
+
tableName,
|
|
688
|
+
rowIdColumnName,
|
|
689
|
+
condition,
|
|
690
|
+
contentSubIds,
|
|
691
|
+
) => {
|
|
692
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
693
|
+
? void 0
|
|
694
|
+
: setNew(contentSubIds);
|
|
695
|
+
const includeContentSubId = (contentSubId) =>
|
|
696
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
697
|
+
return canSelect(tableName, rowIdColumnName)
|
|
679
698
|
? objNew(
|
|
680
699
|
arrayFilter(
|
|
681
700
|
arrayMap(
|
|
@@ -684,17 +703,35 @@ const getCommandFunctions = (
|
|
|
684
703
|
escapeId(tableName) +
|
|
685
704
|
getWhereCondition(tableName, condition),
|
|
686
705
|
),
|
|
687
|
-
(row) =>
|
|
688
|
-
row[rowIdColumnName]
|
|
689
|
-
decode
|
|
706
|
+
(row) => {
|
|
707
|
+
const rowId = row[rowIdColumnName];
|
|
708
|
+
const rowContent = decode
|
|
690
709
|
? objMap(objDel(row, rowIdColumnName), decode)
|
|
691
|
-
: objDel(row, rowIdColumnName)
|
|
692
|
-
|
|
710
|
+
: objDel(row, rowIdColumnName);
|
|
711
|
+
return [
|
|
712
|
+
rowId,
|
|
713
|
+
isUndefined(contentSubIdSet)
|
|
714
|
+
? rowContent
|
|
715
|
+
: objNew(
|
|
716
|
+
arrayFilter(
|
|
717
|
+
objToArray(
|
|
718
|
+
rowContent,
|
|
719
|
+
(cellOrValue, contentSubId) => [
|
|
720
|
+
contentSubId,
|
|
721
|
+
cellOrValue,
|
|
722
|
+
],
|
|
723
|
+
),
|
|
724
|
+
([contentSubId]) => includeContentSubId(contentSubId),
|
|
725
|
+
),
|
|
726
|
+
),
|
|
727
|
+
];
|
|
728
|
+
},
|
|
693
729
|
),
|
|
694
730
|
(entry) => !isUndefined(entry[0]) && !objIsEmpty(entry[1]),
|
|
695
731
|
),
|
|
696
732
|
)
|
|
697
733
|
: {};
|
|
734
|
+
};
|
|
698
735
|
const saveTable = async (
|
|
699
736
|
tableName,
|
|
700
737
|
rowIdColumnName,
|
|
@@ -703,15 +740,23 @@ const getCommandFunctions = (
|
|
|
703
740
|
deleteEmptyTable,
|
|
704
741
|
partial = false,
|
|
705
742
|
condition = TRUE,
|
|
743
|
+
contentSubIds,
|
|
706
744
|
) => {
|
|
745
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
746
|
+
? void 0
|
|
747
|
+
: setNew(contentSubIds);
|
|
748
|
+
const includeContentSubId = (contentSubId) =>
|
|
749
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
707
750
|
const settingColumnNameSet = setNew();
|
|
708
751
|
objMap(content ?? {}, (contentRow) =>
|
|
709
|
-
arrayMap(
|
|
710
|
-
|
|
752
|
+
arrayMap(
|
|
753
|
+
arrayFilter(objIds(contentRow ?? {}), includeContentSubId),
|
|
754
|
+
(cellOrValueId) => setAdd(settingColumnNameSet, cellOrValueId),
|
|
711
755
|
),
|
|
712
756
|
);
|
|
713
757
|
const settingColumnNames = collValues(settingColumnNameSet);
|
|
714
758
|
if (
|
|
759
|
+
isUndefined(contentSubIdSet) &&
|
|
715
760
|
!partial &&
|
|
716
761
|
deleteEmptyTable &&
|
|
717
762
|
condition == TRUE &&
|
|
@@ -723,7 +768,13 @@ const getCommandFunctions = (
|
|
|
723
768
|
return;
|
|
724
769
|
}
|
|
725
770
|
const currentColumnNames = mapGet(schemaMap, tableName);
|
|
726
|
-
const unaccountedColumnNames = setNew(
|
|
771
|
+
const unaccountedColumnNames = setNew(
|
|
772
|
+
arrayFilter(
|
|
773
|
+
collValues(currentColumnNames),
|
|
774
|
+
(columnName) =>
|
|
775
|
+
columnName == rowIdColumnName || includeContentSubId(columnName),
|
|
776
|
+
),
|
|
777
|
+
);
|
|
727
778
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
728
779
|
if (!collHas(schemaMap, tableName)) {
|
|
729
780
|
await databaseExecuteCommand(
|
|
@@ -789,11 +840,13 @@ const getCommandFunctions = (
|
|
|
789
840
|
]);
|
|
790
841
|
if (partial) {
|
|
791
842
|
if (isUndefined(content)) {
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
843
|
+
if (isUndefined(contentSubIdSet)) {
|
|
844
|
+
await databaseExecuteCommand(
|
|
845
|
+
DELETE_FROM +
|
|
846
|
+
escapeId(tableName) +
|
|
847
|
+
getWhereCondition(tableName, condition),
|
|
848
|
+
);
|
|
849
|
+
}
|
|
797
850
|
} else {
|
|
798
851
|
await promiseAll(
|
|
799
852
|
objToArray(content, async (row, rowId) => {
|
|
@@ -806,18 +859,24 @@ const getCommandFunctions = (
|
|
|
806
859
|
[rowId],
|
|
807
860
|
);
|
|
808
861
|
} else if (!arrayIsEmpty(settingColumnNames)) {
|
|
809
|
-
|
|
810
|
-
databaseExecuteCommand,
|
|
811
|
-
tableName,
|
|
812
|
-
rowIdColumnName,
|
|
862
|
+
const changingColumnNames = arrayFilter(
|
|
813
863
|
objIds(row),
|
|
814
|
-
|
|
815
|
-
[rowId]: encode
|
|
816
|
-
? arrayMap(objValues(row), encode)
|
|
817
|
-
: objValues(row),
|
|
818
|
-
},
|
|
819
|
-
currentColumnNames,
|
|
864
|
+
includeContentSubId,
|
|
820
865
|
);
|
|
866
|
+
if (!arrayIsEmpty(changingColumnNames)) {
|
|
867
|
+
await upsert(
|
|
868
|
+
databaseExecuteCommand,
|
|
869
|
+
tableName,
|
|
870
|
+
rowIdColumnName,
|
|
871
|
+
changingColumnNames,
|
|
872
|
+
{
|
|
873
|
+
[rowId]: arrayMap(changingColumnNames, (cellId) =>
|
|
874
|
+
encode ? encode(row[cellId]) : row[cellId],
|
|
875
|
+
),
|
|
876
|
+
},
|
|
877
|
+
currentColumnNames,
|
|
878
|
+
);
|
|
879
|
+
}
|
|
821
880
|
}
|
|
822
881
|
}),
|
|
823
882
|
);
|
|
@@ -826,7 +885,9 @@ const getCommandFunctions = (
|
|
|
826
885
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
827
886
|
const changingColumnNames = arrayFilter(
|
|
828
887
|
collValues(mapGet(schemaMap, tableName)),
|
|
829
|
-
(changingColumnName) =>
|
|
888
|
+
(changingColumnName) =>
|
|
889
|
+
changingColumnName != rowIdColumnName &&
|
|
890
|
+
includeContentSubId(changingColumnName),
|
|
830
891
|
);
|
|
831
892
|
const rows = {};
|
|
832
893
|
const deleteRowIds = [];
|
|
@@ -842,6 +903,7 @@ const getCommandFunctions = (
|
|
|
842
903
|
rowIdColumnName,
|
|
843
904
|
changingColumnNames,
|
|
844
905
|
rows,
|
|
906
|
+
currentColumnNames,
|
|
845
907
|
);
|
|
846
908
|
await databaseExecuteCommand(
|
|
847
909
|
DELETE_FROM +
|
|
@@ -850,7 +912,10 @@ const getCommandFunctions = (
|
|
|
850
912
|
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
851
913
|
deleteRowIds,
|
|
852
914
|
);
|
|
853
|
-
} else if (
|
|
915
|
+
} else if (
|
|
916
|
+
isUndefined(contentSubIdSet) &&
|
|
917
|
+
collHas(schemaMap, tableName)
|
|
918
|
+
) {
|
|
854
919
|
await databaseExecuteCommand(
|
|
855
920
|
DELETE_FROM +
|
|
856
921
|
escapeId(tableName) +
|
|
@@ -989,7 +1054,13 @@ const createTabularPersister = (
|
|
|
989
1054
|
[
|
|
990
1055
|
tablesLoadConfig,
|
|
991
1056
|
tablesSaveConfig,
|
|
992
|
-
[
|
|
1057
|
+
[
|
|
1058
|
+
valuesLoad,
|
|
1059
|
+
valuesSave,
|
|
1060
|
+
valuesTableName,
|
|
1061
|
+
valuesLoadValueIds,
|
|
1062
|
+
valuesSaveValueIds,
|
|
1063
|
+
],
|
|
993
1064
|
],
|
|
994
1065
|
managedTableNames,
|
|
995
1066
|
querySchema,
|
|
@@ -1039,15 +1110,33 @@ const createTabularPersister = (
|
|
|
1039
1110
|
},
|
|
1040
1111
|
),
|
|
1041
1112
|
);
|
|
1113
|
+
const getValuesSubset = (values, valueIds, partial) =>
|
|
1114
|
+
objNew(
|
|
1115
|
+
partial == true
|
|
1116
|
+
? arrayFilter(
|
|
1117
|
+
objToArray(values, (value, valueId) => [valueId, value]),
|
|
1118
|
+
([valueId]) => arrayHas(valueIds, valueId),
|
|
1119
|
+
)
|
|
1120
|
+
: arrayFilter(
|
|
1121
|
+
arrayMap(valueIds, (valueId) => [valueId, values[valueId]]),
|
|
1122
|
+
([, value]) => !isUndefined(value),
|
|
1123
|
+
),
|
|
1124
|
+
);
|
|
1042
1125
|
const saveValues = async (values, partial) =>
|
|
1043
1126
|
valuesSave
|
|
1044
1127
|
? await saveTable(
|
|
1045
1128
|
valuesTableName,
|
|
1046
1129
|
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1047
|
-
{
|
|
1130
|
+
{
|
|
1131
|
+
[SINGLE_ROW_ID]: isUndefined(valuesSaveValueIds)
|
|
1132
|
+
? values
|
|
1133
|
+
: getValuesSubset(values, valuesSaveValueIds, partial),
|
|
1134
|
+
},
|
|
1048
1135
|
true,
|
|
1049
1136
|
true,
|
|
1050
1137
|
partial,
|
|
1138
|
+
void 0,
|
|
1139
|
+
valuesSaveValueIds,
|
|
1051
1140
|
)
|
|
1052
1141
|
: null;
|
|
1053
1142
|
const loadTables = async () =>
|
|
@@ -1067,9 +1156,14 @@ const createTabularPersister = (
|
|
|
1067
1156
|
);
|
|
1068
1157
|
const loadValues = async () =>
|
|
1069
1158
|
valuesLoad
|
|
1070
|
-
? (
|
|
1071
|
-
|
|
1072
|
-
|
|
1159
|
+
? (
|
|
1160
|
+
await loadTable(
|
|
1161
|
+
valuesTableName,
|
|
1162
|
+
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1163
|
+
void 0,
|
|
1164
|
+
valuesLoadValueIds,
|
|
1165
|
+
)
|
|
1166
|
+
)[SINGLE_ROW_ID]
|
|
1073
1167
|
: {};
|
|
1074
1168
|
const getPersisted = () =>
|
|
1075
1169
|
transaction(async () => {
|
|
@@ -22,6 +22,7 @@ const GLOBAL = globalThis;
|
|
|
22
22
|
const isNullish = (thing) => thing == null;
|
|
23
23
|
const isUndefined = (thing) => thing === void 0;
|
|
24
24
|
const isNull = (thing) => thing === null;
|
|
25
|
+
const isTrue = (thing) => thing === true;
|
|
25
26
|
const ifNotNullish = getIfNotFunction(isNullish);
|
|
26
27
|
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
27
28
|
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
@@ -42,6 +43,7 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
|
|
46
|
+
const arrayHas = (array, value) => array.includes(value);
|
|
45
47
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
46
48
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
47
49
|
const arrayMap = (array, cb) => array.map(cb);
|
|
@@ -227,6 +229,8 @@ const DEFAULT_TABULAR_VALUES_CONFIG = {
|
|
|
227
229
|
save: 0,
|
|
228
230
|
[TABLE_NAME]: TINYBASE + '_values',
|
|
229
231
|
};
|
|
232
|
+
const getValuesIn = (config) => (isArray(config) ? config : void 0);
|
|
233
|
+
const hasValues = (config) => isTrue(config) || isArray(config);
|
|
230
234
|
const getDefaultedConfig = (configOrStoreTableName) =>
|
|
231
235
|
objMerge(
|
|
232
236
|
DEFAULT_CONFIG,
|
|
@@ -277,11 +281,15 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
277
281
|
];
|
|
278
282
|
}
|
|
279
283
|
const {tables: {load = {}, save = {}} = {}, values = {}} = config;
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
284
|
+
const valuesConfigObj = objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values);
|
|
285
|
+
const {load: valuesLoad, save: valuesSave} = valuesConfigObj;
|
|
286
|
+
const valuesConfig = [
|
|
287
|
+
hasValues(valuesLoad),
|
|
288
|
+
hasValues(valuesSave),
|
|
289
|
+
valuesConfigObj[TABLE_NAME],
|
|
290
|
+
getValuesIn(valuesLoad),
|
|
291
|
+
getValuesIn(valuesSave),
|
|
292
|
+
];
|
|
285
293
|
const valuesTable = valuesConfig[2];
|
|
286
294
|
const managedTableNames = setNew(valuesTable);
|
|
287
295
|
const excludedTableNames = setNew(valuesTable);
|
|
@@ -509,13 +517,14 @@ const createCustomPersister = (
|
|
|
509
517
|
const content = await getPersisted();
|
|
510
518
|
if (isArray(content)) {
|
|
511
519
|
setContentOrChanges(content);
|
|
512
|
-
} else if (initialContent) {
|
|
520
|
+
} else if (isUndefined(content) && initialContent) {
|
|
513
521
|
setDefaultContent(initialContent);
|
|
514
|
-
} else {
|
|
522
|
+
} else if (!isUndefined(content)) {
|
|
515
523
|
errorNew(`Content is not an array: ${content}`);
|
|
516
524
|
}
|
|
517
525
|
},
|
|
518
|
-
() => {
|
|
526
|
+
(error) => {
|
|
527
|
+
onIgnoredError?.(error);
|
|
519
528
|
if (initialContent) {
|
|
520
529
|
setDefaultContent(initialContent);
|
|
521
530
|
}
|
|
@@ -674,8 +683,18 @@ const getCommandFunctions = (
|
|
|
674
683
|
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
675
684
|
);
|
|
676
685
|
};
|
|
677
|
-
const loadTable = async (
|
|
678
|
-
|
|
686
|
+
const loadTable = async (
|
|
687
|
+
tableName,
|
|
688
|
+
rowIdColumnName,
|
|
689
|
+
condition,
|
|
690
|
+
contentSubIds,
|
|
691
|
+
) => {
|
|
692
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
693
|
+
? void 0
|
|
694
|
+
: setNew(contentSubIds);
|
|
695
|
+
const includeContentSubId = (contentSubId) =>
|
|
696
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
697
|
+
return canSelect(tableName, rowIdColumnName)
|
|
679
698
|
? objNew(
|
|
680
699
|
arrayFilter(
|
|
681
700
|
arrayMap(
|
|
@@ -684,17 +703,35 @@ const getCommandFunctions = (
|
|
|
684
703
|
escapeId(tableName) +
|
|
685
704
|
getWhereCondition(tableName, condition),
|
|
686
705
|
),
|
|
687
|
-
(row) =>
|
|
688
|
-
row[rowIdColumnName]
|
|
689
|
-
decode
|
|
706
|
+
(row) => {
|
|
707
|
+
const rowId = row[rowIdColumnName];
|
|
708
|
+
const rowContent = decode
|
|
690
709
|
? objMap(objDel(row, rowIdColumnName), decode)
|
|
691
|
-
: objDel(row, rowIdColumnName)
|
|
692
|
-
|
|
710
|
+
: objDel(row, rowIdColumnName);
|
|
711
|
+
return [
|
|
712
|
+
rowId,
|
|
713
|
+
isUndefined(contentSubIdSet)
|
|
714
|
+
? rowContent
|
|
715
|
+
: objNew(
|
|
716
|
+
arrayFilter(
|
|
717
|
+
objToArray(
|
|
718
|
+
rowContent,
|
|
719
|
+
(cellOrValue, contentSubId) => [
|
|
720
|
+
contentSubId,
|
|
721
|
+
cellOrValue,
|
|
722
|
+
],
|
|
723
|
+
),
|
|
724
|
+
([contentSubId]) => includeContentSubId(contentSubId),
|
|
725
|
+
),
|
|
726
|
+
),
|
|
727
|
+
];
|
|
728
|
+
},
|
|
693
729
|
),
|
|
694
730
|
(entry) => !isUndefined(entry[0]) && !objIsEmpty(entry[1]),
|
|
695
731
|
),
|
|
696
732
|
)
|
|
697
733
|
: {};
|
|
734
|
+
};
|
|
698
735
|
const saveTable = async (
|
|
699
736
|
tableName,
|
|
700
737
|
rowIdColumnName,
|
|
@@ -703,15 +740,23 @@ const getCommandFunctions = (
|
|
|
703
740
|
deleteEmptyTable,
|
|
704
741
|
partial = false,
|
|
705
742
|
condition = TRUE,
|
|
743
|
+
contentSubIds,
|
|
706
744
|
) => {
|
|
745
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
746
|
+
? void 0
|
|
747
|
+
: setNew(contentSubIds);
|
|
748
|
+
const includeContentSubId = (contentSubId) =>
|
|
749
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
707
750
|
const settingColumnNameSet = setNew();
|
|
708
751
|
objMap(content ?? {}, (contentRow) =>
|
|
709
|
-
arrayMap(
|
|
710
|
-
|
|
752
|
+
arrayMap(
|
|
753
|
+
arrayFilter(objIds(contentRow ?? {}), includeContentSubId),
|
|
754
|
+
(cellOrValueId) => setAdd(settingColumnNameSet, cellOrValueId),
|
|
711
755
|
),
|
|
712
756
|
);
|
|
713
757
|
const settingColumnNames = collValues(settingColumnNameSet);
|
|
714
758
|
if (
|
|
759
|
+
isUndefined(contentSubIdSet) &&
|
|
715
760
|
!partial &&
|
|
716
761
|
deleteEmptyTable &&
|
|
717
762
|
condition == TRUE &&
|
|
@@ -723,7 +768,13 @@ const getCommandFunctions = (
|
|
|
723
768
|
return;
|
|
724
769
|
}
|
|
725
770
|
const currentColumnNames = mapGet(schemaMap, tableName);
|
|
726
|
-
const unaccountedColumnNames = setNew(
|
|
771
|
+
const unaccountedColumnNames = setNew(
|
|
772
|
+
arrayFilter(
|
|
773
|
+
collValues(currentColumnNames),
|
|
774
|
+
(columnName) =>
|
|
775
|
+
columnName == rowIdColumnName || includeContentSubId(columnName),
|
|
776
|
+
),
|
|
777
|
+
);
|
|
727
778
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
728
779
|
if (!collHas(schemaMap, tableName)) {
|
|
729
780
|
await databaseExecuteCommand(
|
|
@@ -789,11 +840,13 @@ const getCommandFunctions = (
|
|
|
789
840
|
]);
|
|
790
841
|
if (partial) {
|
|
791
842
|
if (isUndefined(content)) {
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
843
|
+
if (isUndefined(contentSubIdSet)) {
|
|
844
|
+
await databaseExecuteCommand(
|
|
845
|
+
DELETE_FROM +
|
|
846
|
+
escapeId(tableName) +
|
|
847
|
+
getWhereCondition(tableName, condition),
|
|
848
|
+
);
|
|
849
|
+
}
|
|
797
850
|
} else {
|
|
798
851
|
await promiseAll(
|
|
799
852
|
objToArray(content, async (row, rowId) => {
|
|
@@ -806,18 +859,24 @@ const getCommandFunctions = (
|
|
|
806
859
|
[rowId],
|
|
807
860
|
);
|
|
808
861
|
} else if (!arrayIsEmpty(settingColumnNames)) {
|
|
809
|
-
|
|
810
|
-
databaseExecuteCommand,
|
|
811
|
-
tableName,
|
|
812
|
-
rowIdColumnName,
|
|
862
|
+
const changingColumnNames = arrayFilter(
|
|
813
863
|
objIds(row),
|
|
814
|
-
|
|
815
|
-
[rowId]: encode
|
|
816
|
-
? arrayMap(objValues(row), encode)
|
|
817
|
-
: objValues(row),
|
|
818
|
-
},
|
|
819
|
-
currentColumnNames,
|
|
864
|
+
includeContentSubId,
|
|
820
865
|
);
|
|
866
|
+
if (!arrayIsEmpty(changingColumnNames)) {
|
|
867
|
+
await upsert(
|
|
868
|
+
databaseExecuteCommand,
|
|
869
|
+
tableName,
|
|
870
|
+
rowIdColumnName,
|
|
871
|
+
changingColumnNames,
|
|
872
|
+
{
|
|
873
|
+
[rowId]: arrayMap(changingColumnNames, (cellId) =>
|
|
874
|
+
encode ? encode(row[cellId]) : row[cellId],
|
|
875
|
+
),
|
|
876
|
+
},
|
|
877
|
+
currentColumnNames,
|
|
878
|
+
);
|
|
879
|
+
}
|
|
821
880
|
}
|
|
822
881
|
}),
|
|
823
882
|
);
|
|
@@ -826,7 +885,9 @@ const getCommandFunctions = (
|
|
|
826
885
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
827
886
|
const changingColumnNames = arrayFilter(
|
|
828
887
|
collValues(mapGet(schemaMap, tableName)),
|
|
829
|
-
(changingColumnName) =>
|
|
888
|
+
(changingColumnName) =>
|
|
889
|
+
changingColumnName != rowIdColumnName &&
|
|
890
|
+
includeContentSubId(changingColumnName),
|
|
830
891
|
);
|
|
831
892
|
const rows = {};
|
|
832
893
|
const deleteRowIds = [];
|
|
@@ -842,6 +903,7 @@ const getCommandFunctions = (
|
|
|
842
903
|
rowIdColumnName,
|
|
843
904
|
changingColumnNames,
|
|
844
905
|
rows,
|
|
906
|
+
currentColumnNames,
|
|
845
907
|
);
|
|
846
908
|
await databaseExecuteCommand(
|
|
847
909
|
DELETE_FROM +
|
|
@@ -850,7 +912,10 @@ const getCommandFunctions = (
|
|
|
850
912
|
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
851
913
|
deleteRowIds,
|
|
852
914
|
);
|
|
853
|
-
} else if (
|
|
915
|
+
} else if (
|
|
916
|
+
isUndefined(contentSubIdSet) &&
|
|
917
|
+
collHas(schemaMap, tableName)
|
|
918
|
+
) {
|
|
854
919
|
await databaseExecuteCommand(
|
|
855
920
|
DELETE_FROM +
|
|
856
921
|
escapeId(tableName) +
|
|
@@ -989,7 +1054,13 @@ const createTabularPersister = (
|
|
|
989
1054
|
[
|
|
990
1055
|
tablesLoadConfig,
|
|
991
1056
|
tablesSaveConfig,
|
|
992
|
-
[
|
|
1057
|
+
[
|
|
1058
|
+
valuesLoad,
|
|
1059
|
+
valuesSave,
|
|
1060
|
+
valuesTableName,
|
|
1061
|
+
valuesLoadValueIds,
|
|
1062
|
+
valuesSaveValueIds,
|
|
1063
|
+
],
|
|
993
1064
|
],
|
|
994
1065
|
managedTableNames,
|
|
995
1066
|
querySchema,
|
|
@@ -1039,15 +1110,33 @@ const createTabularPersister = (
|
|
|
1039
1110
|
},
|
|
1040
1111
|
),
|
|
1041
1112
|
);
|
|
1113
|
+
const getValuesSubset = (values, valueIds, partial) =>
|
|
1114
|
+
objNew(
|
|
1115
|
+
partial == true
|
|
1116
|
+
? arrayFilter(
|
|
1117
|
+
objToArray(values, (value, valueId) => [valueId, value]),
|
|
1118
|
+
([valueId]) => arrayHas(valueIds, valueId),
|
|
1119
|
+
)
|
|
1120
|
+
: arrayFilter(
|
|
1121
|
+
arrayMap(valueIds, (valueId) => [valueId, values[valueId]]),
|
|
1122
|
+
([, value]) => !isUndefined(value),
|
|
1123
|
+
),
|
|
1124
|
+
);
|
|
1042
1125
|
const saveValues = async (values, partial) =>
|
|
1043
1126
|
valuesSave
|
|
1044
1127
|
? await saveTable(
|
|
1045
1128
|
valuesTableName,
|
|
1046
1129
|
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1047
|
-
{
|
|
1130
|
+
{
|
|
1131
|
+
[SINGLE_ROW_ID]: isUndefined(valuesSaveValueIds)
|
|
1132
|
+
? values
|
|
1133
|
+
: getValuesSubset(values, valuesSaveValueIds, partial),
|
|
1134
|
+
},
|
|
1048
1135
|
true,
|
|
1049
1136
|
true,
|
|
1050
1137
|
partial,
|
|
1138
|
+
void 0,
|
|
1139
|
+
valuesSaveValueIds,
|
|
1051
1140
|
)
|
|
1052
1141
|
: null;
|
|
1053
1142
|
const loadTables = async () =>
|
|
@@ -1067,9 +1156,14 @@ const createTabularPersister = (
|
|
|
1067
1156
|
);
|
|
1068
1157
|
const loadValues = async () =>
|
|
1069
1158
|
valuesLoad
|
|
1070
|
-
? (
|
|
1071
|
-
|
|
1072
|
-
|
|
1159
|
+
? (
|
|
1160
|
+
await loadTable(
|
|
1161
|
+
valuesTableName,
|
|
1162
|
+
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1163
|
+
void 0,
|
|
1164
|
+
valuesLoadValueIds,
|
|
1165
|
+
)
|
|
1166
|
+
)[SINGLE_ROW_ID]
|
|
1073
1167
|
: {};
|
|
1074
1168
|
const getPersisted = () =>
|
|
1075
1169
|
transaction(async () => {
|