+3
-0
@@ -345,2 +345,5 @@ 'use strict'; | ||
| } else { | ||
| for (const key of Object.keys(draft)) { | ||
| if (!(key in res.value)) delete draft[key]; | ||
| } | ||
| Object.assign(draft, res.value); | ||
@@ -347,0 +350,0 @@ } |
+3
-0
@@ -344,2 +344,5 @@ import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, getOwner, untrack, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createRevealOrder as createRevealOrder$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, peekNextChildId, getNextChildId, clearSnapshots, flush, markSnapshotScope, onCleanup, isDisposed, mapArray, repeat, DEV as DEV$1 } from '@solidjs/signals'; | ||
| } else { | ||
| for (const key of Object.keys(draft)) { | ||
| if (!(key in res.value)) delete draft[key]; | ||
| } | ||
| Object.assign(draft, res.value); | ||
@@ -346,0 +349,0 @@ } |
+16
-17
@@ -312,3 +312,3 @@ 'use strict'; | ||
| comp.computed = true; | ||
| processResult(comp, result, owner, ctx, options?.deferStream, options?.ssrSource, run); | ||
| processResult(comp, result, owner, ctx, options?.deferStream, options?.ssrSource, run, options?.serialize); | ||
| } catch (err) { | ||
@@ -441,6 +441,6 @@ if (err instanceof signals.NotReadyError) { | ||
| } | ||
| function processResult(comp, result, owner, ctx, deferStream, ssrSource, rerun) { | ||
| function processResult(comp, result, owner, ctx, deferStream, ssrSource, rerun, serialize) { | ||
| if (comp.disposed) return; | ||
| const id = owner.id; | ||
| const noHydrate = getContext(NoHydrateContext, owner); | ||
| const noHydrate = serialize === false || getContext(NoHydrateContext, owner); | ||
| if (typeof result?.[Symbol.asyncIterator] !== "function" && isThenable(result)) { | ||
@@ -678,2 +678,8 @@ if (result.s === 1) { | ||
| } | ||
| function replaceState(target, next) { | ||
| for (const key of Object.keys(target)) { | ||
| if (!(key in next)) delete target[key]; | ||
| } | ||
| Object.assign(target, next); | ||
| } | ||
| function createProjection(fn, initialValue, options) { | ||
@@ -707,3 +713,3 @@ const ctx = sharedConfig.context; | ||
| if (value !== undefined && value !== state && value !== draft) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -740,3 +746,3 @@ markReady(); | ||
| if (value !== undefined && value !== state) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -773,3 +779,3 @@ markReady(); | ||
| if (resolved && !resolved.done && resolved.value !== undefined && resolved.value !== draft) { | ||
| Object.assign(state, resolved.value); | ||
| replaceState(state, resolved.value); | ||
| } | ||
@@ -804,10 +810,9 @@ markReady(JSON.parse(JSON.stringify(state))); | ||
| }; | ||
| const flushed = patches.splice(0); | ||
| if (!r.done) { | ||
| if (r.value !== undefined && r.value !== draft) { | ||
| Object.assign(state, r.value); | ||
| replaceState(draft, r.value); | ||
| } | ||
| return { | ||
| done: false, | ||
| value: flushed | ||
| value: patches.splice(0) | ||
| }; | ||
@@ -836,3 +841,3 @@ } | ||
| if (value !== undefined && value !== state) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -848,3 +853,3 @@ markReady(); | ||
| if (result !== undefined && result !== state && result !== draft) { | ||
| Object.assign(state, result); | ||
| replaceState(state, result); | ||
| } | ||
@@ -1205,8 +1210,2 @@ return state; | ||
| } | ||
| if (ctx?.async) { | ||
| ctx.block(p.then(() => { | ||
| p.s = "success"; | ||
| }, () => { | ||
| })); | ||
| } | ||
| return createMemo(() => { | ||
@@ -1213,0 +1212,0 @@ if (p.errored) throw p.error; |
+16
-17
@@ -311,3 +311,3 @@ import { NotReadyError, $REFRESH, merge as merge$1, isWrappable, NoOwnerError, ContextNotFoundError, $PROXY, flatten } from '@solidjs/signals'; | ||
| comp.computed = true; | ||
| processResult(comp, result, owner, ctx, options?.deferStream, options?.ssrSource, run); | ||
| processResult(comp, result, owner, ctx, options?.deferStream, options?.ssrSource, run, options?.serialize); | ||
| } catch (err) { | ||
@@ -440,6 +440,6 @@ if (err instanceof NotReadyError) { | ||
| } | ||
| function processResult(comp, result, owner, ctx, deferStream, ssrSource, rerun) { | ||
| function processResult(comp, result, owner, ctx, deferStream, ssrSource, rerun, serialize) { | ||
| if (comp.disposed) return; | ||
| const id = owner.id; | ||
| const noHydrate = getContext(NoHydrateContext, owner); | ||
| const noHydrate = serialize === false || getContext(NoHydrateContext, owner); | ||
| if (typeof result?.[Symbol.asyncIterator] !== "function" && isThenable(result)) { | ||
@@ -677,2 +677,8 @@ if (result.s === 1) { | ||
| } | ||
| function replaceState(target, next) { | ||
| for (const key of Object.keys(target)) { | ||
| if (!(key in next)) delete target[key]; | ||
| } | ||
| Object.assign(target, next); | ||
| } | ||
| function createProjection(fn, initialValue, options) { | ||
@@ -706,3 +712,3 @@ const ctx = sharedConfig.context; | ||
| if (value !== undefined && value !== state && value !== draft) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -739,3 +745,3 @@ markReady(); | ||
| if (value !== undefined && value !== state) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -772,3 +778,3 @@ markReady(); | ||
| if (resolved && !resolved.done && resolved.value !== undefined && resolved.value !== draft) { | ||
| Object.assign(state, resolved.value); | ||
| replaceState(state, resolved.value); | ||
| } | ||
@@ -803,10 +809,9 @@ markReady(JSON.parse(JSON.stringify(state))); | ||
| }; | ||
| const flushed = patches.splice(0); | ||
| if (!r.done) { | ||
| if (r.value !== undefined && r.value !== draft) { | ||
| Object.assign(state, r.value); | ||
| replaceState(draft, r.value); | ||
| } | ||
| return { | ||
| done: false, | ||
| value: flushed | ||
| value: patches.splice(0) | ||
| }; | ||
@@ -835,3 +840,3 @@ } | ||
| if (value !== undefined && value !== state) { | ||
| Object.assign(state, value); | ||
| replaceState(state, value); | ||
| } | ||
@@ -847,3 +852,3 @@ markReady(); | ||
| if (result !== undefined && result !== state && result !== draft) { | ||
| Object.assign(state, result); | ||
| replaceState(state, result); | ||
| } | ||
@@ -1204,8 +1209,2 @@ return state; | ||
| } | ||
| if (ctx?.async) { | ||
| ctx.block(p.then(() => { | ||
| p.s = "success"; | ||
| }, () => { | ||
| })); | ||
| } | ||
| return createMemo(() => { | ||
@@ -1212,0 +1211,0 @@ if (p.errored) throw p.error; |
+3
-0
@@ -328,2 +328,5 @@ 'use strict'; | ||
| } else { | ||
| for (const key of Object.keys(draft)) { | ||
| if (!(key in res.value)) delete draft[key]; | ||
| } | ||
| Object.assign(draft, res.value); | ||
@@ -330,0 +333,0 @@ } |
+3
-0
@@ -327,2 +327,5 @@ import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createRevealOrder as createRevealOrder$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, getOwner, peekNextChildId, getNextChildId, clearSnapshots, flush, markSnapshotScope, onCleanup, isDisposed, untrack, mapArray, repeat } from '@solidjs/signals'; | ||
| } else { | ||
| for (const key of Object.keys(draft)) { | ||
| if (!(key in res.value)) delete draft[key]; | ||
| } | ||
| Object.assign(draft, res.value); | ||
@@ -329,0 +332,0 @@ } |
+2
-2
| { | ||
| "name": "solid-js", | ||
| "description": "Reactive JavaScript library for building user interfaces. Compiles JSX to real DOM with fine-grained signal-based updates — no virtual DOM.", | ||
| "version": "2.0.0-beta.26", | ||
| "version": "2.0.0-beta.27", | ||
| "author": "Ryan Carniato", | ||
@@ -131,3 +131,3 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@solidjs/signals": "^2.0.0-beta.26", | ||
| "@solidjs/signals": "^2.0.0-beta.27", | ||
| "csstype": "^3.1.0", | ||
@@ -134,0 +134,0 @@ "seroval": "~1.5.4", |
@@ -93,2 +93,10 @@ import { $REFRESH } from "@solidjs/signals"; | ||
| ssrSource?: "server" | "hybrid"; | ||
| /** | ||
| * Keep this value out of the hydration payload. The subtree still hydrates; | ||
| * the client is expected to RECOMPUTE the value instead of reading it back. | ||
| * Only correct where recomputation is intended — see processResult. | ||
| * | ||
| * @internal | ||
| */ | ||
| serialize?: false; | ||
| }; | ||
@@ -95,0 +103,0 @@ type ServerClientSignalOptions<T> = Omit<SignalOptions<T>, "ssrSource"> & { |
@@ -93,2 +93,10 @@ import { $REFRESH } from "@solidjs/signals"; | ||
| ssrSource?: "server" | "hybrid"; | ||
| /** | ||
| * Keep this value out of the hydration payload. The subtree still hydrates; | ||
| * the client is expected to RECOMPUTE the value instead of reading it back. | ||
| * Only correct where recomputation is intended — see processResult. | ||
| * | ||
| * @internal | ||
| */ | ||
| serialize?: false; | ||
| }; | ||
@@ -95,0 +103,0 @@ type ServerClientSignalOptions<T> = Omit<SignalOptions<T>, "ssrSource"> & { |
454797
0.27%10114
0.18%