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
package/with-schemas/index.js
CHANGED
|
@@ -1792,6 +1792,27 @@ const createStore = () => {
|
|
|
1792
1792
|
transaction(() => actions(...arrayMap(args, id)));
|
|
1793
1793
|
return store;
|
|
1794
1794
|
};
|
|
1795
|
+
const addSortedRowIdsListenerImpl = (
|
|
1796
|
+
tableId,
|
|
1797
|
+
cellId,
|
|
1798
|
+
otherArgs,
|
|
1799
|
+
listener,
|
|
1800
|
+
mutator,
|
|
1801
|
+
) => {
|
|
1802
|
+
let sortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
1803
|
+
return addListener(
|
|
1804
|
+
() => {
|
|
1805
|
+
const newSortedRowIds = getSortedRowIds(tableId, cellId, ...otherArgs);
|
|
1806
|
+
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
1807
|
+
sortedRowIds = newSortedRowIds;
|
|
1808
|
+
listener(store, tableId, cellId, ...otherArgs, sortedRowIds);
|
|
1809
|
+
}
|
|
1810
|
+
},
|
|
1811
|
+
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
1812
|
+
[tableId, cellId],
|
|
1813
|
+
[getTableIds],
|
|
1814
|
+
);
|
|
1815
|
+
};
|
|
1795
1816
|
const getContent = () => [getTables(), getValues()];
|
|
1796
1817
|
const getTables = () => mapToObj3(tablesMap);
|
|
1797
1818
|
const getTableIds = () => mapKeys(tablesMap);
|
|
@@ -1800,22 +1821,36 @@ const createStore = () => {
|
|
|
1800
1821
|
mapKeys(mapGet(tableCellIds, id(tableId)));
|
|
1801
1822
|
const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
|
|
1802
1823
|
const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
|
|
1803
|
-
const getSortedRowIds = (
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1824
|
+
const getSortedRowIds = (
|
|
1825
|
+
tableIdOrArgs,
|
|
1826
|
+
cellId,
|
|
1827
|
+
descending,
|
|
1828
|
+
offset = 0,
|
|
1829
|
+
limit,
|
|
1830
|
+
) =>
|
|
1831
|
+
isObject(tableIdOrArgs)
|
|
1832
|
+
? getSortedRowIds(
|
|
1833
|
+
tableIdOrArgs.tableId,
|
|
1834
|
+
tableIdOrArgs.cellId,
|
|
1835
|
+
tableIdOrArgs.descending,
|
|
1836
|
+
tableIdOrArgs.offset,
|
|
1837
|
+
tableIdOrArgs.limit,
|
|
1838
|
+
)
|
|
1839
|
+
: arrayMap(
|
|
1840
|
+
slice(
|
|
1841
|
+
arraySort(
|
|
1842
|
+
mapMap(mapGet(tablesMap, id(tableIdOrArgs)), (row, rowId) => [
|
|
1843
|
+
isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
|
|
1844
|
+
rowId,
|
|
1845
|
+
]),
|
|
1846
|
+
([cell1], [cell2]) =>
|
|
1847
|
+
defaultSorter(cell1, cell2) * (descending ? -1 : 1),
|
|
1848
|
+
),
|
|
1849
|
+
offset,
|
|
1850
|
+
isUndefined(limit) ? limit : offset + limit,
|
|
1851
|
+
),
|
|
1852
|
+
([, rowId]) => rowId,
|
|
1853
|
+
);
|
|
1819
1854
|
const getRow = (tableId, rowId) =>
|
|
1820
1855
|
mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
|
|
1821
1856
|
const getCellIds = (tableId, rowId) =>
|
|
@@ -2207,48 +2242,33 @@ const createStore = () => {
|
|
|
2207
2242
|
mapForEach(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), cellCallback);
|
|
2208
2243
|
const forEachValue = (valueCallback) => mapForEach(valuesMap, valueCallback);
|
|
2209
2244
|
const addSortedRowIdsListener = (
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2245
|
+
tableIdOrArgs,
|
|
2246
|
+
cellIdOrListener,
|
|
2247
|
+
descendingOrMutator,
|
|
2213
2248
|
offset,
|
|
2214
2249
|
limit,
|
|
2215
2250
|
listener,
|
|
2216
2251
|
mutator,
|
|
2217
|
-
) =>
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2252
|
+
) =>
|
|
2253
|
+
isObject(tableIdOrArgs)
|
|
2254
|
+
? addSortedRowIdsListenerImpl(
|
|
2255
|
+
tableIdOrArgs.tableId,
|
|
2256
|
+
tableIdOrArgs.cellId,
|
|
2257
|
+
[
|
|
2258
|
+
tableIdOrArgs.descending ?? false,
|
|
2259
|
+
tableIdOrArgs.offset ?? 0,
|
|
2260
|
+
tableIdOrArgs.limit,
|
|
2261
|
+
],
|
|
2262
|
+
cellIdOrListener,
|
|
2263
|
+
descendingOrMutator,
|
|
2264
|
+
)
|
|
2265
|
+
: addSortedRowIdsListenerImpl(
|
|
2266
|
+
tableIdOrArgs,
|
|
2267
|
+
cellIdOrListener,
|
|
2268
|
+
[descendingOrMutator, offset, limit],
|
|
2269
|
+
listener,
|
|
2270
|
+
mutator,
|
|
2233
2271
|
);
|
|
2234
|
-
if (!arrayIsEqual(newSortedRowIds, sortedRowIds)) {
|
|
2235
|
-
sortedRowIds = newSortedRowIds;
|
|
2236
|
-
listener(
|
|
2237
|
-
store,
|
|
2238
|
-
tableId,
|
|
2239
|
-
cellId,
|
|
2240
|
-
descending,
|
|
2241
|
-
offset,
|
|
2242
|
-
limit,
|
|
2243
|
-
sortedRowIds,
|
|
2244
|
-
);
|
|
2245
|
-
}
|
|
2246
|
-
},
|
|
2247
|
-
sortedRowIdsListeners[mutator ? 1 : 0],
|
|
2248
|
-
[tableId, cellId],
|
|
2249
|
-
[getTableIds],
|
|
2250
|
-
);
|
|
2251
|
-
};
|
|
2252
2272
|
const addStartTransactionListener = (listener) =>
|
|
2253
2273
|
addListener(listener, startTransactionListeners);
|
|
2254
2274
|
const addWillFinishTransactionListener = (listener) =>
|