tinybase 8.0.0-beta.1 → 8.0.0-beta.3
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/store/with-schemas/index.d.ts +2 -2
- package/@types/common/index.d.ts +22 -0
- package/@types/common/with-schemas/index.d.ts +22 -0
- package/@types/middleware/index.d.ts +151 -29
- package/@types/middleware/with-schemas/index.d.ts +174 -29
- package/@types/store/index.d.ts +132 -79
- package/@types/store/with-schemas/index.d.ts +137 -81
- package/checkpoints/index.js +2 -8
- package/checkpoints/with-schemas/index.js +2 -8
- package/index.js +272 -143
- package/mergeable-store/index.js +271 -156
- package/mergeable-store/with-schemas/index.js +271 -156
- package/middleware/index.js +40 -1
- package/middleware/with-schemas/index.js +40 -1
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- 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/middleware/index.js +1 -1
- package/min/middleware/index.js.gz +0 -0
- package/min/middleware/with-schemas/index.js +1 -1
- package/min/middleware/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/schematizers/index.js +1 -1
- package/min/schematizers/index.js.gz +0 -0
- package/min/schematizers/schematizer-arktype/index.js +1 -1
- package/min/schematizers/schematizer-arktype/index.js.gz +0 -0
- package/min/schematizers/schematizer-arktype/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-arktype/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-effect/index.js +1 -1
- package/min/schematizers/schematizer-effect/index.js.gz +0 -0
- package/min/schematizers/schematizer-effect/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-effect/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-typebox/index.js +1 -1
- package/min/schematizers/schematizer-typebox/index.js.gz +0 -0
- package/min/schematizers/schematizer-typebox/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-typebox/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-valibot/index.js +1 -1
- package/min/schematizers/schematizer-valibot/index.js.gz +0 -0
- package/min/schematizers/schematizer-valibot/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-valibot/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-yup/index.js +1 -1
- package/min/schematizers/schematizer-yup/index.js.gz +0 -0
- package/min/schematizers/schematizer-yup/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-yup/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-zod/index.js +1 -1
- package/min/schematizers/schematizer-zod/index.js.gz +0 -0
- package/min/schematizers/schematizer-zod/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-zod/with-schemas/index.js.gz +0 -0
- package/min/schematizers/with-schemas/index.js +1 -1
- package/min/schematizers/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-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/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/omni/index.js +356 -154
- package/omni/with-schemas/index.js +356 -154
- package/package.json +7 -7
- package/persisters/index.js +5 -5
- package/persisters/persister-automerge/index.js +5 -5
- package/persisters/persister-automerge/with-schemas/index.js +5 -5
- package/persisters/persister-browser/index.js +5 -5
- package/persisters/persister-browser/with-schemas/index.js +5 -5
- package/persisters/persister-cr-sqlite-wasm/index.js +5 -5
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +5 -5
- package/persisters/persister-durable-object-sql-storage/index.js +5 -5
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +5 -5
- package/persisters/persister-durable-object-storage/index.js +5 -5
- package/persisters/persister-durable-object-storage/with-schemas/index.js +5 -5
- package/persisters/persister-electric-sql/index.js +5 -5
- package/persisters/persister-electric-sql/with-schemas/index.js +5 -5
- package/persisters/persister-expo-sqlite/index.js +5 -5
- package/persisters/persister-expo-sqlite/with-schemas/index.js +5 -5
- package/persisters/persister-file/index.js +5 -5
- package/persisters/persister-file/with-schemas/index.js +5 -5
- package/persisters/persister-indexed-db/index.js +5 -5
- package/persisters/persister-indexed-db/with-schemas/index.js +5 -5
- package/persisters/persister-libsql/index.js +5 -5
- package/persisters/persister-libsql/with-schemas/index.js +5 -5
- package/persisters/persister-partykit-client/index.js +5 -5
- package/persisters/persister-partykit-client/with-schemas/index.js +5 -5
- package/persisters/persister-pglite/index.js +5 -5
- package/persisters/persister-pglite/with-schemas/index.js +5 -5
- package/persisters/persister-postgres/index.js +5 -5
- package/persisters/persister-postgres/with-schemas/index.js +5 -5
- package/persisters/persister-powersync/index.js +5 -5
- package/persisters/persister-powersync/with-schemas/index.js +5 -5
- package/persisters/persister-react-native-mmkv/index.js +5 -5
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +5 -5
- package/persisters/persister-react-native-sqlite/index.js +5 -5
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +5 -5
- package/persisters/persister-remote/index.js +5 -5
- package/persisters/persister-remote/with-schemas/index.js +5 -5
- package/persisters/persister-sqlite-bun/index.js +5 -5
- package/persisters/persister-sqlite-bun/with-schemas/index.js +5 -5
- package/persisters/persister-sqlite-wasm/index.js +5 -5
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +5 -5
- package/persisters/persister-sqlite3/index.js +5 -5
- package/persisters/persister-sqlite3/with-schemas/index.js +5 -5
- package/persisters/persister-yjs/index.js +5 -5
- package/persisters/persister-yjs/with-schemas/index.js +5 -5
- package/persisters/with-schemas/index.js +5 -5
- package/queries/index.js +11 -4
- package/queries/with-schemas/index.js +11 -4
- package/readme.md +3 -3
- package/releases.md +19 -3
- package/schematizers/index.js +9 -1
- package/schematizers/schematizer-arktype/index.js +16 -1
- package/schematizers/schematizer-arktype/with-schemas/index.js +16 -1
- package/schematizers/schematizer-effect/index.js +15 -2
- package/schematizers/schematizer-effect/with-schemas/index.js +15 -2
- package/schematizers/schematizer-typebox/index.js +9 -1
- package/schematizers/schematizer-typebox/with-schemas/index.js +9 -1
- package/schematizers/schematizer-valibot/index.js +17 -2
- package/schematizers/schematizer-valibot/with-schemas/index.js +17 -2
- package/schematizers/schematizer-yup/index.js +9 -1
- package/schematizers/schematizer-yup/with-schemas/index.js +9 -1
- package/schematizers/schematizer-zod/index.js +13 -2
- package/schematizers/schematizer-zod/with-schemas/index.js +13 -2
- package/schematizers/with-schemas/index.js +9 -1
- package/store/index.js +195 -104
- package/store/with-schemas/index.js +195 -104
- package/synchronizers/index.js +5 -5
- package/synchronizers/synchronizer-broadcast-channel/index.js +5 -5
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -5
- package/synchronizers/synchronizer-local/index.js +5 -5
- package/synchronizers/synchronizer-local/with-schemas/index.js +5 -5
- package/synchronizers/synchronizer-ws-client/index.js +5 -5
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -5
- package/synchronizers/synchronizer-ws-server/index.js +5 -5
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -5
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +5 -5
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +5 -5
- package/synchronizers/with-schemas/index.js +5 -5
- package/ui-react/index.js +6 -0
- package/ui-react/with-schemas/index.js +6 -0
- package/ui-react-dom/index.js +91 -6
- package/ui-react-dom/with-schemas/index.js +91 -6
- package/ui-react-inspector/index.js +248 -84
- package/ui-react-inspector/with-schemas/index.js +248 -84
- package/with-schemas/index.js +272 -143
|
@@ -278,8 +278,8 @@ const getStoreFunctions = (
|
|
|
278
278
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
279
279
|
? [
|
|
280
280
|
1,
|
|
281
|
-
store.
|
|
282
|
-
() => store.
|
|
281
|
+
store.__[1],
|
|
282
|
+
() => store.__[2](!isSynchronizer),
|
|
283
283
|
([[changedTables], [changedValues]]) =>
|
|
284
284
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
285
285
|
store.setDefaultContent,
|
|
@@ -287,8 +287,8 @@ const getStoreFunctions = (
|
|
|
287
287
|
: persist != 2 /* MergeableStoreOnly */
|
|
288
288
|
? [
|
|
289
289
|
0,
|
|
290
|
-
store.
|
|
291
|
-
store.
|
|
290
|
+
store._[7],
|
|
291
|
+
store._[8],
|
|
292
292
|
([changedTables, changedValues]) =>
|
|
293
293
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
294
294
|
store.setContent,
|
|
@@ -353,7 +353,7 @@ const createCustomPersister = (
|
|
|
353
353
|
: store.setContent)(contentOrChanges);
|
|
354
354
|
};
|
|
355
355
|
const saveAfterMutated = async () => {
|
|
356
|
-
if (isAutoSaving() && store.
|
|
356
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
357
357
|
await save();
|
|
358
358
|
}
|
|
359
359
|
};
|
|
@@ -290,8 +290,8 @@ const getStoreFunctions = (
|
|
|
290
290
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
291
291
|
? [
|
|
292
292
|
1,
|
|
293
|
-
store.
|
|
294
|
-
() => store.
|
|
293
|
+
store.__[1],
|
|
294
|
+
() => store.__[2](!isSynchronizer),
|
|
295
295
|
([[changedTables], [changedValues]]) =>
|
|
296
296
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
297
297
|
store.setDefaultContent,
|
|
@@ -299,8 +299,8 @@ const getStoreFunctions = (
|
|
|
299
299
|
: persist != 2 /* MergeableStoreOnly */
|
|
300
300
|
? [
|
|
301
301
|
0,
|
|
302
|
-
store.
|
|
303
|
-
store.
|
|
302
|
+
store._[7],
|
|
303
|
+
store._[8],
|
|
304
304
|
([changedTables, changedValues]) =>
|
|
305
305
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
306
306
|
store.setContent,
|
|
@@ -365,7 +365,7 @@ const createCustomPersister = (
|
|
|
365
365
|
: store.setContent)(contentOrChanges);
|
|
366
366
|
};
|
|
367
367
|
const saveAfterMutated = async () => {
|
|
368
|
-
if (isAutoSaving() && store.
|
|
368
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
369
369
|
await save();
|
|
370
370
|
}
|
|
371
371
|
};
|
|
@@ -290,8 +290,8 @@ const getStoreFunctions = (
|
|
|
290
290
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
291
291
|
? [
|
|
292
292
|
1,
|
|
293
|
-
store.
|
|
294
|
-
() => store.
|
|
293
|
+
store.__[1],
|
|
294
|
+
() => store.__[2](!isSynchronizer),
|
|
295
295
|
([[changedTables], [changedValues]]) =>
|
|
296
296
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
297
297
|
store.setDefaultContent,
|
|
@@ -299,8 +299,8 @@ const getStoreFunctions = (
|
|
|
299
299
|
: persist != 2 /* MergeableStoreOnly */
|
|
300
300
|
? [
|
|
301
301
|
0,
|
|
302
|
-
store.
|
|
303
|
-
store.
|
|
302
|
+
store._[7],
|
|
303
|
+
store._[8],
|
|
304
304
|
([changedTables, changedValues]) =>
|
|
305
305
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
306
306
|
store.setContent,
|
|
@@ -365,7 +365,7 @@ const createCustomPersister = (
|
|
|
365
365
|
: store.setContent)(contentOrChanges);
|
|
366
366
|
};
|
|
367
367
|
const saveAfterMutated = async () => {
|
|
368
|
-
if (isAutoSaving() && store.
|
|
368
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
369
369
|
await save();
|
|
370
370
|
}
|
|
371
371
|
};
|
|
@@ -280,8 +280,8 @@ const getStoreFunctions = (
|
|
|
280
280
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
281
281
|
? [
|
|
282
282
|
1,
|
|
283
|
-
store.
|
|
284
|
-
() => store.
|
|
283
|
+
store.__[1],
|
|
284
|
+
() => store.__[2](!isSynchronizer),
|
|
285
285
|
([[changedTables], [changedValues]]) =>
|
|
286
286
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
287
287
|
store.setDefaultContent,
|
|
@@ -289,8 +289,8 @@ const getStoreFunctions = (
|
|
|
289
289
|
: persist != 2 /* MergeableStoreOnly */
|
|
290
290
|
? [
|
|
291
291
|
0,
|
|
292
|
-
store.
|
|
293
|
-
store.
|
|
292
|
+
store._[7],
|
|
293
|
+
store._[8],
|
|
294
294
|
([changedTables, changedValues]) =>
|
|
295
295
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
296
296
|
store.setContent,
|
|
@@ -355,7 +355,7 @@ const createCustomPersister = (
|
|
|
355
355
|
: store.setContent)(contentOrChanges);
|
|
356
356
|
};
|
|
357
357
|
const saveAfterMutated = async () => {
|
|
358
|
-
if (isAutoSaving() && store.
|
|
358
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
359
359
|
await save();
|
|
360
360
|
}
|
|
361
361
|
};
|
|
@@ -280,8 +280,8 @@ const getStoreFunctions = (
|
|
|
280
280
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
281
281
|
? [
|
|
282
282
|
1,
|
|
283
|
-
store.
|
|
284
|
-
() => store.
|
|
283
|
+
store.__[1],
|
|
284
|
+
() => store.__[2](!isSynchronizer),
|
|
285
285
|
([[changedTables], [changedValues]]) =>
|
|
286
286
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
287
287
|
store.setDefaultContent,
|
|
@@ -289,8 +289,8 @@ const getStoreFunctions = (
|
|
|
289
289
|
: persist != 2 /* MergeableStoreOnly */
|
|
290
290
|
? [
|
|
291
291
|
0,
|
|
292
|
-
store.
|
|
293
|
-
store.
|
|
292
|
+
store._[7],
|
|
293
|
+
store._[8],
|
|
294
294
|
([changedTables, changedValues]) =>
|
|
295
295
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
296
296
|
store.setContent,
|
|
@@ -355,7 +355,7 @@ const createCustomPersister = (
|
|
|
355
355
|
: store.setContent)(contentOrChanges);
|
|
356
356
|
};
|
|
357
357
|
const saveAfterMutated = async () => {
|
|
358
|
-
if (isAutoSaving() && store.
|
|
358
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
359
359
|
await save();
|
|
360
360
|
}
|
|
361
361
|
};
|
|
@@ -236,8 +236,8 @@ const getStoreFunctions = (
|
|
|
236
236
|
persist != 1 /* StoreOnly */ && store.isMergeable()
|
|
237
237
|
? [
|
|
238
238
|
1,
|
|
239
|
-
store.
|
|
240
|
-
() => store.
|
|
239
|
+
store.__[1],
|
|
240
|
+
() => store.__[2](!isSynchronizer),
|
|
241
241
|
([[changedTables], [changedValues]]) =>
|
|
242
242
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
243
243
|
store.setDefaultContent,
|
|
@@ -245,8 +245,8 @@ const getStoreFunctions = (
|
|
|
245
245
|
: persist != 2 /* MergeableStoreOnly */
|
|
246
246
|
? [
|
|
247
247
|
0,
|
|
248
|
-
store.
|
|
249
|
-
store.
|
|
248
|
+
store._[7],
|
|
249
|
+
store._[8],
|
|
250
250
|
([changedTables, changedValues]) =>
|
|
251
251
|
!objIsEmpty(changedTables) || !objIsEmpty(changedValues),
|
|
252
252
|
store.setContent,
|
|
@@ -311,7 +311,7 @@ const createCustomPersister = (
|
|
|
311
311
|
: store.setContent)(contentOrChanges);
|
|
312
312
|
};
|
|
313
313
|
const saveAfterMutated = async () => {
|
|
314
|
-
if (isAutoSaving() && store.
|
|
314
|
+
if (isAutoSaving() && store.__?.[0]?.()) {
|
|
315
315
|
await save();
|
|
316
316
|
}
|
|
317
317
|
};
|
package/ui-react/index.js
CHANGED
|
@@ -113,6 +113,8 @@ const objIsEqual = (
|
|
|
113
113
|
);
|
|
114
114
|
};
|
|
115
115
|
|
|
116
|
+
const jsonString = JSON.stringify;
|
|
117
|
+
|
|
116
118
|
const {
|
|
117
119
|
PureComponent,
|
|
118
120
|
createContext,
|
|
@@ -352,6 +354,10 @@ const IS_EQUALS = [
|
|
|
352
354
|
(paramValues1, paramValues2) =>
|
|
353
355
|
objIsEqual(paramValues1, paramValues2, arrayOrValueEqual),
|
|
354
356
|
arrayOrValueEqual,
|
|
357
|
+
(thing1, thing2) =>
|
|
358
|
+
thing1 === thing2 ||
|
|
359
|
+
((isObject(thing1) || isArray(thing1)) &&
|
|
360
|
+
jsonString(thing1) === jsonString(thing2)),
|
|
355
361
|
];
|
|
356
362
|
const isEqual = (thing1, thing2) => thing1 === thing2;
|
|
357
363
|
const useCreate = (store, create, createDeps = EMPTY_ARRAY) => {
|
|
@@ -113,6 +113,8 @@ const objIsEqual = (
|
|
|
113
113
|
);
|
|
114
114
|
};
|
|
115
115
|
|
|
116
|
+
const jsonString = JSON.stringify;
|
|
117
|
+
|
|
116
118
|
const {
|
|
117
119
|
PureComponent,
|
|
118
120
|
createContext,
|
|
@@ -352,6 +354,10 @@ const IS_EQUALS = [
|
|
|
352
354
|
(paramValues1, paramValues2) =>
|
|
353
355
|
objIsEqual(paramValues1, paramValues2, arrayOrValueEqual),
|
|
354
356
|
arrayOrValueEqual,
|
|
357
|
+
(thing1, thing2) =>
|
|
358
|
+
thing1 === thing2 ||
|
|
359
|
+
((isObject(thing1) || isArray(thing1)) &&
|
|
360
|
+
jsonString(thing1) === jsonString(thing2)),
|
|
355
361
|
];
|
|
356
362
|
const isEqual = (thing1, thing2) => thing1 === thing2;
|
|
357
363
|
const useCreate = (store, create, createDeps = EMPTY_ARRAY) => {
|
package/ui-react-dom/index.js
CHANGED
|
@@ -10,6 +10,8 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
10
10
|
const BOOLEAN = getTypeOf(true);
|
|
11
11
|
const NUMBER = getTypeOf(0);
|
|
12
12
|
const FUNCTION = getTypeOf(getTypeOf);
|
|
13
|
+
const OBJECT = 'object';
|
|
14
|
+
const ARRAY = 'array';
|
|
13
15
|
const NULL = 'null';
|
|
14
16
|
const LISTENER = 'Listener';
|
|
15
17
|
const RESULT = 'Result';
|
|
@@ -111,6 +113,9 @@ const objIsEqual = (
|
|
|
111
113
|
);
|
|
112
114
|
};
|
|
113
115
|
|
|
116
|
+
const jsonString = JSON.stringify;
|
|
117
|
+
const jsonParse = JSON.parse;
|
|
118
|
+
|
|
114
119
|
const {
|
|
115
120
|
PureComponent,
|
|
116
121
|
createContext,
|
|
@@ -186,6 +191,10 @@ const IS_EQUALS = [
|
|
|
186
191
|
(paramValues1, paramValues2) =>
|
|
187
192
|
objIsEqual(paramValues1, paramValues2, arrayOrValueEqual),
|
|
188
193
|
arrayOrValueEqual,
|
|
194
|
+
(thing1, thing2) =>
|
|
195
|
+
thing1 === thing2 ||
|
|
196
|
+
((isObject(thing1) || isArray(thing1)) &&
|
|
197
|
+
jsonString(thing1) === jsonString(thing2)),
|
|
189
198
|
];
|
|
190
199
|
const isEqual = (thing1, thing2) => thing1 === thing2;
|
|
191
200
|
const addAndDelListener = (thing, listenable, ...args) => {
|
|
@@ -463,20 +472,37 @@ const getCellOrValueType = (cellOrValue) => {
|
|
|
463
472
|
if (isNull(cellOrValue)) {
|
|
464
473
|
return NULL;
|
|
465
474
|
}
|
|
475
|
+
if (isArray(cellOrValue)) {
|
|
476
|
+
return ARRAY;
|
|
477
|
+
}
|
|
478
|
+
if (isObject(cellOrValue)) {
|
|
479
|
+
return OBJECT;
|
|
480
|
+
}
|
|
466
481
|
const type = getTypeOf(cellOrValue);
|
|
467
482
|
return isTypeStringOrBoolean(type) ||
|
|
468
483
|
(type == NUMBER && isFiniteNumber(cellOrValue))
|
|
469
484
|
? type
|
|
470
485
|
: void 0;
|
|
471
486
|
};
|
|
472
|
-
const getTypeCase = (
|
|
487
|
+
const getTypeCase = (
|
|
488
|
+
type,
|
|
489
|
+
stringCase,
|
|
490
|
+
numberCase,
|
|
491
|
+
booleanCase,
|
|
492
|
+
objectCase,
|
|
493
|
+
arrayCase,
|
|
494
|
+
) =>
|
|
473
495
|
type == STRING
|
|
474
496
|
? stringCase
|
|
475
497
|
: type == NUMBER
|
|
476
498
|
? numberCase
|
|
477
499
|
: type == BOOLEAN
|
|
478
500
|
? booleanCase
|
|
479
|
-
:
|
|
501
|
+
: type == OBJECT
|
|
502
|
+
? objectCase
|
|
503
|
+
: type == ARRAY
|
|
504
|
+
? arrayCase
|
|
505
|
+
: null;
|
|
480
506
|
|
|
481
507
|
const useStoreCellComponentProps = (store, tableId) =>
|
|
482
508
|
useMemo(() => ({store, tableId}), [store, tableId]);
|
|
@@ -652,12 +678,20 @@ const EditableThing = ({
|
|
|
652
678
|
const [stringThing, setStringThing] = useState();
|
|
653
679
|
const [numberThing, setNumberThing] = useState();
|
|
654
680
|
const [booleanThing, setBooleanThing] = useState();
|
|
681
|
+
const [objectThingJson, setObjectThingJson] = useState(EMPTY_STRING);
|
|
682
|
+
const [arrayThingJson, setArrayThingJson] = useState(EMPTY_STRING);
|
|
655
683
|
if (currentThing !== thing) {
|
|
656
684
|
setThingType(getCellOrValueType(thing));
|
|
657
685
|
setCurrentThing(thing);
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
686
|
+
if (isObject(thing)) {
|
|
687
|
+
setObjectThingJson(jsonString(thing));
|
|
688
|
+
} else if (isArray(thing)) {
|
|
689
|
+
setArrayThingJson(jsonString(thing));
|
|
690
|
+
} else {
|
|
691
|
+
setStringThing(String(thing));
|
|
692
|
+
setNumberThing(Number(thing) || 0);
|
|
693
|
+
setBooleanThing(Boolean(thing));
|
|
694
|
+
}
|
|
661
695
|
}
|
|
662
696
|
const handleThingChange = useCallback(
|
|
663
697
|
(thing2, setTypedThing) => {
|
|
@@ -669,12 +703,21 @@ const EditableThing = ({
|
|
|
669
703
|
);
|
|
670
704
|
const handleTypeChange = useCallback(() => {
|
|
671
705
|
if (!hasSchema?.()) {
|
|
672
|
-
const nextType = getTypeCase(
|
|
706
|
+
const nextType = getTypeCase(
|
|
707
|
+
thingType,
|
|
708
|
+
NUMBER,
|
|
709
|
+
BOOLEAN,
|
|
710
|
+
OBJECT,
|
|
711
|
+
ARRAY,
|
|
712
|
+
STRING,
|
|
713
|
+
);
|
|
673
714
|
const thing2 = getTypeCase(
|
|
674
715
|
nextType,
|
|
675
716
|
stringThing,
|
|
676
717
|
numberThing,
|
|
677
718
|
booleanThing,
|
|
719
|
+
objectThingJson ? jsonParse(objectThingJson) : {},
|
|
720
|
+
arrayThingJson ? jsonParse(arrayThingJson) : [],
|
|
678
721
|
);
|
|
679
722
|
setThingType(nextType);
|
|
680
723
|
setCurrentThing(thing2);
|
|
@@ -686,6 +729,8 @@ const EditableThing = ({
|
|
|
686
729
|
stringThing,
|
|
687
730
|
numberThing,
|
|
688
731
|
booleanThing,
|
|
732
|
+
objectThingJson,
|
|
733
|
+
arrayThingJson,
|
|
689
734
|
thingType,
|
|
690
735
|
]);
|
|
691
736
|
const widget = getTypeCase(
|
|
@@ -737,6 +782,46 @@ const EditableThing = ({
|
|
|
737
782
|
},
|
|
738
783
|
thingType,
|
|
739
784
|
),
|
|
785
|
+
/* @__PURE__ */ jsx(
|
|
786
|
+
'textarea',
|
|
787
|
+
{
|
|
788
|
+
value: objectThingJson,
|
|
789
|
+
onChange: useCallback(
|
|
790
|
+
(event) => {
|
|
791
|
+
const str = event[CURRENT_TARGET][_VALUE];
|
|
792
|
+
setObjectThingJson(str);
|
|
793
|
+
try {
|
|
794
|
+
const parsed = jsonParse(str);
|
|
795
|
+
if (isObject(parsed)) {
|
|
796
|
+
onThingChange(parsed);
|
|
797
|
+
}
|
|
798
|
+
} catch {}
|
|
799
|
+
},
|
|
800
|
+
[onThingChange],
|
|
801
|
+
),
|
|
802
|
+
},
|
|
803
|
+
thingType,
|
|
804
|
+
),
|
|
805
|
+
/* @__PURE__ */ jsx(
|
|
806
|
+
'textarea',
|
|
807
|
+
{
|
|
808
|
+
value: arrayThingJson,
|
|
809
|
+
onChange: useCallback(
|
|
810
|
+
(event) => {
|
|
811
|
+
const str = event[CURRENT_TARGET][_VALUE];
|
|
812
|
+
setArrayThingJson(str);
|
|
813
|
+
try {
|
|
814
|
+
const parsed = jsonParse(str);
|
|
815
|
+
if (isArray(parsed)) {
|
|
816
|
+
onThingChange(parsed);
|
|
817
|
+
}
|
|
818
|
+
} catch {}
|
|
819
|
+
},
|
|
820
|
+
[onThingChange],
|
|
821
|
+
),
|
|
822
|
+
},
|
|
823
|
+
thingType,
|
|
824
|
+
),
|
|
740
825
|
);
|
|
741
826
|
return /* @__PURE__ */ jsxs('div', {
|
|
742
827
|
className,
|
|
@@ -10,6 +10,8 @@ const STRING = getTypeOf(EMPTY_STRING);
|
|
|
10
10
|
const BOOLEAN = getTypeOf(true);
|
|
11
11
|
const NUMBER = getTypeOf(0);
|
|
12
12
|
const FUNCTION = getTypeOf(getTypeOf);
|
|
13
|
+
const OBJECT = 'object';
|
|
14
|
+
const ARRAY = 'array';
|
|
13
15
|
const NULL = 'null';
|
|
14
16
|
const LISTENER = 'Listener';
|
|
15
17
|
const RESULT = 'Result';
|
|
@@ -111,6 +113,9 @@ const objIsEqual = (
|
|
|
111
113
|
);
|
|
112
114
|
};
|
|
113
115
|
|
|
116
|
+
const jsonString = JSON.stringify;
|
|
117
|
+
const jsonParse = JSON.parse;
|
|
118
|
+
|
|
114
119
|
const {
|
|
115
120
|
PureComponent,
|
|
116
121
|
createContext,
|
|
@@ -186,6 +191,10 @@ const IS_EQUALS = [
|
|
|
186
191
|
(paramValues1, paramValues2) =>
|
|
187
192
|
objIsEqual(paramValues1, paramValues2, arrayOrValueEqual),
|
|
188
193
|
arrayOrValueEqual,
|
|
194
|
+
(thing1, thing2) =>
|
|
195
|
+
thing1 === thing2 ||
|
|
196
|
+
((isObject(thing1) || isArray(thing1)) &&
|
|
197
|
+
jsonString(thing1) === jsonString(thing2)),
|
|
189
198
|
];
|
|
190
199
|
const isEqual = (thing1, thing2) => thing1 === thing2;
|
|
191
200
|
const addAndDelListener = (thing, listenable, ...args) => {
|
|
@@ -463,20 +472,37 @@ const getCellOrValueType = (cellOrValue) => {
|
|
|
463
472
|
if (isNull(cellOrValue)) {
|
|
464
473
|
return NULL;
|
|
465
474
|
}
|
|
475
|
+
if (isArray(cellOrValue)) {
|
|
476
|
+
return ARRAY;
|
|
477
|
+
}
|
|
478
|
+
if (isObject(cellOrValue)) {
|
|
479
|
+
return OBJECT;
|
|
480
|
+
}
|
|
466
481
|
const type = getTypeOf(cellOrValue);
|
|
467
482
|
return isTypeStringOrBoolean(type) ||
|
|
468
483
|
(type == NUMBER && isFiniteNumber(cellOrValue))
|
|
469
484
|
? type
|
|
470
485
|
: void 0;
|
|
471
486
|
};
|
|
472
|
-
const getTypeCase = (
|
|
487
|
+
const getTypeCase = (
|
|
488
|
+
type,
|
|
489
|
+
stringCase,
|
|
490
|
+
numberCase,
|
|
491
|
+
booleanCase,
|
|
492
|
+
objectCase,
|
|
493
|
+
arrayCase,
|
|
494
|
+
) =>
|
|
473
495
|
type == STRING
|
|
474
496
|
? stringCase
|
|
475
497
|
: type == NUMBER
|
|
476
498
|
? numberCase
|
|
477
499
|
: type == BOOLEAN
|
|
478
500
|
? booleanCase
|
|
479
|
-
:
|
|
501
|
+
: type == OBJECT
|
|
502
|
+
? objectCase
|
|
503
|
+
: type == ARRAY
|
|
504
|
+
? arrayCase
|
|
505
|
+
: null;
|
|
480
506
|
|
|
481
507
|
const useStoreCellComponentProps = (store, tableId) =>
|
|
482
508
|
useMemo(() => ({store, tableId}), [store, tableId]);
|
|
@@ -652,12 +678,20 @@ const EditableThing = ({
|
|
|
652
678
|
const [stringThing, setStringThing] = useState();
|
|
653
679
|
const [numberThing, setNumberThing] = useState();
|
|
654
680
|
const [booleanThing, setBooleanThing] = useState();
|
|
681
|
+
const [objectThingJson, setObjectThingJson] = useState(EMPTY_STRING);
|
|
682
|
+
const [arrayThingJson, setArrayThingJson] = useState(EMPTY_STRING);
|
|
655
683
|
if (currentThing !== thing) {
|
|
656
684
|
setThingType(getCellOrValueType(thing));
|
|
657
685
|
setCurrentThing(thing);
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
686
|
+
if (isObject(thing)) {
|
|
687
|
+
setObjectThingJson(jsonString(thing));
|
|
688
|
+
} else if (isArray(thing)) {
|
|
689
|
+
setArrayThingJson(jsonString(thing));
|
|
690
|
+
} else {
|
|
691
|
+
setStringThing(String(thing));
|
|
692
|
+
setNumberThing(Number(thing) || 0);
|
|
693
|
+
setBooleanThing(Boolean(thing));
|
|
694
|
+
}
|
|
661
695
|
}
|
|
662
696
|
const handleThingChange = useCallback(
|
|
663
697
|
(thing2, setTypedThing) => {
|
|
@@ -669,12 +703,21 @@ const EditableThing = ({
|
|
|
669
703
|
);
|
|
670
704
|
const handleTypeChange = useCallback(() => {
|
|
671
705
|
if (!hasSchema?.()) {
|
|
672
|
-
const nextType = getTypeCase(
|
|
706
|
+
const nextType = getTypeCase(
|
|
707
|
+
thingType,
|
|
708
|
+
NUMBER,
|
|
709
|
+
BOOLEAN,
|
|
710
|
+
OBJECT,
|
|
711
|
+
ARRAY,
|
|
712
|
+
STRING,
|
|
713
|
+
);
|
|
673
714
|
const thing2 = getTypeCase(
|
|
674
715
|
nextType,
|
|
675
716
|
stringThing,
|
|
676
717
|
numberThing,
|
|
677
718
|
booleanThing,
|
|
719
|
+
objectThingJson ? jsonParse(objectThingJson) : {},
|
|
720
|
+
arrayThingJson ? jsonParse(arrayThingJson) : [],
|
|
678
721
|
);
|
|
679
722
|
setThingType(nextType);
|
|
680
723
|
setCurrentThing(thing2);
|
|
@@ -686,6 +729,8 @@ const EditableThing = ({
|
|
|
686
729
|
stringThing,
|
|
687
730
|
numberThing,
|
|
688
731
|
booleanThing,
|
|
732
|
+
objectThingJson,
|
|
733
|
+
arrayThingJson,
|
|
689
734
|
thingType,
|
|
690
735
|
]);
|
|
691
736
|
const widget = getTypeCase(
|
|
@@ -737,6 +782,46 @@ const EditableThing = ({
|
|
|
737
782
|
},
|
|
738
783
|
thingType,
|
|
739
784
|
),
|
|
785
|
+
/* @__PURE__ */ jsx(
|
|
786
|
+
'textarea',
|
|
787
|
+
{
|
|
788
|
+
value: objectThingJson,
|
|
789
|
+
onChange: useCallback(
|
|
790
|
+
(event) => {
|
|
791
|
+
const str = event[CURRENT_TARGET][_VALUE];
|
|
792
|
+
setObjectThingJson(str);
|
|
793
|
+
try {
|
|
794
|
+
const parsed = jsonParse(str);
|
|
795
|
+
if (isObject(parsed)) {
|
|
796
|
+
onThingChange(parsed);
|
|
797
|
+
}
|
|
798
|
+
} catch {}
|
|
799
|
+
},
|
|
800
|
+
[onThingChange],
|
|
801
|
+
),
|
|
802
|
+
},
|
|
803
|
+
thingType,
|
|
804
|
+
),
|
|
805
|
+
/* @__PURE__ */ jsx(
|
|
806
|
+
'textarea',
|
|
807
|
+
{
|
|
808
|
+
value: arrayThingJson,
|
|
809
|
+
onChange: useCallback(
|
|
810
|
+
(event) => {
|
|
811
|
+
const str = event[CURRENT_TARGET][_VALUE];
|
|
812
|
+
setArrayThingJson(str);
|
|
813
|
+
try {
|
|
814
|
+
const parsed = jsonParse(str);
|
|
815
|
+
if (isArray(parsed)) {
|
|
816
|
+
onThingChange(parsed);
|
|
817
|
+
}
|
|
818
|
+
} catch {}
|
|
819
|
+
},
|
|
820
|
+
[onThingChange],
|
|
821
|
+
),
|
|
822
|
+
},
|
|
823
|
+
thingType,
|
|
824
|
+
),
|
|
740
825
|
);
|
|
741
826
|
return /* @__PURE__ */ jsxs('div', {
|
|
742
827
|
className,
|