@e280/strata 0.2.0-6 → 0.2.0-7
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 +10 -10
- package/package.json +1 -1
- package/s/signals/{derive.ts → derived.ts} +4 -4
- package/s/signals/index.ts +1 -1
- package/s/signals/porcelain.ts +4 -4
- package/s/signals/signals.test.ts +2 -2
- package/s/signals/tests/{derive.test.ts → derived.test.ts} +7 -7
- package/s/signals/types.ts +6 -6
- package/s/tree/parts/branch.ts +4 -4
- package/s/tree/parts/trunk.ts +3 -3
- package/x/signals/{derive.d.ts → derived.d.ts} +3 -3
- package/x/signals/{derive.js → derived.js} +2 -2
- package/x/signals/derived.js.map +1 -0
- package/x/signals/index.d.ts +1 -1
- package/x/signals/index.js +1 -1
- package/x/signals/index.js.map +1 -1
- package/x/signals/porcelain.d.ts +2 -2
- package/x/signals/porcelain.js +4 -4
- package/x/signals/porcelain.js.map +1 -1
- package/x/signals/signals.test.d.ts +1 -1
- package/x/signals/signals.test.js +2 -2
- package/x/signals/signals.test.js.map +1 -1
- package/x/signals/tests/{derive.test.js → derived.test.js} +8 -8
- package/x/signals/tests/derived.test.js.map +1 -0
- package/x/signals/types.d.ts +6 -6
- package/x/tree/parts/branch.js +2 -2
- package/x/tree/parts/branch.js.map +1 -1
- package/x/tree/parts/trunk.js +1 -1
- package/x/tree/parts/trunk.js.map +1 -1
- package/x/signals/derive.js.map +0 -1
- package/x/signals/tests/derive.test.js.map +0 -1
- /package/x/signals/tests/{derive.test.d.ts → derived.test.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -82,13 +82,13 @@ import {signal, effect} from "@e280/strata"
|
|
|
82
82
|
// when $count is changed, the effect fn is run
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
### 🚦 `signal.
|
|
86
|
-
- **signal.
|
|
85
|
+
### 🚦 `signal.derived` and `signal.lazy` are computed signals
|
|
86
|
+
- **signal.derived**
|
|
87
87
|
is for combining signals
|
|
88
88
|
```ts
|
|
89
89
|
const $a = signal(1)
|
|
90
90
|
const $b = signal(10)
|
|
91
|
-
const $product = signal.
|
|
91
|
+
const $product = signal.derived(() => $a() * $b())
|
|
92
92
|
|
|
93
93
|
$product() // 10
|
|
94
94
|
|
|
@@ -100,7 +100,7 @@ import {signal, effect} from "@e280/strata"
|
|
|
100
100
|
```
|
|
101
101
|
- **signal.lazy**
|
|
102
102
|
is for making special optimizations.
|
|
103
|
-
it's like
|
|
103
|
+
it's like derived, except it cannot trigger effects,
|
|
104
104
|
because it's so lazy it only computes the value on read, and only when necessary.
|
|
105
105
|
> *i repeat: lazy signals cannot trigger effects!*
|
|
106
106
|
|
|
@@ -122,27 +122,27 @@ import {signal, effect} from "@e280/strata"
|
|
|
122
122
|
$count()
|
|
123
123
|
$count(2)
|
|
124
124
|
```
|
|
125
|
-
- **same thing for
|
|
125
|
+
- **same thing for derived/lazy**
|
|
126
126
|
```ts
|
|
127
|
-
const $product = new
|
|
127
|
+
const $product = new Derived(() => $a() * $b())
|
|
128
128
|
```
|
|
129
129
|
```ts
|
|
130
130
|
const $product = new Lazy(() => $a() * $b())
|
|
131
131
|
```
|
|
132
132
|
- **conversions**
|
|
133
|
-
- all core primitives (signal/
|
|
133
|
+
- all core primitives (signal/derived/lazy) have a convert-to-hipster-fn method
|
|
134
134
|
```ts
|
|
135
135
|
new Signal(1).fn() // SignalFn<number>, hipster-fn
|
|
136
136
|
```
|
|
137
|
-
- and all hipster fns (signal/
|
|
137
|
+
- and all hipster fns (signal/derived/lazy) have a `.core` property to get the primitive
|
|
138
138
|
```ts
|
|
139
139
|
signal(0).core // Signal<number>, primitive instance
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
### 🚦 types
|
|
143
|
-
- **`Signaly<V>`** — can be `Signal<V>` or `
|
|
143
|
+
- **`Signaly<V>`** — can be `Signal<V>` or `Derived<V>` or `Lazy<V>`
|
|
144
144
|
- these are types for the core primitive classes
|
|
145
|
-
- **`SignalyFn<V>`** — can be `SignalFn<V>` or `
|
|
145
|
+
- **`SignalyFn<V>`** — can be `SignalFn<V>` or `DerivedFn<V>` or `LazyFn<V>`
|
|
146
146
|
- these `*Fn` types are for the hipster-syntax enabled variants
|
|
147
147
|
|
|
148
148
|
|
package/package.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {collectorEffect} from "./effect.js"
|
|
3
3
|
import {Reactive} from "./parts/reactive.js"
|
|
4
4
|
import {tracker} from "../tracker/tracker.js"
|
|
5
|
-
import {
|
|
5
|
+
import {DerivedFn, SignalOptions} from "./types.js"
|
|
6
6
|
import {defaultCompare} from "./utils/default-compare.js"
|
|
7
7
|
|
|
8
|
-
export class
|
|
8
|
+
export class Derived<V> extends Reactive<V> {
|
|
9
9
|
#dispose: () => void
|
|
10
10
|
|
|
11
11
|
constructor(formula: () => V, options?: Partial<SignalOptions>) {
|
|
@@ -35,7 +35,7 @@ export class Derive<V> extends Reactive<V> {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
fn() {
|
|
38
|
-
const that = this as
|
|
38
|
+
const that = this as Derived<V>
|
|
39
39
|
|
|
40
40
|
function f(): V {
|
|
41
41
|
return that.get()
|
|
@@ -55,7 +55,7 @@ export class Derive<V> extends Reactive<V> {
|
|
|
55
55
|
get: () => that.sneak,
|
|
56
56
|
})
|
|
57
57
|
|
|
58
|
-
return f as
|
|
58
|
+
return f as DerivedFn<V>
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
package/s/signals/index.ts
CHANGED
package/s/signals/porcelain.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import {Lazy} from "./lazy.js"
|
|
3
3
|
import {Signal} from "./signal.js"
|
|
4
|
-
import {
|
|
4
|
+
import {Derived} from "./derived.js"
|
|
5
5
|
import {SignalOptions} from "./types.js"
|
|
6
6
|
|
|
7
7
|
export function lazy<V>(
|
|
@@ -11,11 +11,11 @@ export function lazy<V>(
|
|
|
11
11
|
return new Lazy<V>(formula, options).fn()
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export function
|
|
14
|
+
export function derived<V>(
|
|
15
15
|
formula: () => V,
|
|
16
16
|
options?: Partial<SignalOptions>,
|
|
17
17
|
) {
|
|
18
|
-
return new
|
|
18
|
+
return new Derived<V>(formula, options).fn()
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export function signal<V>(
|
|
@@ -26,5 +26,5 @@ export function signal<V>(
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
signal.lazy = lazy
|
|
29
|
-
signal.
|
|
29
|
+
signal.derived = derived
|
|
30
30
|
|
|
@@ -3,13 +3,13 @@ import {Science} from "@e280/science"
|
|
|
3
3
|
|
|
4
4
|
import effectTest from "./tests/effect.test.js"
|
|
5
5
|
import signalTest from "./tests/signal.test.js"
|
|
6
|
-
import
|
|
6
|
+
import derivedTest from "./tests/derived.test.js"
|
|
7
7
|
import lazyTest from "./tests/lazy.test.js"
|
|
8
8
|
|
|
9
9
|
export default Science.suite({
|
|
10
10
|
"effect": effectTest,
|
|
11
11
|
"signal": signalTest,
|
|
12
|
-
"
|
|
12
|
+
"derived": derivedTest,
|
|
13
13
|
"lazy": lazyTest,
|
|
14
14
|
})
|
|
15
15
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
|
|
2
2
|
import {Science, test, expect, spy} from "@e280/science"
|
|
3
3
|
import {effect} from "../effect.js"
|
|
4
|
-
import {
|
|
4
|
+
import {derived, signal} from "../porcelain.js"
|
|
5
5
|
|
|
6
6
|
export default Science.suite({
|
|
7
7
|
"basic": test(async() => {
|
|
8
8
|
const a = signal(1)
|
|
9
9
|
const b = signal(10)
|
|
10
|
-
const product =
|
|
10
|
+
const product = derived(() => a.get() * b.get())
|
|
11
11
|
expect(product.get()).is(10)
|
|
12
12
|
|
|
13
13
|
await a.set(2)
|
|
@@ -17,7 +17,7 @@ export default Science.suite({
|
|
|
17
17
|
"effect reacts to derived changes": test(async() => {
|
|
18
18
|
const a = signal(1)
|
|
19
19
|
const b = signal(10)
|
|
20
|
-
const product =
|
|
20
|
+
const product = derived(() => a.value * b.value)
|
|
21
21
|
|
|
22
22
|
let mutations = 0
|
|
23
23
|
effect(() => {
|
|
@@ -39,7 +39,7 @@ export default Science.suite({
|
|
|
39
39
|
"effect doesn't overreact to derived": test(async() => {
|
|
40
40
|
const a = signal(1)
|
|
41
41
|
const b = signal(10)
|
|
42
|
-
const product = signal.
|
|
42
|
+
const product = signal.derived(() => a.value * b.value)
|
|
43
43
|
|
|
44
44
|
const derivedSpy = spy(() => {})
|
|
45
45
|
product.on(derivedSpy)
|
|
@@ -63,7 +63,7 @@ export default Science.suite({
|
|
|
63
63
|
"derived.on": test(async() => {
|
|
64
64
|
const a = signal(1)
|
|
65
65
|
const b = signal(10)
|
|
66
|
-
const product = signal.
|
|
66
|
+
const product = signal.derived(() => a.value * b.value)
|
|
67
67
|
expect(product.value).is(10)
|
|
68
68
|
|
|
69
69
|
const mole = spy((_v: number) => {})
|
|
@@ -79,7 +79,7 @@ export default Science.suite({
|
|
|
79
79
|
"derived.on not called if result doesn't change": test(async() => {
|
|
80
80
|
const a = signal(1)
|
|
81
81
|
const b = signal(10)
|
|
82
|
-
const product = signal.
|
|
82
|
+
const product = signal.derived(() => a.value * b.value)
|
|
83
83
|
expect(product.value).is(10)
|
|
84
84
|
|
|
85
85
|
const mole = spy((_v: number) => {})
|
|
@@ -100,7 +100,7 @@ export default Science.suite({
|
|
|
100
100
|
"basic": test(async() => {
|
|
101
101
|
const a = signal(1)
|
|
102
102
|
const b = signal(10)
|
|
103
|
-
const product =
|
|
103
|
+
const product = derived(() => a() * b())
|
|
104
104
|
expect(product()).is(10)
|
|
105
105
|
|
|
106
106
|
await a(2)
|
package/s/signals/types.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
import {Lazy} from "./lazy.js"
|
|
3
3
|
import {Signal} from "./signal.js"
|
|
4
|
-
import {
|
|
4
|
+
import {Derived} from "./derived.js"
|
|
5
5
|
|
|
6
|
-
export type Signaly<V> = Signal<V> |
|
|
7
|
-
export type SignalyFn<V> = SignalFn<V> |
|
|
6
|
+
export type Signaly<V> = Signal<V> | Derived<V> | Lazy<V>
|
|
7
|
+
export type SignalyFn<V> = SignalFn<V> | DerivedFn<V> | LazyFn<V>
|
|
8
8
|
|
|
9
9
|
export type SignalOptions = {
|
|
10
10
|
compare: (a: any, b: any) => boolean
|
|
@@ -23,8 +23,8 @@ export type LazyFn<V> = {
|
|
|
23
23
|
core: Lazy<V>
|
|
24
24
|
} & Lazy<V>
|
|
25
25
|
|
|
26
|
-
export type
|
|
26
|
+
export type DerivedFn<V> = {
|
|
27
27
|
(): V
|
|
28
|
-
core:
|
|
29
|
-
} &
|
|
28
|
+
core: Derived<V>
|
|
29
|
+
} & Derived<V>
|
|
30
30
|
|
package/s/tree/parts/branch.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import {deep} from "@e280/stz"
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import {derived} from "../../signals/porcelain.js"
|
|
4
|
+
import {Derived} from "../../signals/derived.js"
|
|
5
5
|
import {Branchstate, Immutable, Mutator, Options, Selector, Tree} from "./types.js"
|
|
6
6
|
|
|
7
7
|
export class Branch<S extends Branchstate, ParentState extends Branchstate = any> implements Tree<S> {
|
|
8
|
-
#immutable:
|
|
8
|
+
#immutable: Derived<Immutable<S>>
|
|
9
9
|
|
|
10
10
|
constructor(
|
|
11
11
|
private parent: Tree<ParentState>,
|
|
@@ -13,7 +13,7 @@ export class Branch<S extends Branchstate, ParentState extends Branchstate = any
|
|
|
13
13
|
private options: Options,
|
|
14
14
|
) {
|
|
15
15
|
|
|
16
|
-
this.#immutable =
|
|
16
|
+
this.#immutable = derived(() => {
|
|
17
17
|
const state = selector(parent.state as any)
|
|
18
18
|
return deep.freeze(options.clone(state)) as Immutable<S>
|
|
19
19
|
}, {compare: deep.equal})
|
package/s/tree/parts/trunk.ts
CHANGED
|
@@ -3,7 +3,7 @@ import {deep} from "@e280/stz"
|
|
|
3
3
|
import {Branch} from "./branch.js"
|
|
4
4
|
import {signal} from "../../signals/porcelain.js"
|
|
5
5
|
import {trunkSetup} from "./utils/setup.js"
|
|
6
|
-
import {
|
|
6
|
+
import {Derived} from "../../signals/derived.js"
|
|
7
7
|
import {Signal} from "../../signals/signal.js"
|
|
8
8
|
import {Chronobranch} from "./chronobranch.js"
|
|
9
9
|
import {processOptions} from "./utils/process-options.js"
|
|
@@ -19,14 +19,14 @@ export class Trunk<S extends Trunkstate> implements Tree<S> {
|
|
|
19
19
|
|
|
20
20
|
options: Options
|
|
21
21
|
|
|
22
|
-
#immutable:
|
|
22
|
+
#immutable: Derived<Immutable<S>>
|
|
23
23
|
#mutable: Signal<S>
|
|
24
24
|
#mutationLock = 0
|
|
25
25
|
|
|
26
26
|
constructor(state: S, options: Partial<Options> = {}) {
|
|
27
27
|
this.options = processOptions(options)
|
|
28
28
|
this.#mutable = signal(state)
|
|
29
|
-
this.#immutable = signal.
|
|
29
|
+
this.#immutable = signal.derived(() =>
|
|
30
30
|
deep.freeze(this.options.clone(this.#mutable.get())) as Immutable<S>
|
|
31
31
|
)
|
|
32
32
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Reactive } from "./parts/reactive.js";
|
|
2
|
-
import {
|
|
3
|
-
export declare class
|
|
2
|
+
import { DerivedFn, SignalOptions } from "./types.js";
|
|
3
|
+
export declare class Derived<V> extends Reactive<V> {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(formula: () => V, options?: Partial<SignalOptions>);
|
|
6
6
|
dispose(): void;
|
|
7
7
|
get core(): this;
|
|
8
|
-
fn():
|
|
8
|
+
fn(): DerivedFn<V>;
|
|
9
9
|
}
|
|
@@ -2,7 +2,7 @@ import { collectorEffect } from "./effect.js";
|
|
|
2
2
|
import { Reactive } from "./parts/reactive.js";
|
|
3
3
|
import { tracker } from "../tracker/tracker.js";
|
|
4
4
|
import { defaultCompare } from "./utils/default-compare.js";
|
|
5
|
-
export class
|
|
5
|
+
export class Derived extends Reactive {
|
|
6
6
|
#dispose;
|
|
7
7
|
constructor(formula, options) {
|
|
8
8
|
const compare = options?.compare ?? defaultCompare;
|
|
@@ -46,4 +46,4 @@ export class Derive extends Reactive {
|
|
|
46
46
|
return f;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=
|
|
49
|
+
//# sourceMappingURL=derived.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derived.js","sourceRoot":"","sources":["../../s/signals/derived.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAE7C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAA;AAEzD,MAAM,OAAO,OAAW,SAAQ,QAAW;IAC1C,QAAQ,CAAY;IAEpB,YAAY,OAAgB,EAAE,OAAgC;QAC7D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAA;QAClD,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,IAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;YACvB,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;gBAClB,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;iBAClB,CAAC,CAAA;YACH,CAAC;QACF,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,OAAO;QACN,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,EAAE;QACD,MAAM,IAAI,GAAG,IAAkB,CAAA;QAE/B,SAAS,CAAC;YACT,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QAED,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACb,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACd,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEzB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;SACrB,CAAC,CAAA;QAEF,OAAO,CAAiB,CAAA;IACzB,CAAC;CACD"}
|
package/x/signals/index.d.ts
CHANGED
package/x/signals/index.js
CHANGED
package/x/signals/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/signals/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/signals/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
|
package/x/signals/porcelain.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SignalOptions } from "./types.js";
|
|
2
2
|
export declare function lazy<V>(formula: () => V, options?: Partial<SignalOptions>): import("./types.js").LazyFn<V>;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function derived<V>(formula: () => V, options?: Partial<SignalOptions>): import("./types.js").DerivedFn<V>;
|
|
4
4
|
export declare function signal<V>(value: V, options?: Partial<SignalOptions>): import("./types.js").SignalFn<V>;
|
|
5
5
|
export declare namespace signal {
|
|
6
6
|
var lazy: typeof import("./porcelain.js").lazy;
|
|
7
|
-
var
|
|
7
|
+
var derived: typeof import("./porcelain.js").derived;
|
|
8
8
|
}
|
package/x/signals/porcelain.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Lazy } from "./lazy.js";
|
|
2
2
|
import { Signal } from "./signal.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Derived } from "./derived.js";
|
|
4
4
|
export function lazy(formula, options) {
|
|
5
5
|
return new Lazy(formula, options).fn();
|
|
6
6
|
}
|
|
7
|
-
export function
|
|
8
|
-
return new
|
|
7
|
+
export function derived(formula, options) {
|
|
8
|
+
return new Derived(formula, options).fn();
|
|
9
9
|
}
|
|
10
10
|
export function signal(value, options) {
|
|
11
11
|
return new Signal(value, options).fn();
|
|
12
12
|
}
|
|
13
13
|
signal.lazy = lazy;
|
|
14
|
-
signal.
|
|
14
|
+
signal.derived = derived;
|
|
15
15
|
//# sourceMappingURL=porcelain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"porcelain.js","sourceRoot":"","sources":["../../s/signals/porcelain.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"porcelain.js","sourceRoot":"","sources":["../../s/signals/porcelain.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AAGpC,MAAM,UAAU,IAAI,CAClB,OAAgB,EAChB,OAAgC;IAEjC,OAAO,IAAI,IAAI,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAgB,EAChB,OAAgC;IAEjC,OAAO,IAAI,OAAO,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,KAAQ,EACR,OAAgC;IAEjC,OAAO,IAAI,MAAM,CAAI,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;AAClB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Science } from "@e280/science";
|
|
2
2
|
import effectTest from "./tests/effect.test.js";
|
|
3
3
|
import signalTest from "./tests/signal.test.js";
|
|
4
|
-
import
|
|
4
|
+
import derivedTest from "./tests/derived.test.js";
|
|
5
5
|
import lazyTest from "./tests/lazy.test.js";
|
|
6
6
|
export default Science.suite({
|
|
7
7
|
"effect": effectTest,
|
|
8
8
|
"signal": signalTest,
|
|
9
|
-
"
|
|
9
|
+
"derived": derivedTest,
|
|
10
10
|
"lazy": lazyTest,
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=signals.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.test.js","sourceRoot":"","sources":["../../s/signals/signals.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"signals.test.js","sourceRoot":"","sources":["../../s/signals/signals.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,WAAW,MAAM,yBAAyB,CAAA;AACjD,OAAO,QAAQ,MAAM,sBAAsB,CAAA;AAE3C,eAAe,OAAO,CAAC,KAAK,CAAC;IAC5B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CAChB,CAAC,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Science, test, expect, spy } from "@e280/science";
|
|
2
2
|
import { effect } from "../effect.js";
|
|
3
|
-
import {
|
|
3
|
+
import { derived, signal } from "../porcelain.js";
|
|
4
4
|
export default Science.suite({
|
|
5
5
|
"basic": test(async () => {
|
|
6
6
|
const a = signal(1);
|
|
7
7
|
const b = signal(10);
|
|
8
|
-
const product =
|
|
8
|
+
const product = derived(() => a.get() * b.get());
|
|
9
9
|
expect(product.get()).is(10);
|
|
10
10
|
await a.set(2);
|
|
11
11
|
expect(product.get()).is(20);
|
|
@@ -13,7 +13,7 @@ export default Science.suite({
|
|
|
13
13
|
"effect reacts to derived changes": test(async () => {
|
|
14
14
|
const a = signal(1);
|
|
15
15
|
const b = signal(10);
|
|
16
|
-
const product =
|
|
16
|
+
const product = derived(() => a.value * b.value);
|
|
17
17
|
let mutations = 0;
|
|
18
18
|
effect(() => {
|
|
19
19
|
void product.get();
|
|
@@ -31,7 +31,7 @@ export default Science.suite({
|
|
|
31
31
|
"effect doesn't overreact to derived": test(async () => {
|
|
32
32
|
const a = signal(1);
|
|
33
33
|
const b = signal(10);
|
|
34
|
-
const product = signal.
|
|
34
|
+
const product = signal.derived(() => a.value * b.value);
|
|
35
35
|
const derivedSpy = spy(() => { });
|
|
36
36
|
product.on(derivedSpy);
|
|
37
37
|
let mutations = 0;
|
|
@@ -51,7 +51,7 @@ export default Science.suite({
|
|
|
51
51
|
"derived.on": test(async () => {
|
|
52
52
|
const a = signal(1);
|
|
53
53
|
const b = signal(10);
|
|
54
|
-
const product = signal.
|
|
54
|
+
const product = signal.derived(() => a.value * b.value);
|
|
55
55
|
expect(product.value).is(10);
|
|
56
56
|
const mole = spy((_v) => { });
|
|
57
57
|
product.on(mole);
|
|
@@ -64,7 +64,7 @@ export default Science.suite({
|
|
|
64
64
|
"derived.on not called if result doesn't change": test(async () => {
|
|
65
65
|
const a = signal(1);
|
|
66
66
|
const b = signal(10);
|
|
67
|
-
const product = signal.
|
|
67
|
+
const product = signal.derived(() => a.value * b.value);
|
|
68
68
|
expect(product.value).is(10);
|
|
69
69
|
const mole = spy((_v) => { });
|
|
70
70
|
product.on(mole);
|
|
@@ -81,11 +81,11 @@ export default Science.suite({
|
|
|
81
81
|
"basic": test(async () => {
|
|
82
82
|
const a = signal(1);
|
|
83
83
|
const b = signal(10);
|
|
84
|
-
const product =
|
|
84
|
+
const product = derived(() => a() * b());
|
|
85
85
|
expect(product()).is(10);
|
|
86
86
|
await a(2);
|
|
87
87
|
expect(product()).is(20);
|
|
88
88
|
}),
|
|
89
89
|
}),
|
|
90
90
|
});
|
|
91
|
-
//# sourceMappingURL=
|
|
91
|
+
//# sourceMappingURL=derived.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derived.test.js","sourceRoot":"","sources":["../../../s/signals/tests/derived.test.ts"],"names":[],"mappings":"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"}
|
package/x/signals/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Lazy } from "./lazy.js";
|
|
2
2
|
import { Signal } from "./signal.js";
|
|
3
|
-
import {
|
|
4
|
-
export type Signaly<V> = Signal<V> |
|
|
5
|
-
export type SignalyFn<V> = SignalFn<V> |
|
|
3
|
+
import { Derived } from "./derived.js";
|
|
4
|
+
export type Signaly<V> = Signal<V> | Derived<V> | Lazy<V>;
|
|
5
|
+
export type SignalyFn<V> = SignalFn<V> | DerivedFn<V> | LazyFn<V>;
|
|
6
6
|
export type SignalOptions = {
|
|
7
7
|
compare: (a: any, b: any) => boolean;
|
|
8
8
|
};
|
|
@@ -16,7 +16,7 @@ export type LazyFn<V> = {
|
|
|
16
16
|
(): V;
|
|
17
17
|
core: Lazy<V>;
|
|
18
18
|
} & Lazy<V>;
|
|
19
|
-
export type
|
|
19
|
+
export type DerivedFn<V> = {
|
|
20
20
|
(): V;
|
|
21
|
-
core:
|
|
22
|
-
} &
|
|
21
|
+
core: Derived<V>;
|
|
22
|
+
} & Derived<V>;
|
package/x/tree/parts/branch.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { deep } from "@e280/stz";
|
|
2
|
-
import {
|
|
2
|
+
import { derived } from "../../signals/porcelain.js";
|
|
3
3
|
export class Branch {
|
|
4
4
|
parent;
|
|
5
5
|
selector;
|
|
@@ -9,7 +9,7 @@ export class Branch {
|
|
|
9
9
|
this.parent = parent;
|
|
10
10
|
this.selector = selector;
|
|
11
11
|
this.options = options;
|
|
12
|
-
this.#immutable =
|
|
12
|
+
this.#immutable = derived(() => {
|
|
13
13
|
const state = selector(parent.state);
|
|
14
14
|
return deep.freeze(options.clone(state));
|
|
15
15
|
}, { compare: deep.equal });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../s/tree/parts/branch.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../s/tree/parts/branch.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAA;AAIlD,MAAM,OAAO,MAAM;IAIR;IACA;IACA;IALV,UAAU,CAAuB;IAEjC,YACU,MAAyB,EACzB,QAAkC,EAClC,OAAgB;QAFhB,WAAM,GAAN,MAAM,CAAmB;QACzB,aAAQ,GAAR,QAAQ,CAA0B;QAClC,YAAO,GAAP,OAAO,CAAS;QAGzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAY,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAiB,CAAA;QACzD,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CACnC,CAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,MAAM,CAA0B,QAA0B;QACzD,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;CACD"}
|
package/x/tree/parts/trunk.js
CHANGED
|
@@ -18,7 +18,7 @@ export class Trunk {
|
|
|
18
18
|
constructor(state, options = {}) {
|
|
19
19
|
this.options = processOptions(options);
|
|
20
20
|
this.#mutable = signal(state);
|
|
21
|
-
this.#immutable = signal.
|
|
21
|
+
this.#immutable = signal.derived(() => deep.freeze(this.options.clone(this.#mutable.get())));
|
|
22
22
|
}
|
|
23
23
|
get state() {
|
|
24
24
|
return this.#immutable.get();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trunk.js","sourceRoot":"","sources":["../../../s/tree/parts/trunk.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAA;AAGzD,MAAM,OAAO,KAAK;IACjB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,CAAC,SAAS,GAAG,CAAwB,KAAQ,EAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACV,CAAC,CAAA;IAEF,OAAO,CAAS;IAEhB,UAAU,
|
|
1
|
+
{"version":3,"file":"trunk.js","sourceRoot":"","sources":["../../../s/tree/parts/trunk.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAA;AAGzD,MAAM,OAAO,KAAK;IACjB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,CAAC,SAAS,GAAG,CAAwB,KAAQ,EAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACV,CAAC,CAAA;IAEF,OAAO,CAAS;IAEhB,UAAU,CAAuB;IACjC,QAAQ,CAAW;IACnB,aAAa,GAAG,CAAC,CAAA;IAEjB,YAAY,KAAQ,EAAE,UAA4B,EAAE;QACnD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAiB,CACpE,CAAA;IACF,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAClD,IAAI,CAAC;YACJ,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;YACjC,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,MAAM,QAAQ,GAAG,KAAK,CAAA;YACtB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACjD,IAAI,SAAS;gBACZ,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;gBACO,CAAC;YAAC,IAAI,CAAC,aAAa,EAAE,CAAA;QAAC,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAQ;QACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAA0B,QAA0B;QACzD,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,YAAY,CACV,KAAa,EACb,QAAqC;QAEtC,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7D,CAAC"}
|
package/x/signals/derive.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../s/signals/derive.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAE7C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAA;AAEzD,MAAM,OAAO,MAAU,SAAQ,QAAW;IACzC,QAAQ,CAAY;IAEpB,YAAY,OAAgB,EAAE,OAAgC;QAC7D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAA;QAClD,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,IAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;YACvB,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;gBAClB,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;iBAClB,CAAC,CAAA;YACH,CAAC;QACF,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,OAAO;QACN,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,EAAE;QACD,MAAM,IAAI,GAAG,IAAiB,CAAA;QAE9B,SAAS,CAAC;YACT,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QAED,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACb,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACd,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEzB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;SACrB,CAAC,CAAA;QAEF,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE;YACjC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;SACrB,CAAC,CAAA;QAEF,OAAO,CAAgB,CAAA;IACxB,CAAC;CACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"derive.test.js","sourceRoot":"","sources":["../../../s/signals/tests/derive.test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|