kiru 1.1.1 → 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.
|
@@ -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/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
|
|