kiru 0.47.0 → 0.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +2 -1
- package/dist/dom.js.map +1 -1
- package/dist/element.js +2 -2
- package/dist/element.js.map +1 -1
- package/dist/hmr.d.ts +3 -2
- package/dist/hmr.d.ts.map +1 -1
- package/dist/hmr.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/memo.d.ts.map +1 -1
- package/dist/memo.js +1 -3
- package/dist/memo.js.map +1 -1
- package/dist/props.js +1 -1
- package/dist/props.js.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +3 -3
- package/dist/reconciler.js.map +1 -1
- package/dist/renderToString.js +1 -1
- package/dist/renderToString.js.map +1 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +3 -3
- package/dist/scheduler.js.map +1 -1
- package/dist/signals/base.d.ts +1 -1
- package/dist/signals/base.d.ts.map +1 -1
- package/dist/signals/base.js +2 -2
- package/dist/signals/base.js.map +1 -1
- package/dist/signals/computed.d.ts +1 -1
- package/dist/signals/computed.d.ts.map +1 -1
- package/dist/signals/computed.js +3 -3
- package/dist/signals/computed.js.map +1 -1
- package/dist/signals/effect.d.ts +1 -1
- package/dist/signals/effect.d.ts.map +1 -1
- package/dist/signals/effect.js +3 -2
- package/dist/signals/effect.js.map +1 -1
- package/dist/signals/globals.d.ts +1 -1
- package/dist/signals/globals.d.ts.map +1 -1
- package/dist/signals/jsx.d.ts +1 -1
- package/dist/signals/jsx.d.ts.map +1 -1
- package/dist/signals/types.d.ts +1 -1
- package/dist/signals/types.d.ts.map +1 -1
- package/dist/signals/utils.d.ts +1 -1
- package/dist/signals/utils.d.ts.map +1 -1
- package/dist/signals/utils.js +1 -1
- package/dist/signals/utils.js.map +1 -1
- package/dist/ssr/server.js +1 -1
- package/dist/ssr/server.js.map +1 -1
- package/dist/swr.d.ts +1 -1
- package/dist/swr.d.ts.map +1 -1
- package/dist/swr.js +1 -1
- package/dist/swr.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +5 -3
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +2 -0
- package/src/dom.ts +2 -1
- package/src/element.ts +2 -2
- package/src/hmr.ts +4 -3
- package/src/index.ts +1 -1
- package/src/memo.ts +1 -3
- package/src/props.ts +1 -1
- package/src/reconciler.ts +3 -2
- package/src/renderToString.ts +1 -1
- package/src/scheduler.ts +3 -2
- package/src/signals/base.ts +4 -4
- package/src/signals/computed.ts +4 -4
- package/src/signals/effect.ts +4 -3
- package/src/signals/globals.ts +1 -1
- package/src/signals/jsx.ts +1 -1
- package/src/signals/types.ts +1 -1
- package/src/signals/utils.ts +1 -1
- package/src/ssr/server.ts +1 -1
- package/src/swr.ts +1 -1
- package/src/types.ts +0 -1
- package/src/utils.ts +4 -2
package/src/renderToString.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
propsToElementAttributes,
|
|
7
7
|
isExoticType,
|
|
8
8
|
} from "./utils.js"
|
|
9
|
-
import { Signal } from "./signals/
|
|
9
|
+
import { Signal } from "./signals/base.js"
|
|
10
10
|
import { $HYDRATION_BOUNDARY, voidElements } from "./constants.js"
|
|
11
11
|
import { assertValidElementProps } from "./props.js"
|
|
12
12
|
import { HYDRATION_BOUNDARY_MARKER } from "./ssr/hydrationBoundary.js"
|
package/src/scheduler.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
$CONTEXT_PROVIDER,
|
|
8
8
|
CONSECUTIVE_DIRTY_LIMIT,
|
|
9
9
|
FLAG_DELETION,
|
|
10
|
+
FLAG_MEMO,
|
|
10
11
|
} from "./constants.js"
|
|
11
12
|
import { commitDeletion, commitWork, createDom, hydrateDom } from "./dom.js"
|
|
12
13
|
import { __DEV__ } from "./env.js"
|
|
@@ -363,8 +364,8 @@ function performUnitOfWork(vNode: VNode): VNode | void {
|
|
|
363
364
|
}
|
|
364
365
|
|
|
365
366
|
function updateFunctionComponent(vNode: FunctionVNode) {
|
|
366
|
-
const { type, props, subs, prev,
|
|
367
|
-
if (
|
|
367
|
+
const { type, props, subs, prev, flags } = vNode
|
|
368
|
+
if (flags & FLAG_MEMO) {
|
|
368
369
|
vNode.memoizedProps = props
|
|
369
370
|
if (
|
|
370
371
|
prev?.memoizedProps &&
|
package/src/signals/base.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { latest, safeStringify, sideEffectsEnabled } from "../utils.js"
|
|
1
2
|
import { $HMR_ACCEPT, $SIGNAL } from "../constants.js"
|
|
2
3
|
import { __DEV__ } from "../env.js"
|
|
3
|
-
import type { HMRAccept } from "../hmr.js"
|
|
4
|
-
import { latest, safeStringify, sideEffectsEnabled } from "../utils.js"
|
|
5
|
-
import { tracking, signalSubsMap } from "./globals.js"
|
|
6
|
-
import { type SignalSubscriber, ReadonlySignal } from "./types.js"
|
|
7
4
|
import { node } from "../globals.js"
|
|
8
5
|
import { useHook } from "../hooks/utils.js"
|
|
9
6
|
import { generateRandomID } from "../generateId.js"
|
|
10
7
|
import { requestUpdate } from "../scheduler.js"
|
|
8
|
+
import { tracking, signalSubsMap } from "./globals.js"
|
|
9
|
+
import type { SignalSubscriber, ReadonlySignal } from "./types.js"
|
|
10
|
+
import type { HMRAccept } from "../hmr.js"
|
|
11
11
|
|
|
12
12
|
export class Signal<T> {
|
|
13
13
|
[$SIGNAL] = true;
|
package/src/signals/computed.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __DEV__ } from "../env.js"
|
|
2
|
-
import { Signal } from "./index.js"
|
|
3
|
-
import { effectQueue, signalSubsMap } from "./globals.js"
|
|
4
2
|
import { $HMR_ACCEPT } from "../constants.js"
|
|
5
|
-
import type { HMRAccept } from "../hmr.js"
|
|
6
3
|
import { useHook } from "../hooks/utils.js"
|
|
7
|
-
import { executeWithTracking } from "./effect.js"
|
|
8
4
|
import { latest } from "../utils.js"
|
|
5
|
+
import { effectQueue, signalSubsMap } from "./globals.js"
|
|
6
|
+
import { executeWithTracking } from "./effect.js"
|
|
7
|
+
import { Signal } from "./base.js"
|
|
8
|
+
import type { HMRAccept } from "../hmr.js"
|
|
9
9
|
|
|
10
10
|
export class ComputedSignal<T> extends Signal<T> {
|
|
11
11
|
protected $getter: (prev?: T) => T
|
package/src/signals/effect.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { node } from "../globals.js"
|
|
2
2
|
import { sideEffectsEnabled } from "../utils.js"
|
|
3
3
|
import { tracking, effectQueue } from "./globals.js"
|
|
4
|
-
import
|
|
4
|
+
import { tick } from "./utils.js"
|
|
5
|
+
import type { Signal } from "./base.js"
|
|
5
6
|
import type { SignalValues } from "./types.js"
|
|
6
7
|
|
|
7
8
|
type TrackedExecutionContext<T, Deps extends readonly Signal<unknown>[]> = {
|
|
@@ -42,8 +43,8 @@ export function executeWithTracking<T, Deps extends readonly Signal<unknown>[]>(
|
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
const effect = () => {
|
|
45
|
-
if (!effectQueue.
|
|
46
|
-
queueMicrotask(
|
|
46
|
+
if (!effectQueue.size) {
|
|
47
|
+
queueMicrotask(tick)
|
|
47
48
|
}
|
|
48
49
|
effectQueue.set(id, onDepChanged)
|
|
49
50
|
}
|
package/src/signals/globals.ts
CHANGED
package/src/signals/jsx.ts
CHANGED
package/src/signals/types.ts
CHANGED
package/src/signals/utils.ts
CHANGED
package/src/ssr/server.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
propsToElementAttributes,
|
|
8
8
|
isExoticType,
|
|
9
9
|
} from "../utils.js"
|
|
10
|
-
import { Signal } from "../signals/
|
|
10
|
+
import { Signal } from "../signals/base.js"
|
|
11
11
|
import { $HYDRATION_BOUNDARY, voidElements } from "../constants.js"
|
|
12
12
|
import { assertValidElementProps } from "../props.js"
|
|
13
13
|
import { HYDRATION_BOUNDARY_MARKER } from "./hydrationBoundary.js"
|
package/src/swr.ts
CHANGED
package/src/types.ts
CHANGED
package/src/utils.ts
CHANGED
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
FLAG_HAS_MEMO_ANCESTOR,
|
|
9
9
|
FLAG_PLACEMENT,
|
|
10
10
|
FLAG_UPDATE,
|
|
11
|
+
FLAG_MEMO,
|
|
11
12
|
REGEX_UNIT,
|
|
12
13
|
} from "./constants.js"
|
|
13
|
-
import { unwrap } from "./signals/
|
|
14
|
+
import { unwrap } from "./signals/utils.js"
|
|
14
15
|
import { __DEV__ } from "./env.js"
|
|
15
16
|
import type { AppContext } from "./appContext"
|
|
16
17
|
|
|
@@ -162,8 +163,9 @@ function willMemoBlockUpdate(root: VNode, target: VNode): boolean {
|
|
|
162
163
|
|
|
163
164
|
while (node && node !== root && node.flags & FLAG_HAS_MEMO_ANCESTOR) {
|
|
164
165
|
const parent = node.parent
|
|
166
|
+
if (!parent) return false
|
|
165
167
|
if (
|
|
166
|
-
parent
|
|
168
|
+
parent.flags & FLAG_MEMO &&
|
|
167
169
|
parent.prev?.memoizedProps &&
|
|
168
170
|
parent.arePropsEqual!(parent.prev.memoizedProps, parent.props)
|
|
169
171
|
) {
|