on-zero 0.7.10 → 0.8.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/{readme.md → README.md} +172 -231
- package/dist/cjs/cli.cjs +5 -2
- package/dist/cjs/cli.native.js +5 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.cjs +2 -2
- package/dist/cjs/combineZeroClients.native.js +6 -6
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.cjs +30 -0
- package/dist/cjs/config.native.js +33 -0
- package/dist/cjs/config.native.js.map +1 -0
- package/dist/cjs/createPermissions.cjs +2 -2
- package/dist/cjs/createPermissions.native.js +17 -27
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +3 -3
- package/dist/cjs/createUseQuery.native.js +4 -4
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +4 -3
- package/dist/cjs/createUseQueryDirect.native.js +14 -18
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +29 -9
- package/dist/cjs/createZeroClient.connection.test.cjs +11 -0
- package/dist/cjs/createZeroClient.connection.test.native.js +14 -7
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +58 -32
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +90 -3
- package/dist/cjs/createZeroClient.recovery.test.native.js +109 -19
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +70 -17
- package/dist/cjs/generate-helpers.native.js +110 -23
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-layout.cjs +586 -0
- package/dist/cjs/generate-layout.native.js +1275 -0
- package/dist/cjs/generate-layout.native.js.map +1 -0
- package/dist/cjs/generate-lite.cjs +295 -27
- package/dist/cjs/generate-lite.native.js +854 -102
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +433 -41
- package/dist/cjs/generate-lite.test.native.js +446 -41
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +172 -94
- package/dist/cjs/generate.native.js +324 -148
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +362 -45
- package/dist/cjs/generate.test.native.js +374 -45
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.cjs +18 -0
- package/dist/cjs/helpers/NullToOptional.native.js +21 -0
- package/dist/cjs/helpers/NullToOptional.native.js.map +1 -0
- package/dist/cjs/helpers/asyncContext.cjs +128 -0
- package/dist/cjs/helpers/asyncContext.native.js +87 -0
- package/dist/cjs/helpers/asyncContext.native.js.map +1 -0
- package/dist/cjs/helpers/batchQuery.cjs +2 -2
- package/dist/cjs/helpers/batchQuery.native.js +2 -2
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +7 -4
- package/dist/cjs/helpers/createMutators.native.js +12 -9
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.native.js +2 -2
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.cjs +35 -0
- package/dist/cjs/helpers/ellipsis.native.js +38 -0
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -0
- package/dist/cjs/helpers/emitter.cjs +99 -0
- package/dist/cjs/helpers/emitter.native.js +125 -0
- package/dist/cjs/helpers/emitter.native.js.map +1 -0
- package/dist/cjs/helpers/ensure.cjs +33 -0
- package/dist/cjs/helpers/ensure.native.js +37 -0
- package/dist/cjs/helpers/ensure.native.js.map +1 -0
- package/dist/cjs/helpers/ensureLoggedIn.cjs +2 -2
- package/dist/cjs/helpers/ensureLoggedIn.native.js +3 -3
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.cjs +40 -0
- package/dist/cjs/helpers/errors.native.js +152 -0
- package/dist/cjs/helpers/errors.native.js.map +1 -0
- package/dist/cjs/helpers/getCurrentComponentStack.cjs +71 -0
- package/dist/cjs/helpers/getCurrentComponentStack.native.js +93 -0
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -0
- package/dist/cjs/helpers/globalValue.cjs +39 -0
- package/dist/cjs/helpers/globalValue.native.js +42 -0
- package/dist/cjs/helpers/globalValue.native.js.map +1 -0
- package/dist/cjs/helpers/mapObject.cjs +36 -0
- package/dist/cjs/helpers/mapObject.native.js +39 -0
- package/dist/cjs/helpers/mapObject.native.js.map +1 -0
- package/dist/cjs/helpers/mutationLifecycle.cjs +251 -0
- package/dist/cjs/helpers/mutationLifecycle.native.js +392 -0
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -0
- package/dist/cjs/helpers/mutationLifecycle.test.cjs +174 -0
- package/dist/cjs/helpers/mutationLifecycle.test.native.js +182 -0
- package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -0
- package/dist/cjs/helpers/mutatorContext.cjs +3 -3
- package/dist/cjs/helpers/mutatorContext.native.js +5 -5
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/platform.cjs +31 -0
- package/dist/cjs/helpers/platform.native.js +33 -0
- package/dist/cjs/helpers/platform.native.js.map +1 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +2 -2
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +7 -7
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.cjs +2 -2
- package/dist/cjs/helpers/queryContext.native.js +4 -4
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +14 -15
- package/dist/cjs/helpers/recoverZeroClient.native.js +26 -23
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +10 -8
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +17 -21
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/sleep.cjs +34 -0
- package/dist/cjs/helpers/sleep.native.js +39 -0
- package/dist/cjs/helpers/sleep.native.js.map +1 -0
- package/dist/cjs/helpers/time.cjs +47 -0
- package/dist/cjs/helpers/time.native.js +80 -0
- package/dist/cjs/helpers/time.native.js.map +1 -0
- package/dist/cjs/helpers/tuple.cjs +18 -0
- package/dist/cjs/helpers/tuple.native.js +21 -0
- package/dist/cjs/helpers/tuple.native.js.map +1 -0
- package/dist/cjs/helpers/useMutation.native.js +5 -5
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +2 -2
- package/dist/cjs/helpers/useZeroDebug.native.js +7 -8
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -1
- package/dist/cjs/index.native.js +8 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.cjs +16 -4
- package/dist/cjs/instanceRegistry.native.js +56 -6
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/multi.cjs +34 -13
- package/dist/cjs/multi.native.js +39 -17
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.cjs +6 -2
- package/dist/cjs/multiInstance.test.native.js +13 -9
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js +10 -10
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +85 -36
- package/dist/cjs/multiPartition.test.native.js +102 -39
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +2 -2
- package/dist/cjs/mutations.native.js +4 -4
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.native.js +3 -3
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.cjs +3 -3
- package/dist/cjs/provideZero.hydration.test.native.js +4 -4
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/run.cjs +1 -1
- package/dist/cjs/run.native.js +3 -3
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.cjs +20 -16
- package/dist/cjs/server.native.js +50 -57
- package/dist/cjs/server.native.js.map +1 -1
- package/dist/cjs/server.test.cjs +129 -6
- package/dist/cjs/server.test.native.js +141 -10
- package/dist/cjs/server.test.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js +3 -3
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.cjs +2 -2
- package/dist/cjs/state.native.js +10 -10
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js +3 -3
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.cjs +3 -3
- package/dist/cjs/useQuery.empty.test.native.js +6 -6
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js +2 -2
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +7 -8
- package/dist/cjs/vite-plugin.native.js +11 -11
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.cjs +3 -3
- package/dist/cjs/where.native.js +4 -4
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/cli.mjs +6 -3
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +6 -3
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/combineZeroClients.mjs +1 -1
- package/dist/esm/combineZeroClients.mjs.map +1 -1
- package/dist/esm/combineZeroClients.native.js +5 -5
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/config.mjs +5 -0
- package/dist/esm/config.mjs.map +1 -0
- package/dist/esm/config.native.js +5 -0
- package/dist/esm/config.native.js.map +1 -0
- package/dist/esm/createPermissions.mjs +1 -1
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +16 -26
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +2 -2
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +3 -3
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +2 -1
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +12 -16
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.connection.test.mjs +11 -0
- package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js +14 -7
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +25 -5
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +54 -28
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +90 -3
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +109 -19
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +70 -18
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +110 -24
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-layout.mjs +560 -0
- package/dist/esm/generate-layout.mjs.map +1 -0
- package/dist/esm/generate-layout.native.js +1246 -0
- package/dist/esm/generate-layout.native.js.map +1 -0
- package/dist/esm/generate-lite.mjs +296 -28
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +855 -103
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +434 -42
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +447 -42
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +172 -96
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +324 -150
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +366 -49
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +378 -49
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/NullToOptional.mjs +2 -0
- package/dist/esm/helpers/NullToOptional.mjs.map +1 -0
- package/dist/esm/helpers/NullToOptional.native.js +2 -0
- package/dist/esm/helpers/NullToOptional.native.js.map +1 -0
- package/dist/esm/helpers/asyncContext.mjs +102 -0
- package/dist/esm/helpers/asyncContext.mjs.map +1 -0
- package/dist/esm/helpers/asyncContext.native.js +58 -0
- package/dist/esm/helpers/asyncContext.native.js.map +1 -0
- package/dist/esm/helpers/batchQuery.mjs +1 -1
- package/dist/esm/helpers/batchQuery.native.js +1 -1
- package/dist/esm/helpers/createMutators.mjs +5 -2
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +10 -7
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.test.native.js +2 -2
- package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
- package/dist/esm/helpers/ellipsis.mjs +10 -0
- package/dist/esm/helpers/ellipsis.mjs.map +1 -0
- package/dist/esm/helpers/ellipsis.native.js +10 -0
- package/dist/esm/helpers/ellipsis.native.js.map +1 -0
- package/dist/esm/helpers/emitter.mjs +72 -0
- package/dist/esm/helpers/emitter.mjs.map +1 -0
- package/dist/esm/helpers/emitter.native.js +95 -0
- package/dist/esm/helpers/emitter.native.js.map +1 -0
- package/dist/esm/helpers/ensure.mjs +8 -0
- package/dist/esm/helpers/ensure.mjs.map +1 -0
- package/dist/esm/helpers/ensure.native.js +9 -0
- package/dist/esm/helpers/ensure.native.js.map +1 -0
- package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/errors.mjs +14 -0
- package/dist/esm/helpers/errors.mjs.map +1 -0
- package/dist/esm/helpers/errors.native.js +123 -0
- package/dist/esm/helpers/errors.native.js.map +1 -0
- package/dist/esm/helpers/getCurrentComponentStack.mjs +35 -0
- package/dist/esm/helpers/getCurrentComponentStack.mjs.map +1 -0
- package/dist/esm/helpers/getCurrentComponentStack.native.js +54 -0
- package/dist/esm/helpers/getCurrentComponentStack.native.js.map +1 -0
- package/dist/esm/helpers/globalValue.mjs +14 -0
- package/dist/esm/helpers/globalValue.mjs.map +1 -0
- package/dist/esm/helpers/globalValue.native.js +14 -0
- package/dist/esm/helpers/globalValue.native.js.map +1 -0
- package/dist/esm/helpers/mapObject.mjs +11 -0
- package/dist/esm/helpers/mapObject.mjs.map +1 -0
- package/dist/esm/helpers/mapObject.native.js +11 -0
- package/dist/esm/helpers/mapObject.native.js.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.mjs +221 -0
- package/dist/esm/helpers/mutationLifecycle.mjs.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.native.js +359 -0
- package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.test.mjs +175 -0
- package/dist/esm/helpers/mutationLifecycle.test.mjs.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.test.native.js +180 -0
- package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -0
- package/dist/esm/helpers/mutatorContext.mjs +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +4 -4
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/platform.mjs +5 -0
- package/dist/esm/helpers/platform.mjs.map +1 -0
- package/dist/esm/helpers/platform.native.js +4 -0
- package/dist/esm/helpers/platform.native.js.map +1 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +6 -6
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.mjs +1 -1
- package/dist/esm/helpers/queryContext.native.js +3 -3
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +14 -15
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +26 -23
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +8 -6
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +15 -19
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/helpers/sleep.mjs +9 -0
- package/dist/esm/helpers/sleep.mjs.map +1 -0
- package/dist/esm/helpers/sleep.native.js +11 -0
- package/dist/esm/helpers/sleep.native.js.map +1 -0
- package/dist/esm/helpers/time.mjs +22 -0
- package/dist/esm/helpers/time.mjs.map +1 -0
- package/dist/esm/helpers/time.native.js +52 -0
- package/dist/esm/helpers/time.native.js.map +1 -0
- package/dist/esm/helpers/tuple.mjs +2 -0
- package/dist/esm/helpers/tuple.mjs.map +1 -0
- package/dist/esm/helpers/tuple.native.js +2 -0
- package/dist/esm/helpers/tuple.native.js.map +1 -0
- package/dist/esm/helpers/useMutation.native.js +5 -5
- package/dist/esm/helpers/useMutation.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.test.native.js +1 -1
- package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +6 -7
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.mjs +13 -2
- package/dist/esm/instanceRegistry.mjs.map +1 -1
- package/dist/esm/instanceRegistry.native.js +53 -4
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/multi.mjs +33 -12
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +38 -16
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.mjs +5 -1
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +12 -8
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +10 -10
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/multiPartition.test.mjs +86 -37
- package/dist/esm/multiPartition.test.mjs.map +1 -1
- package/dist/esm/multiPartition.test.native.js +103 -40
- package/dist/esm/multiPartition.test.native.js.map +1 -1
- package/dist/esm/mutations.mjs +1 -1
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +3 -3
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.native.js +3 -3
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/dist/esm/provideZero.hydration.test.mjs +1 -1
- package/dist/esm/provideZero.hydration.test.mjs.map +1 -1
- package/dist/esm/provideZero.hydration.test.native.js +2 -2
- package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
- package/dist/esm/run.mjs +1 -1
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +3 -3
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/server.mjs +20 -15
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/server.native.js +50 -56
- package/dist/esm/server.native.js.map +1 -1
- package/dist/esm/server.test.mjs +130 -7
- package/dist/esm/server.test.mjs.map +1 -1
- package/dist/esm/server.test.native.js +142 -11
- package/dist/esm/server.test.native.js.map +1 -1
- package/dist/esm/serverWhere.test.mjs.map +1 -1
- package/dist/esm/serverWhere.test.native.js +3 -3
- package/dist/esm/serverWhere.test.native.js.map +1 -1
- package/dist/esm/state.mjs +1 -1
- package/dist/esm/state.mjs.map +1 -1
- package/dist/esm/state.native.js +9 -9
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/usePermission.test.native.js +3 -3
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.mjs +1 -1
- package/dist/esm/useQuery.empty.test.mjs.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +4 -4
- package/dist/esm/useQuery.empty.test.native.js.map +1 -1
- package/dist/esm/useQuery.ssr.test.native.js +2 -2
- package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +7 -8
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +11 -11
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.mjs +1 -1
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +2 -2
- package/dist/esm/where.native.js.map +1 -1
- package/package.json +18 -6
- package/src/cli.ts +11 -3
- package/src/combineZeroClients.tsx +18 -10
- package/src/config.ts +72 -0
- package/src/createPermissions.ts +3 -4
- package/src/createUseQuery.tsx +8 -8
- package/src/createUseQueryDirect.tsx +11 -10
- package/src/createZeroClient.authData.test.tsx +1 -1
- package/src/createZeroClient.connection.test.tsx +13 -2
- package/src/createZeroClient.recovery.test.tsx +100 -4
- package/src/createZeroClient.tsx +87 -30
- package/src/generate-helpers.ts +108 -31
- package/src/generate-layout.ts +841 -0
- package/src/generate-lite.test.ts +421 -42
- package/src/generate-lite.ts +479 -43
- package/src/generate.test.ts +552 -90
- package/src/generate.ts +360 -163
- package/src/helpers/NullToOptional.ts +5 -0
- package/src/helpers/asyncContext.native.ts +90 -0
- package/src/helpers/asyncContext.ts +159 -0
- package/src/helpers/batchQuery.ts +2 -2
- package/src/helpers/createMutators.ts +11 -8
- package/src/helpers/ellipsis.ts +9 -0
- package/src/helpers/emitter.tsx +106 -0
- package/src/helpers/ensure.ts +10 -0
- package/src/helpers/ensureLoggedIn.ts +1 -2
- package/src/helpers/errors.ts +13 -0
- package/src/helpers/getCurrentComponentStack.ts +56 -0
- package/src/helpers/globalValue.ts +40 -0
- package/src/helpers/mapObject.ts +14 -0
- package/src/helpers/mutationLifecycle.test.ts +180 -0
- package/src/helpers/mutationLifecycle.ts +313 -0
- package/src/helpers/mutatorContext.ts +3 -3
- package/src/helpers/platform.native.ts +2 -0
- package/src/helpers/platform.ts +16 -0
- package/src/helpers/prettyFormatZeroQuery.ts +2 -2
- package/src/helpers/queryContext.ts +2 -2
- package/src/helpers/recoverZeroClient.test.ts +23 -21
- package/src/helpers/recoverZeroClient.ts +56 -49
- package/src/helpers/sleep.ts +8 -0
- package/src/helpers/time.ts +51 -0
- package/src/helpers/tuple.ts +1 -0
- package/src/helpers/useMutation.tsx +3 -3
- package/src/helpers/useZeroDebug.ts +3 -3
- package/src/index.ts +13 -1
- package/src/instanceRegistry.ts +19 -6
- package/src/multi.ts +75 -31
- package/src/multiInstance.test.tsx +31 -13
- package/src/multiInstanceNested.test.tsx +2 -2
- package/src/multiPartition.test.ts +62 -27
- package/src/mutations.ts +10 -10
- package/src/provideZero.hydration.test.tsx +1 -1
- package/src/resolveQuery.ts +2 -2
- package/src/run.ts +7 -7
- package/src/server.test.ts +117 -18
- package/src/server.ts +70 -43
- package/src/serverWhere.ts +2 -2
- package/src/state.ts +2 -2
- package/src/types.ts +47 -6
- package/src/useQuery.empty.test.tsx +3 -3
- package/src/useQuery.ssr.test.ts +1 -1
- package/src/vite-plugin.ts +12 -9
- package/src/where.ts +6 -7
- package/src/zeroRunner.ts +2 -2
- package/types/combineZeroClients.d.ts +11 -5
- package/types/combineZeroClients.d.ts.map +1 -1
- package/types/config.d.ts +62 -0
- package/types/config.d.ts.map +1 -0
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts +1 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +22 -12
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroClient.recovery.test.d.ts.map +1 -1
- package/types/generate-helpers.d.ts +17 -2
- package/types/generate-helpers.d.ts.map +1 -1
- package/types/generate-layout.d.ts +26 -0
- package/types/generate-layout.d.ts.map +1 -0
- package/types/generate-lite.d.ts +29 -1
- package/types/generate-lite.d.ts.map +1 -1
- package/types/generate.d.ts +20 -0
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/NullToOptional.d.ts +6 -0
- package/types/helpers/NullToOptional.d.ts.map +1 -0
- package/types/helpers/asyncContext.d.ts +15 -0
- package/types/helpers/asyncContext.d.ts.map +1 -0
- package/types/helpers/asyncContext.native.d.ts +8 -0
- package/types/helpers/asyncContext.native.d.ts.map +1 -0
- package/types/helpers/createMutators.d.ts +2 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/helpers/ellipsis.d.ts +2 -0
- package/types/helpers/ellipsis.d.ts.map +1 -0
- package/types/helpers/emitter.d.ts +21 -0
- package/types/helpers/emitter.d.ts.map +1 -0
- package/types/helpers/ensure.d.ts +2 -0
- package/types/helpers/ensure.d.ts.map +1 -0
- package/types/helpers/ensureLoggedIn.d.ts.map +1 -1
- package/types/helpers/errors.d.ts +7 -0
- package/types/helpers/errors.d.ts.map +1 -0
- package/types/helpers/getCurrentComponentStack.d.ts +2 -0
- package/types/helpers/getCurrentComponentStack.d.ts.map +1 -0
- package/types/helpers/globalValue.d.ts +23 -0
- package/types/helpers/globalValue.d.ts.map +1 -0
- package/types/helpers/mapObject.d.ts +4 -0
- package/types/helpers/mapObject.d.ts.map +1 -0
- package/types/helpers/mutationLifecycle.d.ts +44 -0
- package/types/helpers/mutationLifecycle.d.ts.map +1 -0
- package/types/helpers/mutationLifecycle.test.d.ts +2 -0
- package/types/helpers/mutationLifecycle.test.d.ts.map +1 -0
- package/types/helpers/platform.d.ts +3 -0
- package/types/helpers/platform.d.ts.map +1 -0
- package/types/helpers/platform.native.d.ts +3 -0
- package/types/helpers/platform.native.d.ts.map +1 -0
- package/types/helpers/recoverZeroClient.d.ts +13 -9
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/helpers/sleep.d.ts +2 -0
- package/types/helpers/sleep.d.ts.map +1 -0
- package/types/helpers/time.d.ts +28 -0
- package/types/helpers/time.d.ts.map +1 -0
- package/types/helpers/tuple.d.ts +2 -0
- package/types/helpers/tuple.d.ts.map +1 -0
- package/types/index.d.ts +3 -1
- package/types/index.d.ts.map +1 -1
- package/types/instanceRegistry.d.ts +1 -0
- package/types/instanceRegistry.d.ts.map +1 -1
- package/types/multi.d.ts +23 -1
- package/types/multi.d.ts.map +1 -1
- package/types/mutations.d.ts +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/types/run.d.ts.map +1 -1
- package/types/server.d.ts +12 -8
- package/types/server.d.ts.map +1 -1
- package/types/state.d.ts +1 -1
- package/types/state.d.ts.map +1 -1
- package/types/types.d.ts +23 -1
- package/types/types.d.ts.map +1 -1
- package/types/vite-plugin.d.ts.map +1 -1
- package/types/where.d.ts.map +1 -1
- package/lint/ssr-guards.js +0 -165
- package/test-fixtures/server-return-types.ts +0 -58
- package/test-fixtures/tsconfig.json +0 -13
- package/tsconfig.json +0 -26
- package/vitest.config.ts +0 -8
package/dist/esm/vite-plugin.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { isAbsolute, relative, resolve } from "node:path";
|
|
2
2
|
import { generate } from "./generate.mjs";
|
|
3
|
-
function createOnZeroHmrPlugin(hmrInclude = []) {
|
|
4
|
-
const
|
|
3
|
+
function createOnZeroHmrPlugin(hmrInclude = [], dataDir = "src/data") {
|
|
4
|
+
const normalizedDataDir = `/${dataDir.replaceAll("\\", "/").replace(/^\/+|\/+$/g, "")}/`;
|
|
5
|
+
const hmrPaths = [normalizedDataDir, ...hmrInclude];
|
|
5
6
|
return {
|
|
6
7
|
name: "on-zero:hmr",
|
|
7
8
|
apply: "serve",
|
|
@@ -34,8 +35,7 @@ function isWithinDirectory(file, dir) {
|
|
|
34
35
|
function onZeroPlugin(options = {}) {
|
|
35
36
|
const dir = options.dir ?? "src/data";
|
|
36
37
|
let dataDir;
|
|
37
|
-
let
|
|
38
|
-
let queriesDir;
|
|
38
|
+
let databaseDir;
|
|
39
39
|
const runGenerate = silent => generate({
|
|
40
40
|
dir: dataDir,
|
|
41
41
|
after: options.after,
|
|
@@ -47,8 +47,7 @@ function onZeroPlugin(options = {}) {
|
|
|
47
47
|
apply: "serve",
|
|
48
48
|
configResolved(config) {
|
|
49
49
|
dataDir = resolve(config.root, dir);
|
|
50
|
-
|
|
51
|
-
queriesDir = resolve(dataDir, "queries");
|
|
50
|
+
databaseDir = resolve(dataDir, "../database");
|
|
52
51
|
},
|
|
53
52
|
async buildStart() {
|
|
54
53
|
if (!options.disableGenerate) await runGenerate(false);
|
|
@@ -57,7 +56,7 @@ function onZeroPlugin(options = {}) {
|
|
|
57
56
|
if (options.disableGenerate) return;
|
|
58
57
|
const handler = async file => {
|
|
59
58
|
if (!/\.tsx?$/.test(file)) return;
|
|
60
|
-
if (isWithinDirectory(file,
|
|
59
|
+
if (isWithinDirectory(file, dataDir) && !isWithinDirectory(file, resolve(dataDir, "generated")) || isWithinDirectory(file, databaseDir)) {
|
|
61
60
|
await runGenerate(false);
|
|
62
61
|
}
|
|
63
62
|
};
|
|
@@ -74,7 +73,7 @@ function onZeroPlugin(options = {}) {
|
|
|
74
73
|
async buildStart() {
|
|
75
74
|
if (!options.disableGenerate) await runGenerate(true);
|
|
76
75
|
}
|
|
77
|
-
}, createOnZeroHmrPlugin(options.hmrInclude)];
|
|
76
|
+
}, createOnZeroHmrPlugin(options.hmrInclude, dir)];
|
|
78
77
|
}
|
|
79
78
|
const onZeroHmrPlugin = options => {
|
|
80
79
|
return createOnZeroHmrPlugin(options?.include);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","transformed","
|
|
1
|
+
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","dataDir","normalizedDataDir","replaceAll","replace","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","transformed","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","databaseDir","runGenerate","silent","after","force","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","watcher","on","onZeroHmrPlugin","include","vite_plugin_default"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { isAbsolute, relative, resolve } from "path";
|
|
2
2
|
import { generate } from "./generate.native.js";
|
|
3
3
|
function createOnZeroHmrPlugin() {
|
|
4
|
-
var hmrInclude = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []
|
|
5
|
-
|
|
4
|
+
var hmrInclude = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [],
|
|
5
|
+
dataDir = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "src/data";
|
|
6
|
+
var normalizedDataDir = `/${dataDir.replaceAll("\\", "/").replace(/^\/+|\/+$/g, "")}/`;
|
|
7
|
+
var hmrPaths = [normalizedDataDir, ...hmrInclude];
|
|
6
8
|
return {
|
|
7
9
|
name: "on-zero:hmr",
|
|
8
10
|
apply: "serve",
|
|
@@ -39,9 +41,8 @@ function onZeroPlugin() {
|
|
|
39
41
|
var _options_dir;
|
|
40
42
|
var dir = (_options_dir = options.dir) !== null && _options_dir !== void 0 ? _options_dir : "src/data";
|
|
41
43
|
var dataDir;
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var runGenerate = function (silent) {
|
|
44
|
+
var databaseDir;
|
|
45
|
+
var runGenerate = function runGenerate2(silent) {
|
|
45
46
|
return generate({
|
|
46
47
|
dir: dataDir,
|
|
47
48
|
after: options.after,
|
|
@@ -54,17 +55,16 @@ function onZeroPlugin() {
|
|
|
54
55
|
apply: "serve",
|
|
55
56
|
configResolved(config) {
|
|
56
57
|
dataDir = resolve(config.root, dir);
|
|
57
|
-
|
|
58
|
-
queriesDir = resolve(dataDir, "queries");
|
|
58
|
+
databaseDir = resolve(dataDir, "../database");
|
|
59
59
|
},
|
|
60
60
|
async buildStart() {
|
|
61
61
|
if (!options.disableGenerate) await runGenerate(false);
|
|
62
62
|
},
|
|
63
63
|
configureServer(server) {
|
|
64
64
|
if (options.disableGenerate) return;
|
|
65
|
-
var handler = async function (file) {
|
|
65
|
+
var handler = async function handler2(file) {
|
|
66
66
|
if (!/\.tsx?$/.test(file)) return;
|
|
67
|
-
if (isWithinDirectory(file,
|
|
67
|
+
if (isWithinDirectory(file, dataDir) && !isWithinDirectory(file, resolve(dataDir, "generated")) || isWithinDirectory(file, databaseDir)) {
|
|
68
68
|
await runGenerate(false);
|
|
69
69
|
}
|
|
70
70
|
};
|
|
@@ -81,9 +81,9 @@ function onZeroPlugin() {
|
|
|
81
81
|
async buildStart() {
|
|
82
82
|
if (!options.disableGenerate) await runGenerate(true);
|
|
83
83
|
}
|
|
84
|
-
}, createOnZeroHmrPlugin(options.hmrInclude)];
|
|
84
|
+
}, createOnZeroHmrPlugin(options.hmrInclude, dir)];
|
|
85
85
|
}
|
|
86
|
-
var onZeroHmrPlugin = function (options) {
|
|
86
|
+
var onZeroHmrPlugin = function onZeroHmrPlugin2(options) {
|
|
87
87
|
return createOnZeroHmrPlugin(options === null || options === void 0 ? void 0 : options.include);
|
|
88
88
|
};
|
|
89
89
|
var vite_plugin_default = onZeroPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","arguments","length","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","transformed","
|
|
1
|
+
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","arguments","length","dataDir","normalizedDataDir","replaceAll","replace","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","transformed","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","_options_dir","databaseDir","runGenerate","runGenerate2","silent","after","force","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","handler2","watcher","on"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/where.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { globalValue } from "@take-out/helpers";
|
|
2
1
|
import { getAuth } from "./helpers/getAuth.mjs";
|
|
2
|
+
import { globalValue } from "./helpers/globalValue.mjs";
|
|
3
3
|
import { getEnvironment } from "./state.mjs";
|
|
4
4
|
let _evaluatingPermission = false;
|
|
5
5
|
function setEvaluatingPermission(value) {
|
package/dist/esm/where.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getAuth","globalValue","getEnvironment","_evaluatingPermission","setEvaluatingPermission","value","where","a","b","isServerOnly","whereFn","wrappedWhereFn","b2","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","getWhereTableName","where2","get","getRawWhere"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,WAAA,QAAmB;AAC5B,SAASC,cAAA,QAAsB;AAO/B,IAAIC,qBAAA,GAAwB;AAErB,SAASC,wBAAwBC,KAAA,EAAgB;EACtDF,qBAAA,GAAwBE,KAAA;AAC1B;AAYO,SAASC,MACdC,CAAA,EACAC,CAAA,EACAC,YAAA,GAAe,OACc;EAC7B,MAAMC,OAAA,GAAWF,CAAA,IAAKD,CAAA;EAEtB,MAAMI,cAAA,GAAkBA,CAACJ,EAAA,EAAgCK,EAAA,GAAIZ,OAAA,CAAQ,MAAM;IACzE,IAAIE,cAAA,CAAe,MAAM,YAAYO,YAAA,IAAgB,CAACN,qBAAA,EAAuB;MAE3E,OAAOI,EAAA,CAAEM,GAAA,CAAI;IACf;IAEA,MAAMC,MAAA,GAASJ,OAAA,CAAQH,EAAA,EAAGK,EAAC;IAC3B,IAAI,OAAOE,MAAA,KAAW,WAAW;MAC/B,IAAIA,MAAA,EAAQ;QACV,OAAOP,EAAA,CAAEQ,MAAA,CAAO,GAAG,KAAK,CAAC;MAC3B,OAAO;QACL,OAAOR,EAAA,CAAEQ,MAAA,CAAO,GAAG,KAAK,CAAC;MAC3B;IACF;IACA,OAAOD,MAAA;EACT;EAGAE,kBAAA,CAAmBC,GAAA,CAAIN,cAAA,EAAgBD,OAAO;EAE9C,IAAIF,CAAA,EAAG;IACLU,iBAAA,CAAkBD,GAAA,CAAIN,cAAA,EAAgBJ,CAAU;EAClD;EAEA,OAAOI,cAAA;AACT;AAIA,MAAMO,iBAAA,GAAoBjB,WAAA,CACxB,sBACA,MAAM,mBAAIkB,OAAA,CAA0B,CACtC;AAEA,MAAMH,kBAAA,GAAqBf,WAAA,CACzB,qBACA,MAAM,mBAAIkB,OAAA,CAAsB,CAClC;AAEO,SAASC,kBAAkBC,MAAA,EAAc;EAC9C,OAAOH,iBAAA,CAAkBI,GAAA,CAAIhB,MAAK;AACpC;AAGO,SAASiB,YAAYF,MAAA,EAAiC;EAC3D,OAAOL,kBAAA,CAAmBM,GAAA,CAAIhB,MAAK;AACrC","ignoreList":[]}
|
package/dist/esm/where.native.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { globalValue } from "@take-out/helpers";
|
|
2
1
|
import { getAuth } from "./helpers/getAuth.native.js";
|
|
2
|
+
import { globalValue } from "./helpers/globalValue.native.js";
|
|
3
3
|
import { getEnvironment } from "./state.native.js";
|
|
4
4
|
var _evaluatingPermission = false;
|
|
5
5
|
function setEvaluatingPermission(value) {
|
|
@@ -8,7 +8,7 @@ function setEvaluatingPermission(value) {
|
|
|
8
8
|
function where(a, b) {
|
|
9
9
|
var isServerOnly = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
|
10
10
|
var whereFn = b || a;
|
|
11
|
-
var wrappedWhereFn = function (a2) {
|
|
11
|
+
var wrappedWhereFn = function wrappedWhereFn2(a2) {
|
|
12
12
|
var _$b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getAuth();
|
|
13
13
|
if (getEnvironment() !== "server" && isServerOnly && !_evaluatingPermission) {
|
|
14
14
|
return a2.and();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getAuth","globalValue","getEnvironment","_evaluatingPermission","setEvaluatingPermission","value","where","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","wrappedWhereFn2","a2","_$b","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","getWhereTableName","where2","get","getRawWhere"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,WAAA,QAAmB;AAC5B,SAASC,cAAA,QAAsB;AAO/B,IAAIC,qBAAA,GAAwB;AAErB,SAASC,wBAAwBC,KAAA,EAAgB;EACtDF,qBAAA,GAAwBE,KAAA;AAC1B;AAYO,SAASC,MACdC,CAAA,EACAC,CAAA,EACA;EAEA,IAAAC,YAAiB,GAAAC,SAAK,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAEtB,IAAAE,OAAM,GAAAJ,CAAA,IAAAD,CAAA;EACJ,IAAAM,cAAI,GAAe,SAAMC,eAAYA,CAAAC,EAAA;IAEnC,IAAAC,GAAA,GAAON,SAAM,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,MAAAV,OAAA;IACf,IAAAE,cAAA,mBAAAO,YAAA,KAAAN,qBAAA;MAEA,OAAMY,EAAA,CAAAE,GAAS;IACf;IACE,IAAAC,MAAI,GAAAN,OAAQ,CAAAG,EAAA,EAAAC,GAAA;IACV,WAAOT,MAAE,KAAO,SAAS;MAC3B,IAAAW,MAAO;QACL,OAAOX,EAAA,CAAEY,MAAA,CAAO,GAAG,KAAK,CAAC;MAC3B;QACF,OAAAJ,EAAA,CAAAI,MAAA;MACA;IACF;IAGA,OAAAD,MAAA;EAEA;EACEE,kBAAA,CAAAC,GAAkB,CAAAR,cAAI,EAAAD,OAA0B;EAClD,IAAAJ,CAAA;IAEAc,iBAAO,CAAAD,GAAA,CAAAR,cAAA,EAAAN,CAAA;EACT;EAIA,OAAMM,cAAA;AAAoB;AACxB,IACAS,iBAAM,GAAArB,WAAI,CAA0B;EACtC,0BAAAsB,OAAA;AAEA;AAA2B,IACzBH,kBAAA,GAAAnB,WAAA;EACA,OAAM,mBAAIsB,OAAsB;AAClC;AAEO,SAASC,kBAAkBC,MAAA,EAAc;EAC9C,OAAOH,iBAAA,CAAkBI,GAAA,CAAIpB,MAAK;AACpC;AAGO,SAASqB,YAAYF,MAAA,EAAiC;EAC3D,OAAOL,kBAAA,CAAmBM,GAAA,CAAIpB,MAAK;AACrC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
|
+
"files": [
|
|
7
|
+
"dist",
|
|
8
|
+
"types",
|
|
9
|
+
"src",
|
|
10
|
+
"cli.cjs"
|
|
11
|
+
],
|
|
6
12
|
"source": "src/index.ts",
|
|
7
13
|
"main": "dist/cjs",
|
|
8
14
|
"module": "dist/esm",
|
|
@@ -16,12 +22,12 @@
|
|
|
16
22
|
},
|
|
17
23
|
"repository": {
|
|
18
24
|
"type": "git",
|
|
19
|
-
"url": "https://github.com/
|
|
25
|
+
"url": "git+https://github.com/natew/orez.git",
|
|
20
26
|
"directory": "packages/on-zero"
|
|
21
27
|
},
|
|
22
|
-
"homepage": "https://github.com/
|
|
28
|
+
"homepage": "https://github.com/natew/orez/tree/main/packages/on-zero#readme",
|
|
23
29
|
"bugs": {
|
|
24
|
-
"url": "https://github.com/
|
|
30
|
+
"url": "https://github.com/natew/orez/issues"
|
|
25
31
|
},
|
|
26
32
|
"keywords": [
|
|
27
33
|
"zero",
|
|
@@ -80,18 +86,24 @@
|
|
|
80
86
|
"types": "./types/generate-lite.d.ts",
|
|
81
87
|
"import": "./dist/esm/generate-lite.mjs",
|
|
82
88
|
"require": "./dist/cjs/generate-lite.cjs"
|
|
89
|
+
},
|
|
90
|
+
"./generate": {
|
|
91
|
+
"types": "./types/generate.d.ts",
|
|
92
|
+
"import": "./dist/esm/generate.mjs",
|
|
93
|
+
"require": "./dist/cjs/generate.cjs"
|
|
83
94
|
}
|
|
84
95
|
},
|
|
85
96
|
"dependencies": {
|
|
86
|
-
"@
|
|
97
|
+
"@rocicorp/logger": "6.2.0",
|
|
87
98
|
"chokidar": "^4.0.3",
|
|
88
99
|
"citty": "^0.1.6",
|
|
100
|
+
"dequal": "^2.0.3",
|
|
89
101
|
"valibot": "^1.1.0"
|
|
90
102
|
},
|
|
91
103
|
"peerDependencies": {
|
|
92
104
|
"@rocicorp/zero": ">=1.7.0",
|
|
93
105
|
"drizzle-orm": ">=1.0.0-beta.0 <2",
|
|
94
|
-
"drizzle-zero-sqlite": "^0.
|
|
106
|
+
"drizzle-zero-sqlite": "^0.6.0",
|
|
95
107
|
"react": "*",
|
|
96
108
|
"react-native": "*"
|
|
97
109
|
},
|
package/src/cli.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { resolve } from 'node:path'
|
|
2
|
+
import { basename, dirname, resolve } from 'node:path'
|
|
3
3
|
|
|
4
4
|
import { defineCommand, runMain } from 'citty'
|
|
5
5
|
|
|
@@ -13,7 +13,8 @@ const generateCommand = defineCommand({
|
|
|
13
13
|
args: {
|
|
14
14
|
dir: {
|
|
15
15
|
type: 'positional',
|
|
16
|
-
description:
|
|
16
|
+
description:
|
|
17
|
+
'Data directory or explicit on-zero.config.ts path (defaults to src/data)',
|
|
17
18
|
required: false,
|
|
18
19
|
default: 'src/data',
|
|
19
20
|
},
|
|
@@ -37,7 +38,14 @@ const generateCommand = defineCommand({
|
|
|
37
38
|
},
|
|
38
39
|
|
|
39
40
|
async run({ args }) {
|
|
40
|
-
const
|
|
41
|
+
const target = resolve(args.dir)
|
|
42
|
+
const config = basename(target) === 'on-zero.config.ts' ? target : undefined
|
|
43
|
+
const opts = {
|
|
44
|
+
dir: config ? dirname(config) : target,
|
|
45
|
+
config,
|
|
46
|
+
after: args.after,
|
|
47
|
+
force: args.force,
|
|
48
|
+
}
|
|
41
49
|
|
|
42
50
|
if (args.watch) {
|
|
43
51
|
await watch(opts)
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { createEmitter
|
|
2
|
-
|
|
1
|
+
import { createEmitter } from './helpers/emitter'
|
|
3
2
|
import { getInstanceForNamespace, getInstanceForQueryFn } from './instanceRegistry'
|
|
4
3
|
import { run } from './run'
|
|
5
4
|
|
|
6
|
-
import type { ZeroEvent } from './types'
|
|
5
|
+
import type { ZeroEvent, ZeroEventsEmitter } from './types'
|
|
7
6
|
import type { ReactNode } from 'react'
|
|
8
7
|
|
|
9
8
|
// combines multiple createZeroClient instances into one consumer surface:
|
|
@@ -41,7 +40,7 @@ type CombinableZeroClient = {
|
|
|
41
40
|
zero: any
|
|
42
41
|
preload: (...args: any[]) => any
|
|
43
42
|
getQuery: (...args: any[]) => any
|
|
44
|
-
zeroEvents:
|
|
43
|
+
zeroEvents: ZeroEventsEmitter
|
|
45
44
|
ControlQueries: (props: ControlQueriesProps) => ReactNode
|
|
46
45
|
}
|
|
47
46
|
|
|
@@ -52,19 +51,28 @@ export type CombineZeroClientsOptions = {
|
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (
|
|
55
|
-
x: infer I
|
|
54
|
+
x: infer I
|
|
56
55
|
) => void
|
|
57
56
|
? I
|
|
58
57
|
: never
|
|
59
58
|
|
|
59
|
+
type WithoutMutate<Zero> = Zero extends unknown ? Omit<Zero, 'mutate'> : never
|
|
60
|
+
type MutationsOf<Zero> = Zero extends { mutate: infer Mutations } ? Mutations : never
|
|
61
|
+
|
|
62
|
+
type CombinedZero<Clients extends readonly CombinableZeroClient[]> = UnionToIntersection<
|
|
63
|
+
WithoutMutate<Clients[number]['zero']>
|
|
64
|
+
> & {
|
|
65
|
+
mutate: UnionToIntersection<MutationsOf<Clients[number]['zero']>>
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
export type CombinedZeroClients<Clients extends readonly CombinableZeroClient[]> = {
|
|
61
69
|
useQuery: UnionToIntersection<Clients[number]['useQuery']>
|
|
62
70
|
usePermission: UnionToIntersection<Clients[number]['usePermission']>
|
|
63
|
-
zero:
|
|
71
|
+
zero: CombinedZero<Clients>
|
|
64
72
|
preload: UnionToIntersection<Clients[number]['preload']>
|
|
65
73
|
getQuery: UnionToIntersection<Clients[number]['getQuery']>
|
|
66
74
|
run: typeof run
|
|
67
|
-
zeroEvents:
|
|
75
|
+
zeroEvents: ZeroEventsEmitter
|
|
68
76
|
ControlQueries: (props: ControlQueriesProps) => ReactNode
|
|
69
77
|
}
|
|
70
78
|
|
|
@@ -89,7 +97,7 @@ export function combineZeroClients<
|
|
|
89
97
|
|
|
90
98
|
if (!clientsByName.has(innerName)) {
|
|
91
99
|
throw new Error(
|
|
92
|
-
`[on-zero] combineZeroClients inner instance '${innerName}' is not one of the passed clients
|
|
100
|
+
`[on-zero] combineZeroClients inner instance '${innerName}' is not one of the passed clients`
|
|
93
101
|
)
|
|
94
102
|
}
|
|
95
103
|
|
|
@@ -153,7 +161,7 @@ export function combineZeroClients<
|
|
|
153
161
|
// one events stream relaying every instance's emitter
|
|
154
162
|
const zeroEvents = createEmitter<ZeroEvent | null>(
|
|
155
163
|
`zero:combined(${clients.map((client) => client.instanceName).join('+')})`,
|
|
156
|
-
null
|
|
164
|
+
null
|
|
157
165
|
)
|
|
158
166
|
for (const client of clients) {
|
|
159
167
|
client.zeroEvents.listen((event) => zeroEvents.emit(event))
|
|
@@ -164,7 +172,7 @@ export function combineZeroClients<
|
|
|
164
172
|
(inner: ReactNode, client) => (
|
|
165
173
|
<client.ControlQueries {...props}>{inner}</client.ControlQueries>
|
|
166
174
|
),
|
|
167
|
-
children
|
|
175
|
+
children
|
|
168
176
|
)
|
|
169
177
|
|
|
170
178
|
const combined = {
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for one independently synchronized Zero instance.
|
|
3
|
+
*
|
|
4
|
+
* An instance owns every namespace discovered directly under `dir`, including
|
|
5
|
+
* tables reached through `related()`. A root instance may contain nested
|
|
6
|
+
* instance directories because namespace discovery does not recurse through
|
|
7
|
+
* another instance's directory.
|
|
8
|
+
*/
|
|
9
|
+
export type DataInstanceConfig<Scope extends string = string> = {
|
|
10
|
+
/**
|
|
11
|
+
* Directory containing this instance's namespace files and folders.
|
|
12
|
+
* Relative paths are resolved from `on-zero.config.ts`. When omitted, the
|
|
13
|
+
* instance key is used as `./<key>`.
|
|
14
|
+
*
|
|
15
|
+
* Use `dir: '.'` for an explicitly configured root instance. Namespace
|
|
16
|
+
* files may use either `<name>.ts` or `<name>/queries.ts` plus
|
|
17
|
+
* `<name>/mutations.ts`. The directory name itself has no runtime meaning;
|
|
18
|
+
* the config key is the generated instance name.
|
|
19
|
+
*/
|
|
20
|
+
dir?: string
|
|
21
|
+
/**
|
|
22
|
+
* Column that partitions every table synchronized by this instance.
|
|
23
|
+
* Generation fails when a namespace table or a table reached through
|
|
24
|
+
* `related()` does not declare this column. Server-only support tables are
|
|
25
|
+
* intentionally exempt because they are never synchronized to clients.
|
|
26
|
+
*/
|
|
27
|
+
scope?: Scope
|
|
28
|
+
/**
|
|
29
|
+
* Server-only tables this instance reads or writes that static mutation
|
|
30
|
+
* analysis cannot discover, such as tables reached through dynamic helpers
|
|
31
|
+
* or server actions. These tables are included in schema generation and
|
|
32
|
+
* server push typing, but they do not become client query namespaces or enter
|
|
33
|
+
* this instance's synchronized table set.
|
|
34
|
+
*/
|
|
35
|
+
supportTables?: readonly string[]
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Root configuration for a multi-instance on-zero data layout.
|
|
40
|
+
*
|
|
41
|
+
* Keep this in `on-zero.config.ts` at the data root. The file is the single
|
|
42
|
+
* configuration surface for current and future data-generation options.
|
|
43
|
+
* Single-instance applications should omit it and keep namespaces directly in
|
|
44
|
+
* the data root.
|
|
45
|
+
*/
|
|
46
|
+
export type DataConfig<
|
|
47
|
+
Instances extends Record<string, DataInstanceConfig> = Record<
|
|
48
|
+
string,
|
|
49
|
+
DataInstanceConfig
|
|
50
|
+
>,
|
|
51
|
+
> = {
|
|
52
|
+
/**
|
|
53
|
+
* Explicit independently synchronized instances, keyed by their generated
|
|
54
|
+
* client name. Every namespace must live under one of the configured `dir`
|
|
55
|
+
* paths. Each configured directory must exist. The data root may be one of
|
|
56
|
+
* those directories when declared explicitly with `dir: '.'`.
|
|
57
|
+
*/
|
|
58
|
+
instances: Instances
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Defines `on-zero.config.ts` with literal instance names, directory paths,
|
|
63
|
+
* scope columns, and support tables preserved for generated types.
|
|
64
|
+
*
|
|
65
|
+
* This function returns its input unchanged. Its purpose is validation,
|
|
66
|
+
* editor documentation, and one stable home for on-zero data configuration.
|
|
67
|
+
*/
|
|
68
|
+
export function defineConfig<const Instances extends Record<string, DataInstanceConfig>>(
|
|
69
|
+
config: DataConfig<Instances>
|
|
70
|
+
): DataConfig<Instances> {
|
|
71
|
+
return config
|
|
72
|
+
}
|
package/src/createPermissions.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ensure } from '
|
|
2
|
-
|
|
1
|
+
import { ensure } from './helpers/ensure'
|
|
3
2
|
import { mutatorContext } from './helpers/mutatorContext'
|
|
4
3
|
import { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'
|
|
5
4
|
import { getZQL } from './state'
|
|
@@ -37,7 +36,7 @@ export function createPermissions<Schema extends ZeroSchema>({
|
|
|
37
36
|
permissionWhere: PermissionWhere,
|
|
38
37
|
// TODO until i can get a working PickPrimaryKeys<'message'>
|
|
39
38
|
objOrId: Record<string, any> | string,
|
|
40
|
-
tableNameOverride?: TableName
|
|
39
|
+
tableNameOverride?: TableName
|
|
41
40
|
) {
|
|
42
41
|
// check admin bypass for queries
|
|
43
42
|
const adminBypassQueries = adminRoleMode === 'all' || adminRoleMode === 'queries'
|
|
@@ -113,7 +112,7 @@ export function createPermissions<Schema extends ZeroSchema>({
|
|
|
113
112
|
authData: AuthData | null,
|
|
114
113
|
tableName: TableName,
|
|
115
114
|
where: Where,
|
|
116
|
-
obj: any
|
|
115
|
+
obj: any // TODO until i can get a working PickPrimaryKeys<'message'>
|
|
117
116
|
): Promise<void> {
|
|
118
117
|
// check admin bypass for mutations
|
|
119
118
|
const adminBypassMutations = adminRoleMode === 'all' || adminRoleMode === 'mutations'
|
package/src/createUseQuery.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { useQuery as zeroUseQuery } from '@rocicorp/zero/react'
|
|
2
1
|
import { addContextToQuery, asQueryInternals } from '@rocicorp/zero/bindings'
|
|
3
|
-
import {
|
|
2
|
+
import { useQuery as zeroUseQuery } from '@rocicorp/zero/react'
|
|
4
3
|
import { useContext, useMemo, useRef, type Context } from 'react'
|
|
5
4
|
|
|
5
|
+
import { IS_SERVER_RUNTIME } from './helpers/platform'
|
|
6
6
|
import { useZeroDebug } from './helpers/useZeroDebug'
|
|
7
7
|
import { resolveQuery, type PlainQueryFn } from './resolveQuery'
|
|
8
8
|
|
|
@@ -32,13 +32,13 @@ export type UseQueryHook<Schema extends ZeroSchema> = {
|
|
|
32
32
|
<TArg, TTable extends keyof Schema['tables'] & string, TReturn>(
|
|
33
33
|
fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>,
|
|
34
34
|
params: TArg,
|
|
35
|
-
options?: UseQueryOptions | boolean
|
|
36
|
-
): QueryResult<TReturn
|
|
35
|
+
options?: UseQueryOptions | boolean
|
|
36
|
+
): QueryResult<TReturn>
|
|
37
37
|
|
|
38
38
|
// overload 2: plain function with no params
|
|
39
39
|
<TTable extends keyof Schema['tables'] & string, TReturn>(
|
|
40
40
|
fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>,
|
|
41
|
-
options?: UseQueryOptions | boolean
|
|
41
|
+
options?: UseQueryOptions | boolean
|
|
42
42
|
): QueryResult<TReturn>
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -58,7 +58,7 @@ const EMPTY_RESPONSE_SINGULAR = Object.freeze([undefined, RESULT_UNKNOWN]) as ne
|
|
|
58
58
|
// user-authored query body (`.one()` vs not), so passing an empty `ctx` is
|
|
59
59
|
// safe here.
|
|
60
60
|
export function emptyResponseFor(
|
|
61
|
-
queryRequest: unknown
|
|
61
|
+
queryRequest: unknown
|
|
62
62
|
): readonly [unknown, { type: string }] {
|
|
63
63
|
try {
|
|
64
64
|
const query = addContextToQuery(queryRequest as any, {} as never)
|
|
@@ -129,7 +129,7 @@ export function createUseQuery<Schema extends ZeroSchema>({
|
|
|
129
129
|
const queryRequest = useMemo(
|
|
130
130
|
() => resolveQuery({ customQueries, fn, params }),
|
|
131
131
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
132
|
-
[fn, paramsKey]
|
|
132
|
+
[fn, paramsKey]
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
// extract option values as primitives — a fresh options object each render
|
|
@@ -152,7 +152,7 @@ export function createUseQuery<Schema extends ZeroSchema>({
|
|
|
152
152
|
const effectiveEnabled = disableMode ? false : optionEnabled
|
|
153
153
|
const effectiveOptions = useMemo(
|
|
154
154
|
() => ({ enabled: effectiveEnabled, ttl: optionTTL }),
|
|
155
|
-
[effectiveEnabled, optionTTL]
|
|
155
|
+
[effectiveEnabled, optionTTL]
|
|
156
156
|
)
|
|
157
157
|
const rawOut = zeroUseQuery(queryRequest, effectiveOptions)
|
|
158
158
|
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
DEFAULT_TTL_MS,
|
|
5
5
|
deepClone,
|
|
6
6
|
} from '@rocicorp/zero/bindings'
|
|
7
|
-
import { IS_SERVER_RUNTIME, useEmitterValue, type Emitter } from '@take-out/helpers'
|
|
8
7
|
import { useContext, useMemo, useRef, useSyncExternalStore, type Context } from 'react'
|
|
9
8
|
|
|
10
9
|
import {
|
|
@@ -14,6 +13,8 @@ import {
|
|
|
14
13
|
type UseQueryHook,
|
|
15
14
|
type UseQueryOptions,
|
|
16
15
|
} from './createUseQuery'
|
|
16
|
+
import { useEmitterValue, type Emitter } from './helpers/emitter'
|
|
17
|
+
import { IS_SERVER_RUNTIME } from './helpers/platform'
|
|
17
18
|
import { resolveQuery } from './resolveQuery'
|
|
18
19
|
|
|
19
20
|
import type {
|
|
@@ -43,10 +44,10 @@ export type MaterializableZero = {
|
|
|
43
44
|
context: unknown
|
|
44
45
|
materialize(
|
|
45
46
|
query: any,
|
|
46
|
-
options?: { ttl?: any }
|
|
47
|
+
options?: { ttl?: any }
|
|
47
48
|
): {
|
|
48
49
|
addListener(
|
|
49
|
-
cb: (data: any, resultType: string, error?: DirectQueryError) => void
|
|
50
|
+
cb: (data: any, resultType: string, error?: DirectQueryError) => void
|
|
50
51
|
): void
|
|
51
52
|
destroy(): void
|
|
52
53
|
updateTTL(ttl: any): void
|
|
@@ -101,7 +102,7 @@ function getSnapshot(
|
|
|
101
102
|
data: unknown,
|
|
102
103
|
resultType: DirectResultType,
|
|
103
104
|
retry: () => void,
|
|
104
|
-
error?: DirectQueryError
|
|
105
|
+
error?: DirectQueryError
|
|
105
106
|
): DirectSnapshot {
|
|
106
107
|
if (singular && data === undefined) {
|
|
107
108
|
if (resultType === 'complete') return emptySnapshotSingularComplete
|
|
@@ -138,7 +139,7 @@ class DirectViewWrapper implements DirectView {
|
|
|
138
139
|
private readonly zero: MaterializableZero,
|
|
139
140
|
private ttl: UseQueryOptions['ttl'] | number,
|
|
140
141
|
private readonly singular: boolean,
|
|
141
|
-
private readonly onDematerialized: (view: DirectViewWrapper) => void
|
|
142
|
+
private readonly onDematerialized: (view: DirectViewWrapper) => void
|
|
142
143
|
) {
|
|
143
144
|
this.snapshot = getDefaultSnapshot(singular)
|
|
144
145
|
this.materializeIfNeeded()
|
|
@@ -151,7 +152,7 @@ class DirectViewWrapper implements DirectView {
|
|
|
151
152
|
cloned,
|
|
152
153
|
resultType as DirectResultType,
|
|
153
154
|
this.retry,
|
|
154
|
-
error
|
|
155
|
+
error
|
|
155
156
|
)
|
|
156
157
|
for (const listener of this.listeners) {
|
|
157
158
|
listener()
|
|
@@ -216,7 +217,7 @@ class DirectViewStore {
|
|
|
216
217
|
zero: MaterializableZero,
|
|
217
218
|
queryRequest: unknown,
|
|
218
219
|
enabled: boolean,
|
|
219
|
-
ttl: UseQueryOptions['ttl'] | number
|
|
220
|
+
ttl: UseQueryOptions['ttl'] | number
|
|
220
221
|
): DirectView {
|
|
221
222
|
const query = addContextToQuery(queryRequest as any, zero.context as any)
|
|
222
223
|
const queryInternals = asQueryInternals(query)
|
|
@@ -241,7 +242,7 @@ class DirectViewStore {
|
|
|
241
242
|
if (this.views.get(hash) === dematerialized) {
|
|
242
243
|
this.views.delete(hash)
|
|
243
244
|
}
|
|
244
|
-
}
|
|
245
|
+
}
|
|
245
246
|
)
|
|
246
247
|
this.views.set(hash, view)
|
|
247
248
|
} else {
|
|
@@ -299,7 +300,7 @@ export function createUseQueryDirect<Schema extends ZeroSchema>({
|
|
|
299
300
|
() => resolveQuery({ customQueries, fn, params }),
|
|
300
301
|
// params is keyed by paramsKey
|
|
301
302
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
302
|
-
[fn, paramsKey]
|
|
303
|
+
[fn, paramsKey]
|
|
303
304
|
)
|
|
304
305
|
|
|
305
306
|
const emptyForQuery = useMemo(() => emptyResponseFor(queryRequest), [queryRequest])
|
|
@@ -330,7 +331,7 @@ export function createUseQueryDirect<Schema extends ZeroSchema>({
|
|
|
330
331
|
const out = useSyncExternalStore(
|
|
331
332
|
view ? view.subscribe : DISABLED_SUBSCRIBE,
|
|
332
333
|
view ? view.getSnapshot : getEmpty,
|
|
333
|
-
view ? view.getSnapshot : getEmpty
|
|
334
|
+
view ? view.getSnapshot : getEmpty
|
|
334
335
|
)
|
|
335
336
|
|
|
336
337
|
if (!disableMode) {
|