kiru 1.1.0 → 1.1.2
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/dom/nodes.d.ts.map +1 -1
- package/dist/dom/nodes.js +2 -1
- package/dist/dom/nodes.js.map +1 -1
- package/dist/signals/computed.d.ts +0 -1
- package/dist/signals/computed.d.ts.map +1 -1
- package/dist/signals/computed.js +22 -14
- package/dist/signals/computed.js.map +1 -1
- package/package.json +1 -1
- package/src/dom/nodes.ts +4 -3
- package/src/signals/computed.ts +31 -23
package/dist/dom/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAY,OAAO,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAY,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG/E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExD,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAEvB,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAU3C;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,KAAK,QA+C/B;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAmBhD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,QAcpD"}
|
package/dist/dom/nodes.js
CHANGED
|
@@ -5,6 +5,7 @@ import { hydrationStack } from "../hydration.js";
|
|
|
5
5
|
import { getVNodeApp, isValidTextChild, registerVNodeCleanup, } from "../utils/index.js";
|
|
6
6
|
import { KiruError } from "../error.js";
|
|
7
7
|
import { __DEV__, isBrowser } from "../env.js";
|
|
8
|
+
import { updateDomProps } from "./props.js";
|
|
8
9
|
export { createDom, hydrateDom, getDomParent, placeDom };
|
|
9
10
|
function createDom(vNode) {
|
|
10
11
|
const t = vNode.type;
|
|
@@ -38,7 +39,7 @@ function hydrateDom(vNode) {
|
|
|
38
39
|
}
|
|
39
40
|
vNode.dom = dom;
|
|
40
41
|
if (vNode.type !== "#text" && !(vNode.flags & FLAG_STATIC_DOM)) {
|
|
41
|
-
|
|
42
|
+
updateDomProps(vNode);
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
45
|
if (Signal.isSignal(vNode.props.nodeValue)) {
|
package/dist/dom/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/dom/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ export declare class ComputedSignal<T> extends Signal<T> {
|
|
|
10
10
|
set value(next: T);
|
|
11
11
|
subscribe(cb: (state: T, prevState?: T) => void): () => void;
|
|
12
12
|
static dispose(signal: ComputedSignal<any>): void;
|
|
13
|
-
static updateGetter<T>(signal: ComputedSignal<T>, getter: (prev?: T) => T): void;
|
|
14
13
|
private static stop;
|
|
15
14
|
private static run;
|
|
16
15
|
private ensureNotDirty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAClC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAA;gBACf,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;IAuBzD,IAAI,KAAK,IAgBO,CAAC,CAbhB;IAED,QAAQ;IAKR,IAAI;IAMJ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAI;IAErB,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAO5D,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI;IAKjD,
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAClC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAA;gBACf,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;IAuBzD,IAAI,KAAK,IAgBO,CAAC,CAbhB;IAED,QAAQ;IAKR,IAAI;IAMJ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAI;IAErB,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAO5D,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI;IAKjD,OAAO,CAAC,MAAM,CAAC,IAAI;IAYnB,OAAO,CAAC,MAAM,CAAC,GAAG;IA2BlB,OAAO,CAAC,cAAc;CA6BvB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CAAC,CAAC,CAAC,CAEnB"}
|
package/dist/signals/computed.js
CHANGED
|
@@ -50,24 +50,21 @@ export class ComputedSignal extends Signal {
|
|
|
50
50
|
ComputedSignal.stop(signal);
|
|
51
51
|
Signal.dispose(signal);
|
|
52
52
|
}
|
|
53
|
-
static updateGetter(signal, getter) {
|
|
54
|
-
const $computed = latest(signal);
|
|
55
|
-
$computed.$getter = getter;
|
|
56
|
-
$computed.$isDirty = true;
|
|
57
|
-
ComputedSignal.run($computed);
|
|
58
|
-
if (Object.is($computed.$value, $computed.$prevValue))
|
|
59
|
-
return;
|
|
60
|
-
$computed.notify();
|
|
61
|
-
}
|
|
62
53
|
static stop(computed) {
|
|
63
|
-
|
|
54
|
+
if (__DEV__) {
|
|
55
|
+
computed = latest(computed);
|
|
56
|
+
}
|
|
57
|
+
const { $id, $unsubs } = computed;
|
|
64
58
|
effectQueue.delete($id);
|
|
65
59
|
$unsubs.forEach(call);
|
|
66
60
|
$unsubs.clear();
|
|
67
61
|
computed.$isDirty = true;
|
|
68
62
|
}
|
|
69
63
|
static run(computed) {
|
|
70
|
-
|
|
64
|
+
let $computed = computed;
|
|
65
|
+
if (__DEV__) {
|
|
66
|
+
$computed = latest(computed);
|
|
67
|
+
}
|
|
71
68
|
const { $id: id, $getter, $unsubs: subs } = $computed;
|
|
72
69
|
const value = executeWithTracking({
|
|
73
70
|
id,
|
|
@@ -93,7 +90,18 @@ export class ComputedSignal extends Signal {
|
|
|
93
90
|
$computed.$isDirty = false;
|
|
94
91
|
}
|
|
95
92
|
ensureNotDirty() {
|
|
96
|
-
|
|
93
|
+
let $computed = this;
|
|
94
|
+
if (__DEV__) {
|
|
95
|
+
$computed = latest(this);
|
|
96
|
+
}
|
|
97
|
+
if (!$computed.$isDirty) {
|
|
98
|
+
const pending = effectQueue.get($computed.$id);
|
|
99
|
+
if (pending) {
|
|
100
|
+
pending();
|
|
101
|
+
effectQueue.delete($computed.$id);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!$computed.$isDirty)
|
|
97
105
|
return;
|
|
98
106
|
if (__DEV__) {
|
|
99
107
|
/**
|
|
@@ -105,10 +113,10 @@ export class ComputedSignal extends Signal {
|
|
|
105
113
|
* the previous signal's ID and not disposing it / deleting the
|
|
106
114
|
* map entry.
|
|
107
115
|
*/
|
|
108
|
-
if (
|
|
116
|
+
if ($computed.$isDisposed)
|
|
109
117
|
return;
|
|
110
118
|
}
|
|
111
|
-
ComputedSignal.run(
|
|
119
|
+
ComputedSignal.run($computed);
|
|
112
120
|
}
|
|
113
121
|
}
|
|
114
122
|
export function computed(getter, displayName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,MAAM,OAAO,cAAkB,SAAQ,MAAS;IAI9C,YAAY,MAAuB,EAAE,WAAoB;QACvD,KAAK,CAAC,KAAK,CAAM,EAAE,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAE,CAAC,MAAO,CAAA;YACzC,mCAAmC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG;gBAClB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,MAAM,CAAC,IAAI,CAAC,CAAA;oBACZ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAC/B,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aACqB,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,CAAC,IAAO,IAAG,CAAC;IAErB,SAAS,CAAC,EAAqC;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,MAA2B;QACxC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/signals/computed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/dom/nodes.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
import { KiruError } from "../error.js"
|
|
11
11
|
import { __DEV__, isBrowser } from "../env.js"
|
|
12
12
|
import type { DomVNode, ElementVNode, MaybeDom, SomeDom } from "../types.utils"
|
|
13
|
+
import { updateDomProps } from "./props.js"
|
|
13
14
|
|
|
14
15
|
export { createDom, hydrateDom, getDomParent, placeDom }
|
|
15
16
|
|
|
@@ -26,8 +27,8 @@ function createDom(vNode: DomVNode): SomeDom {
|
|
|
26
27
|
t == "#text"
|
|
27
28
|
? createTextNode(vNode)
|
|
28
29
|
: svgTags.has(t)
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
? document.createElementNS("http://www.w3.org/2000/svg", t)
|
|
31
|
+
: document.createElement(t)
|
|
31
32
|
|
|
32
33
|
return dom
|
|
33
34
|
}
|
|
@@ -58,7 +59,7 @@ function hydrateDom(vNode: VNode) {
|
|
|
58
59
|
}
|
|
59
60
|
vNode.dom = dom
|
|
60
61
|
if (vNode.type !== "#text" && !(vNode.flags & FLAG_STATIC_DOM)) {
|
|
61
|
-
|
|
62
|
+
updateDomProps(vNode as DomVNode)
|
|
62
63
|
return
|
|
63
64
|
}
|
|
64
65
|
if (Signal.isSignal(vNode.props.nodeValue)) {
|
package/src/signals/computed.ts
CHANGED
|
@@ -63,18 +63,11 @@ export class ComputedSignal<T> extends Signal<T> {
|
|
|
63
63
|
Signal.dispose(signal)
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
static updateGetter<T>(signal: ComputedSignal<T>, getter: (prev?: T) => T) {
|
|
67
|
-
const $computed = latest(signal)
|
|
68
|
-
$computed.$getter = getter
|
|
69
|
-
$computed.$isDirty = true
|
|
70
|
-
|
|
71
|
-
ComputedSignal.run($computed)
|
|
72
|
-
if (Object.is($computed.$value, $computed.$prevValue)) return
|
|
73
|
-
$computed.notify()
|
|
74
|
-
}
|
|
75
|
-
|
|
76
66
|
private static stop<T>(computed: ComputedSignal<T>) {
|
|
77
|
-
|
|
67
|
+
if (__DEV__) {
|
|
68
|
+
computed = latest(computed)
|
|
69
|
+
}
|
|
70
|
+
const { $id, $unsubs } = computed
|
|
78
71
|
|
|
79
72
|
effectQueue.delete($id)
|
|
80
73
|
$unsubs.forEach(call)
|
|
@@ -83,31 +76,46 @@ export class ComputedSignal<T> extends Signal<T> {
|
|
|
83
76
|
}
|
|
84
77
|
|
|
85
78
|
private static run<T>(computed: ComputedSignal<T>) {
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
if (__DEV__) {
|
|
80
|
+
computed = latest(computed)
|
|
81
|
+
}
|
|
82
|
+
const { $id: id, $getter, $unsubs: subs } = computed
|
|
88
83
|
|
|
89
84
|
const value = executeWithTracking({
|
|
90
85
|
id,
|
|
91
86
|
subs,
|
|
92
|
-
fn: () => $getter(
|
|
87
|
+
fn: () => $getter(computed.$value),
|
|
93
88
|
onDepChanged: () => {
|
|
94
|
-
|
|
89
|
+
computed.$isDirty = true
|
|
95
90
|
if (__DEV__) {
|
|
96
91
|
if (!signalSubsMap?.get(id)?.size) return
|
|
97
92
|
} else {
|
|
98
93
|
if (!computed.$subs!.size) return
|
|
99
94
|
}
|
|
100
|
-
ComputedSignal.run(
|
|
101
|
-
if (Object.is(
|
|
102
|
-
|
|
95
|
+
ComputedSignal.run(computed)
|
|
96
|
+
if (Object.is(computed.$value, computed.$prevValue)) return
|
|
97
|
+
computed.notify()
|
|
103
98
|
},
|
|
104
99
|
})
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
computed.sneak(value)
|
|
101
|
+
computed.$isDirty = false
|
|
107
102
|
}
|
|
108
103
|
|
|
109
104
|
private ensureNotDirty() {
|
|
110
|
-
|
|
105
|
+
let computed = this
|
|
106
|
+
if (__DEV__) {
|
|
107
|
+
computed = latest(this)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (!computed.$isDirty) {
|
|
111
|
+
const pending = effectQueue.get(computed.$id)
|
|
112
|
+
if (pending) {
|
|
113
|
+
pending()
|
|
114
|
+
effectQueue.delete(computed.$id)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (!computed.$isDirty) return
|
|
111
119
|
if (__DEV__) {
|
|
112
120
|
/**
|
|
113
121
|
* This is a safeguard for dev-mode only, where a 'read' on an
|
|
@@ -118,9 +126,9 @@ export class ComputedSignal<T> extends Signal<T> {
|
|
|
118
126
|
* the previous signal's ID and not disposing it / deleting the
|
|
119
127
|
* map entry.
|
|
120
128
|
*/
|
|
121
|
-
if (
|
|
129
|
+
if (computed.$isDisposed) return
|
|
122
130
|
}
|
|
123
|
-
ComputedSignal.run(
|
|
131
|
+
ComputedSignal.run(computed)
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
|