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;
|
|
@@ -43,6 +44,7 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
|
|
47
|
+
const arrayHas = (array, value) => array.includes(value);
|
|
46
48
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
47
49
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
48
50
|
const arrayMap = (array, cb) => array.map(cb);
|
|
@@ -228,6 +230,8 @@ const DEFAULT_TABULAR_VALUES_CONFIG = {
|
|
|
228
230
|
save: 0,
|
|
229
231
|
[TABLE_NAME]: TINYBASE + '_values',
|
|
230
232
|
};
|
|
233
|
+
const getValuesIn = (config) => (isArray(config) ? config : void 0);
|
|
234
|
+
const hasValues = (config) => isTrue(config) || isArray(config);
|
|
231
235
|
const getDefaultedConfig = (configOrStoreTableName) =>
|
|
232
236
|
objMerge(
|
|
233
237
|
DEFAULT_CONFIG,
|
|
@@ -278,11 +282,15 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
278
282
|
];
|
|
279
283
|
}
|
|
280
284
|
const {tables: {load = {}, save = {}} = {}, values = {}} = config;
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
const valuesConfigObj = objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values);
|
|
286
|
+
const {load: valuesLoad, save: valuesSave} = valuesConfigObj;
|
|
287
|
+
const valuesConfig = [
|
|
288
|
+
hasValues(valuesLoad),
|
|
289
|
+
hasValues(valuesSave),
|
|
290
|
+
valuesConfigObj[TABLE_NAME],
|
|
291
|
+
getValuesIn(valuesLoad),
|
|
292
|
+
getValuesIn(valuesSave),
|
|
293
|
+
];
|
|
286
294
|
const valuesTable = valuesConfig[2];
|
|
287
295
|
const managedTableNames = setNew(valuesTable);
|
|
288
296
|
const excludedTableNames = setNew(valuesTable);
|
|
@@ -510,13 +518,14 @@ const createCustomPersister = (
|
|
|
510
518
|
const content = await getPersisted();
|
|
511
519
|
if (isArray(content)) {
|
|
512
520
|
setContentOrChanges(content);
|
|
513
|
-
} else if (initialContent) {
|
|
521
|
+
} else if (isUndefined(content) && initialContent) {
|
|
514
522
|
setDefaultContent(initialContent);
|
|
515
|
-
} else {
|
|
523
|
+
} else if (!isUndefined(content)) {
|
|
516
524
|
errorNew(`Content is not an array: ${content}`);
|
|
517
525
|
}
|
|
518
526
|
},
|
|
519
|
-
() => {
|
|
527
|
+
(error) => {
|
|
528
|
+
onIgnoredError?.(error);
|
|
520
529
|
if (initialContent) {
|
|
521
530
|
setDefaultContent(initialContent);
|
|
522
531
|
}
|
|
@@ -675,8 +684,18 @@ const getCommandFunctions = (
|
|
|
675
684
|
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
676
685
|
);
|
|
677
686
|
};
|
|
678
|
-
const loadTable = async (
|
|
679
|
-
|
|
687
|
+
const loadTable = async (
|
|
688
|
+
tableName,
|
|
689
|
+
rowIdColumnName,
|
|
690
|
+
condition,
|
|
691
|
+
contentSubIds,
|
|
692
|
+
) => {
|
|
693
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
694
|
+
? void 0
|
|
695
|
+
: setNew(contentSubIds);
|
|
696
|
+
const includeContentSubId = (contentSubId) =>
|
|
697
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
698
|
+
return canSelect(tableName, rowIdColumnName)
|
|
680
699
|
? objNew(
|
|
681
700
|
arrayFilter(
|
|
682
701
|
arrayMap(
|
|
@@ -685,17 +704,35 @@ const getCommandFunctions = (
|
|
|
685
704
|
escapeId(tableName) +
|
|
686
705
|
getWhereCondition(tableName, condition),
|
|
687
706
|
),
|
|
688
|
-
(row) =>
|
|
689
|
-
row[rowIdColumnName]
|
|
690
|
-
decode
|
|
707
|
+
(row) => {
|
|
708
|
+
const rowId = row[rowIdColumnName];
|
|
709
|
+
const rowContent = decode
|
|
691
710
|
? objMap(objDel(row, rowIdColumnName), decode)
|
|
692
|
-
: objDel(row, rowIdColumnName)
|
|
693
|
-
|
|
711
|
+
: objDel(row, rowIdColumnName);
|
|
712
|
+
return [
|
|
713
|
+
rowId,
|
|
714
|
+
isUndefined(contentSubIdSet)
|
|
715
|
+
? rowContent
|
|
716
|
+
: objNew(
|
|
717
|
+
arrayFilter(
|
|
718
|
+
objToArray(
|
|
719
|
+
rowContent,
|
|
720
|
+
(cellOrValue, contentSubId) => [
|
|
721
|
+
contentSubId,
|
|
722
|
+
cellOrValue,
|
|
723
|
+
],
|
|
724
|
+
),
|
|
725
|
+
([contentSubId]) => includeContentSubId(contentSubId),
|
|
726
|
+
),
|
|
727
|
+
),
|
|
728
|
+
];
|
|
729
|
+
},
|
|
694
730
|
),
|
|
695
731
|
(entry) => !isUndefined(entry[0]) && !objIsEmpty(entry[1]),
|
|
696
732
|
),
|
|
697
733
|
)
|
|
698
734
|
: {};
|
|
735
|
+
};
|
|
699
736
|
const saveTable = async (
|
|
700
737
|
tableName,
|
|
701
738
|
rowIdColumnName,
|
|
@@ -704,15 +741,23 @@ const getCommandFunctions = (
|
|
|
704
741
|
deleteEmptyTable,
|
|
705
742
|
partial = false,
|
|
706
743
|
condition = TRUE,
|
|
744
|
+
contentSubIds,
|
|
707
745
|
) => {
|
|
746
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
747
|
+
? void 0
|
|
748
|
+
: setNew(contentSubIds);
|
|
749
|
+
const includeContentSubId = (contentSubId) =>
|
|
750
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
708
751
|
const settingColumnNameSet = setNew();
|
|
709
752
|
objMap(content ?? {}, (contentRow) =>
|
|
710
|
-
arrayMap(
|
|
711
|
-
|
|
753
|
+
arrayMap(
|
|
754
|
+
arrayFilter(objIds(contentRow ?? {}), includeContentSubId),
|
|
755
|
+
(cellOrValueId) => setAdd(settingColumnNameSet, cellOrValueId),
|
|
712
756
|
),
|
|
713
757
|
);
|
|
714
758
|
const settingColumnNames = collValues(settingColumnNameSet);
|
|
715
759
|
if (
|
|
760
|
+
isUndefined(contentSubIdSet) &&
|
|
716
761
|
!partial &&
|
|
717
762
|
deleteEmptyTable &&
|
|
718
763
|
condition == TRUE &&
|
|
@@ -724,7 +769,13 @@ const getCommandFunctions = (
|
|
|
724
769
|
return;
|
|
725
770
|
}
|
|
726
771
|
const currentColumnNames = mapGet(schemaMap, tableName);
|
|
727
|
-
const unaccountedColumnNames = setNew(
|
|
772
|
+
const unaccountedColumnNames = setNew(
|
|
773
|
+
arrayFilter(
|
|
774
|
+
collValues(currentColumnNames),
|
|
775
|
+
(columnName) =>
|
|
776
|
+
columnName == rowIdColumnName || includeContentSubId(columnName),
|
|
777
|
+
),
|
|
778
|
+
);
|
|
728
779
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
729
780
|
if (!collHas(schemaMap, tableName)) {
|
|
730
781
|
await databaseExecuteCommand(
|
|
@@ -790,11 +841,13 @@ const getCommandFunctions = (
|
|
|
790
841
|
]);
|
|
791
842
|
if (partial) {
|
|
792
843
|
if (isUndefined(content)) {
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
844
|
+
if (isUndefined(contentSubIdSet)) {
|
|
845
|
+
await databaseExecuteCommand(
|
|
846
|
+
DELETE_FROM +
|
|
847
|
+
escapeId(tableName) +
|
|
848
|
+
getWhereCondition(tableName, condition),
|
|
849
|
+
);
|
|
850
|
+
}
|
|
798
851
|
} else {
|
|
799
852
|
await promiseAll(
|
|
800
853
|
objToArray(content, async (row, rowId) => {
|
|
@@ -807,18 +860,24 @@ const getCommandFunctions = (
|
|
|
807
860
|
[rowId],
|
|
808
861
|
);
|
|
809
862
|
} else if (!arrayIsEmpty(settingColumnNames)) {
|
|
810
|
-
|
|
811
|
-
databaseExecuteCommand,
|
|
812
|
-
tableName,
|
|
813
|
-
rowIdColumnName,
|
|
863
|
+
const changingColumnNames = arrayFilter(
|
|
814
864
|
objIds(row),
|
|
815
|
-
|
|
816
|
-
[rowId]: encode
|
|
817
|
-
? arrayMap(objValues(row), encode)
|
|
818
|
-
: objValues(row),
|
|
819
|
-
},
|
|
820
|
-
currentColumnNames,
|
|
865
|
+
includeContentSubId,
|
|
821
866
|
);
|
|
867
|
+
if (!arrayIsEmpty(changingColumnNames)) {
|
|
868
|
+
await upsert(
|
|
869
|
+
databaseExecuteCommand,
|
|
870
|
+
tableName,
|
|
871
|
+
rowIdColumnName,
|
|
872
|
+
changingColumnNames,
|
|
873
|
+
{
|
|
874
|
+
[rowId]: arrayMap(changingColumnNames, (cellId) =>
|
|
875
|
+
encode ? encode(row[cellId]) : row[cellId],
|
|
876
|
+
),
|
|
877
|
+
},
|
|
878
|
+
currentColumnNames,
|
|
879
|
+
);
|
|
880
|
+
}
|
|
822
881
|
}
|
|
823
882
|
}),
|
|
824
883
|
);
|
|
@@ -827,7 +886,9 @@ const getCommandFunctions = (
|
|
|
827
886
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
828
887
|
const changingColumnNames = arrayFilter(
|
|
829
888
|
collValues(mapGet(schemaMap, tableName)),
|
|
830
|
-
(changingColumnName) =>
|
|
889
|
+
(changingColumnName) =>
|
|
890
|
+
changingColumnName != rowIdColumnName &&
|
|
891
|
+
includeContentSubId(changingColumnName),
|
|
831
892
|
);
|
|
832
893
|
const rows = {};
|
|
833
894
|
const deleteRowIds = [];
|
|
@@ -843,6 +904,7 @@ const getCommandFunctions = (
|
|
|
843
904
|
rowIdColumnName,
|
|
844
905
|
changingColumnNames,
|
|
845
906
|
rows,
|
|
907
|
+
currentColumnNames,
|
|
846
908
|
);
|
|
847
909
|
await databaseExecuteCommand(
|
|
848
910
|
DELETE_FROM +
|
|
@@ -851,7 +913,10 @@ const getCommandFunctions = (
|
|
|
851
913
|
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
852
914
|
deleteRowIds,
|
|
853
915
|
);
|
|
854
|
-
} else if (
|
|
916
|
+
} else if (
|
|
917
|
+
isUndefined(contentSubIdSet) &&
|
|
918
|
+
collHas(schemaMap, tableName)
|
|
919
|
+
) {
|
|
855
920
|
await databaseExecuteCommand(
|
|
856
921
|
DELETE_FROM +
|
|
857
922
|
escapeId(tableName) +
|
|
@@ -990,7 +1055,13 @@ const createTabularPersister = (
|
|
|
990
1055
|
[
|
|
991
1056
|
tablesLoadConfig,
|
|
992
1057
|
tablesSaveConfig,
|
|
993
|
-
[
|
|
1058
|
+
[
|
|
1059
|
+
valuesLoad,
|
|
1060
|
+
valuesSave,
|
|
1061
|
+
valuesTableName,
|
|
1062
|
+
valuesLoadValueIds,
|
|
1063
|
+
valuesSaveValueIds,
|
|
1064
|
+
],
|
|
994
1065
|
],
|
|
995
1066
|
managedTableNames,
|
|
996
1067
|
querySchema,
|
|
@@ -1040,15 +1111,33 @@ const createTabularPersister = (
|
|
|
1040
1111
|
},
|
|
1041
1112
|
),
|
|
1042
1113
|
);
|
|
1114
|
+
const getValuesSubset = (values, valueIds, partial) =>
|
|
1115
|
+
objNew(
|
|
1116
|
+
partial == true
|
|
1117
|
+
? arrayFilter(
|
|
1118
|
+
objToArray(values, (value, valueId) => [valueId, value]),
|
|
1119
|
+
([valueId]) => arrayHas(valueIds, valueId),
|
|
1120
|
+
)
|
|
1121
|
+
: arrayFilter(
|
|
1122
|
+
arrayMap(valueIds, (valueId) => [valueId, values[valueId]]),
|
|
1123
|
+
([, value]) => !isUndefined(value),
|
|
1124
|
+
),
|
|
1125
|
+
);
|
|
1043
1126
|
const saveValues = async (values, partial) =>
|
|
1044
1127
|
valuesSave
|
|
1045
1128
|
? await saveTable(
|
|
1046
1129
|
valuesTableName,
|
|
1047
1130
|
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1048
|
-
{
|
|
1131
|
+
{
|
|
1132
|
+
[SINGLE_ROW_ID]: isUndefined(valuesSaveValueIds)
|
|
1133
|
+
? values
|
|
1134
|
+
: getValuesSubset(values, valuesSaveValueIds, partial),
|
|
1135
|
+
},
|
|
1049
1136
|
true,
|
|
1050
1137
|
true,
|
|
1051
1138
|
partial,
|
|
1139
|
+
void 0,
|
|
1140
|
+
valuesSaveValueIds,
|
|
1052
1141
|
)
|
|
1053
1142
|
: null;
|
|
1054
1143
|
const loadTables = async () =>
|
|
@@ -1068,9 +1157,14 @@ const createTabularPersister = (
|
|
|
1068
1157
|
);
|
|
1069
1158
|
const loadValues = async () =>
|
|
1070
1159
|
valuesLoad
|
|
1071
|
-
? (
|
|
1072
|
-
|
|
1073
|
-
|
|
1160
|
+
? (
|
|
1161
|
+
await loadTable(
|
|
1162
|
+
valuesTableName,
|
|
1163
|
+
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1164
|
+
void 0,
|
|
1165
|
+
valuesLoadValueIds,
|
|
1166
|
+
)
|
|
1167
|
+
)[SINGLE_ROW_ID]
|
|
1074
1168
|
: {};
|
|
1075
1169
|
const getPersisted = () =>
|
|
1076
1170
|
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;
|
|
@@ -43,6 +44,7 @@ const tryCatch = async (action, then1, then2) => {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
|
|
47
|
+
const arrayHas = (array, value) => array.includes(value);
|
|
46
48
|
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
47
49
|
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
48
50
|
const arrayMap = (array, cb) => array.map(cb);
|
|
@@ -228,6 +230,8 @@ const DEFAULT_TABULAR_VALUES_CONFIG = {
|
|
|
228
230
|
save: 0,
|
|
229
231
|
[TABLE_NAME]: TINYBASE + '_values',
|
|
230
232
|
};
|
|
233
|
+
const getValuesIn = (config) => (isArray(config) ? config : void 0);
|
|
234
|
+
const hasValues = (config) => isTrue(config) || isArray(config);
|
|
231
235
|
const getDefaultedConfig = (configOrStoreTableName) =>
|
|
232
236
|
objMerge(
|
|
233
237
|
DEFAULT_CONFIG,
|
|
@@ -278,11 +282,15 @@ const getConfigStructures = (configOrStoreTableName) => {
|
|
|
278
282
|
];
|
|
279
283
|
}
|
|
280
284
|
const {tables: {load = {}, save = {}} = {}, values = {}} = config;
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
285
|
+
const valuesConfigObj = objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values);
|
|
286
|
+
const {load: valuesLoad, save: valuesSave} = valuesConfigObj;
|
|
287
|
+
const valuesConfig = [
|
|
288
|
+
hasValues(valuesLoad),
|
|
289
|
+
hasValues(valuesSave),
|
|
290
|
+
valuesConfigObj[TABLE_NAME],
|
|
291
|
+
getValuesIn(valuesLoad),
|
|
292
|
+
getValuesIn(valuesSave),
|
|
293
|
+
];
|
|
286
294
|
const valuesTable = valuesConfig[2];
|
|
287
295
|
const managedTableNames = setNew(valuesTable);
|
|
288
296
|
const excludedTableNames = setNew(valuesTable);
|
|
@@ -510,13 +518,14 @@ const createCustomPersister = (
|
|
|
510
518
|
const content = await getPersisted();
|
|
511
519
|
if (isArray(content)) {
|
|
512
520
|
setContentOrChanges(content);
|
|
513
|
-
} else if (initialContent) {
|
|
521
|
+
} else if (isUndefined(content) && initialContent) {
|
|
514
522
|
setDefaultContent(initialContent);
|
|
515
|
-
} else {
|
|
523
|
+
} else if (!isUndefined(content)) {
|
|
516
524
|
errorNew(`Content is not an array: ${content}`);
|
|
517
525
|
}
|
|
518
526
|
},
|
|
519
|
-
() => {
|
|
527
|
+
(error) => {
|
|
528
|
+
onIgnoredError?.(error);
|
|
520
529
|
if (initialContent) {
|
|
521
530
|
setDefaultContent(initialContent);
|
|
522
531
|
}
|
|
@@ -675,8 +684,18 @@ const getCommandFunctions = (
|
|
|
675
684
|
({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
|
|
676
685
|
);
|
|
677
686
|
};
|
|
678
|
-
const loadTable = async (
|
|
679
|
-
|
|
687
|
+
const loadTable = async (
|
|
688
|
+
tableName,
|
|
689
|
+
rowIdColumnName,
|
|
690
|
+
condition,
|
|
691
|
+
contentSubIds,
|
|
692
|
+
) => {
|
|
693
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
694
|
+
? void 0
|
|
695
|
+
: setNew(contentSubIds);
|
|
696
|
+
const includeContentSubId = (contentSubId) =>
|
|
697
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
698
|
+
return canSelect(tableName, rowIdColumnName)
|
|
680
699
|
? objNew(
|
|
681
700
|
arrayFilter(
|
|
682
701
|
arrayMap(
|
|
@@ -685,17 +704,35 @@ const getCommandFunctions = (
|
|
|
685
704
|
escapeId(tableName) +
|
|
686
705
|
getWhereCondition(tableName, condition),
|
|
687
706
|
),
|
|
688
|
-
(row) =>
|
|
689
|
-
row[rowIdColumnName]
|
|
690
|
-
decode
|
|
707
|
+
(row) => {
|
|
708
|
+
const rowId = row[rowIdColumnName];
|
|
709
|
+
const rowContent = decode
|
|
691
710
|
? objMap(objDel(row, rowIdColumnName), decode)
|
|
692
|
-
: objDel(row, rowIdColumnName)
|
|
693
|
-
|
|
711
|
+
: objDel(row, rowIdColumnName);
|
|
712
|
+
return [
|
|
713
|
+
rowId,
|
|
714
|
+
isUndefined(contentSubIdSet)
|
|
715
|
+
? rowContent
|
|
716
|
+
: objNew(
|
|
717
|
+
arrayFilter(
|
|
718
|
+
objToArray(
|
|
719
|
+
rowContent,
|
|
720
|
+
(cellOrValue, contentSubId) => [
|
|
721
|
+
contentSubId,
|
|
722
|
+
cellOrValue,
|
|
723
|
+
],
|
|
724
|
+
),
|
|
725
|
+
([contentSubId]) => includeContentSubId(contentSubId),
|
|
726
|
+
),
|
|
727
|
+
),
|
|
728
|
+
];
|
|
729
|
+
},
|
|
694
730
|
),
|
|
695
731
|
(entry) => !isUndefined(entry[0]) && !objIsEmpty(entry[1]),
|
|
696
732
|
),
|
|
697
733
|
)
|
|
698
734
|
: {};
|
|
735
|
+
};
|
|
699
736
|
const saveTable = async (
|
|
700
737
|
tableName,
|
|
701
738
|
rowIdColumnName,
|
|
@@ -704,15 +741,23 @@ const getCommandFunctions = (
|
|
|
704
741
|
deleteEmptyTable,
|
|
705
742
|
partial = false,
|
|
706
743
|
condition = TRUE,
|
|
744
|
+
contentSubIds,
|
|
707
745
|
) => {
|
|
746
|
+
const contentSubIdSet = isUndefined(contentSubIds)
|
|
747
|
+
? void 0
|
|
748
|
+
: setNew(contentSubIds);
|
|
749
|
+
const includeContentSubId = (contentSubId) =>
|
|
750
|
+
isUndefined(contentSubIdSet) || collHas(contentSubIdSet, contentSubId);
|
|
708
751
|
const settingColumnNameSet = setNew();
|
|
709
752
|
objMap(content ?? {}, (contentRow) =>
|
|
710
|
-
arrayMap(
|
|
711
|
-
|
|
753
|
+
arrayMap(
|
|
754
|
+
arrayFilter(objIds(contentRow ?? {}), includeContentSubId),
|
|
755
|
+
(cellOrValueId) => setAdd(settingColumnNameSet, cellOrValueId),
|
|
712
756
|
),
|
|
713
757
|
);
|
|
714
758
|
const settingColumnNames = collValues(settingColumnNameSet);
|
|
715
759
|
if (
|
|
760
|
+
isUndefined(contentSubIdSet) &&
|
|
716
761
|
!partial &&
|
|
717
762
|
deleteEmptyTable &&
|
|
718
763
|
condition == TRUE &&
|
|
@@ -724,7 +769,13 @@ const getCommandFunctions = (
|
|
|
724
769
|
return;
|
|
725
770
|
}
|
|
726
771
|
const currentColumnNames = mapGet(schemaMap, tableName);
|
|
727
|
-
const unaccountedColumnNames = setNew(
|
|
772
|
+
const unaccountedColumnNames = setNew(
|
|
773
|
+
arrayFilter(
|
|
774
|
+
collValues(currentColumnNames),
|
|
775
|
+
(columnName) =>
|
|
776
|
+
columnName == rowIdColumnName || includeContentSubId(columnName),
|
|
777
|
+
),
|
|
778
|
+
);
|
|
728
779
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
729
780
|
if (!collHas(schemaMap, tableName)) {
|
|
730
781
|
await databaseExecuteCommand(
|
|
@@ -790,11 +841,13 @@ const getCommandFunctions = (
|
|
|
790
841
|
]);
|
|
791
842
|
if (partial) {
|
|
792
843
|
if (isUndefined(content)) {
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
844
|
+
if (isUndefined(contentSubIdSet)) {
|
|
845
|
+
await databaseExecuteCommand(
|
|
846
|
+
DELETE_FROM +
|
|
847
|
+
escapeId(tableName) +
|
|
848
|
+
getWhereCondition(tableName, condition),
|
|
849
|
+
);
|
|
850
|
+
}
|
|
798
851
|
} else {
|
|
799
852
|
await promiseAll(
|
|
800
853
|
objToArray(content, async (row, rowId) => {
|
|
@@ -807,18 +860,24 @@ const getCommandFunctions = (
|
|
|
807
860
|
[rowId],
|
|
808
861
|
);
|
|
809
862
|
} else if (!arrayIsEmpty(settingColumnNames)) {
|
|
810
|
-
|
|
811
|
-
databaseExecuteCommand,
|
|
812
|
-
tableName,
|
|
813
|
-
rowIdColumnName,
|
|
863
|
+
const changingColumnNames = arrayFilter(
|
|
814
864
|
objIds(row),
|
|
815
|
-
|
|
816
|
-
[rowId]: encode
|
|
817
|
-
? arrayMap(objValues(row), encode)
|
|
818
|
-
: objValues(row),
|
|
819
|
-
},
|
|
820
|
-
currentColumnNames,
|
|
865
|
+
includeContentSubId,
|
|
821
866
|
);
|
|
867
|
+
if (!arrayIsEmpty(changingColumnNames)) {
|
|
868
|
+
await upsert(
|
|
869
|
+
databaseExecuteCommand,
|
|
870
|
+
tableName,
|
|
871
|
+
rowIdColumnName,
|
|
872
|
+
changingColumnNames,
|
|
873
|
+
{
|
|
874
|
+
[rowId]: arrayMap(changingColumnNames, (cellId) =>
|
|
875
|
+
encode ? encode(row[cellId]) : row[cellId],
|
|
876
|
+
),
|
|
877
|
+
},
|
|
878
|
+
currentColumnNames,
|
|
879
|
+
);
|
|
880
|
+
}
|
|
822
881
|
}
|
|
823
882
|
}),
|
|
824
883
|
);
|
|
@@ -827,7 +886,9 @@ const getCommandFunctions = (
|
|
|
827
886
|
if (!arrayIsEmpty(settingColumnNames)) {
|
|
828
887
|
const changingColumnNames = arrayFilter(
|
|
829
888
|
collValues(mapGet(schemaMap, tableName)),
|
|
830
|
-
(changingColumnName) =>
|
|
889
|
+
(changingColumnName) =>
|
|
890
|
+
changingColumnName != rowIdColumnName &&
|
|
891
|
+
includeContentSubId(changingColumnName),
|
|
831
892
|
);
|
|
832
893
|
const rows = {};
|
|
833
894
|
const deleteRowIds = [];
|
|
@@ -843,6 +904,7 @@ const getCommandFunctions = (
|
|
|
843
904
|
rowIdColumnName,
|
|
844
905
|
changingColumnNames,
|
|
845
906
|
rows,
|
|
907
|
+
currentColumnNames,
|
|
846
908
|
);
|
|
847
909
|
await databaseExecuteCommand(
|
|
848
910
|
DELETE_FROM +
|
|
@@ -851,7 +913,10 @@ const getCommandFunctions = (
|
|
|
851
913
|
`AND${escapeId(rowIdColumnName)}NOT IN(${getPlaceholders(deleteRowIds)})`,
|
|
852
914
|
deleteRowIds,
|
|
853
915
|
);
|
|
854
|
-
} else if (
|
|
916
|
+
} else if (
|
|
917
|
+
isUndefined(contentSubIdSet) &&
|
|
918
|
+
collHas(schemaMap, tableName)
|
|
919
|
+
) {
|
|
855
920
|
await databaseExecuteCommand(
|
|
856
921
|
DELETE_FROM +
|
|
857
922
|
escapeId(tableName) +
|
|
@@ -990,7 +1055,13 @@ const createTabularPersister = (
|
|
|
990
1055
|
[
|
|
991
1056
|
tablesLoadConfig,
|
|
992
1057
|
tablesSaveConfig,
|
|
993
|
-
[
|
|
1058
|
+
[
|
|
1059
|
+
valuesLoad,
|
|
1060
|
+
valuesSave,
|
|
1061
|
+
valuesTableName,
|
|
1062
|
+
valuesLoadValueIds,
|
|
1063
|
+
valuesSaveValueIds,
|
|
1064
|
+
],
|
|
994
1065
|
],
|
|
995
1066
|
managedTableNames,
|
|
996
1067
|
querySchema,
|
|
@@ -1040,15 +1111,33 @@ const createTabularPersister = (
|
|
|
1040
1111
|
},
|
|
1041
1112
|
),
|
|
1042
1113
|
);
|
|
1114
|
+
const getValuesSubset = (values, valueIds, partial) =>
|
|
1115
|
+
objNew(
|
|
1116
|
+
partial == true
|
|
1117
|
+
? arrayFilter(
|
|
1118
|
+
objToArray(values, (value, valueId) => [valueId, value]),
|
|
1119
|
+
([valueId]) => arrayHas(valueIds, valueId),
|
|
1120
|
+
)
|
|
1121
|
+
: arrayFilter(
|
|
1122
|
+
arrayMap(valueIds, (valueId) => [valueId, values[valueId]]),
|
|
1123
|
+
([, value]) => !isUndefined(value),
|
|
1124
|
+
),
|
|
1125
|
+
);
|
|
1043
1126
|
const saveValues = async (values, partial) =>
|
|
1044
1127
|
valuesSave
|
|
1045
1128
|
? await saveTable(
|
|
1046
1129
|
valuesTableName,
|
|
1047
1130
|
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1048
|
-
{
|
|
1131
|
+
{
|
|
1132
|
+
[SINGLE_ROW_ID]: isUndefined(valuesSaveValueIds)
|
|
1133
|
+
? values
|
|
1134
|
+
: getValuesSubset(values, valuesSaveValueIds, partial),
|
|
1135
|
+
},
|
|
1049
1136
|
true,
|
|
1050
1137
|
true,
|
|
1051
1138
|
partial,
|
|
1139
|
+
void 0,
|
|
1140
|
+
valuesSaveValueIds,
|
|
1052
1141
|
)
|
|
1053
1142
|
: null;
|
|
1054
1143
|
const loadTables = async () =>
|
|
@@ -1068,9 +1157,14 @@ const createTabularPersister = (
|
|
|
1068
1157
|
);
|
|
1069
1158
|
const loadValues = async () =>
|
|
1070
1159
|
valuesLoad
|
|
1071
|
-
? (
|
|
1072
|
-
|
|
1073
|
-
|
|
1160
|
+
? (
|
|
1161
|
+
await loadTable(
|
|
1162
|
+
valuesTableName,
|
|
1163
|
+
DEFAULT_ROW_ID_COLUMN_NAME,
|
|
1164
|
+
void 0,
|
|
1165
|
+
valuesLoadValueIds,
|
|
1166
|
+
)
|
|
1167
|
+
)[SINGLE_ROW_ID]
|
|
1074
1168
|
: {};
|
|
1075
1169
|
const getPersisted = () =>
|
|
1076
1170
|
transaction(async () => {
|