@e280/strata 0.3.0-0 → 0.3.0-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/README.md CHANGED
@@ -46,7 +46,7 @@ import {signal, effect, derived, lazy} from "@e280/strata"
46
46
  ```ts
47
47
  $count(1)
48
48
  ```
49
- - 🤯 **await all downstream effects***
49
+ - 🤯 **await all downstream effects**
50
50
  ```ts
51
51
  await $count(2)
52
52
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/strata",
3
- "version": "0.3.0-0",
3
+ "version": "0.3.0-2",
4
4
  "description": "state management",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
@@ -30,11 +30,11 @@
30
30
  "_tscw": "tsc -w"
31
31
  },
32
32
  "dependencies": {
33
- "@e280/stz": "^0.2.22"
33
+ "@e280/stz": "^0.2.24"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@e280/science": "^0.1.8",
37
- "@e280/scute": "^0.2.2",
37
+ "@e280/scute": "^0.2.3",
38
38
  "@types/node": "^25.3.5",
39
39
  "npm-run-all": "^4.1.5",
40
40
  "typescript": "^5.9.3"
@@ -19,7 +19,7 @@ export class Derived<Value> {
19
19
  }
20
20
 
21
21
  get value() {
22
- return (this as Derived<any>).get()
22
+ return this.get()
23
23
  }
24
24
 
25
25
  get() {
@@ -16,8 +16,7 @@ export function derived<Value>(formula: () => Value, options?: Partial<SignalOpt
16
16
  Object.setPrototypeOf(fn, Derived.prototype)
17
17
  fn.on = sub<[Value]>()
18
18
 
19
- const {result, dispose} = watch(formula, async() => {
20
- const value = formula()
19
+ const {result, dispose} = watch(formula, async(value) => {
21
20
  const isChanged = !compare(fn.sneak, value)
22
21
  if (isChanged) {
23
22
  fn.sneak = value
@@ -61,6 +61,18 @@ export default Science.suite({
61
61
  expect(derivedSpy.spy.calls.length).is(1)
62
62
  }),
63
63
 
64
+ "derived handles changing deps": test(async() => {
65
+ const toggle = signal(true)
66
+ const a = signal(1)
67
+ const b = signal(2)
68
+ const comp = derived(() => toggle() ? a() : b())
69
+ expect(comp()).is(1)
70
+ await toggle(false)
71
+ expect(comp()).is(2)
72
+ await b(3)
73
+ expect(comp()).is(3)
74
+ }),
75
+
64
76
  "derived.on": test(async() => {
65
77
  const a = signal(1)
66
78
  const b = signal(10)
@@ -23,11 +23,11 @@ export class Signal<Value> {
23
23
  }
24
24
 
25
25
  get value() {
26
- return (this as Signal<any>).get()
26
+ return this.get()
27
27
  }
28
28
 
29
- set value(value: any) {
30
- void (this as Signal<any>).set(value)
29
+ set value(value: Value) {
30
+ void this.set(value)
31
31
  }
32
32
 
33
33
  get() {
@@ -8,7 +8,7 @@ export declare class Derived<Value> {
8
8
  on: Sub<[Value]>;
9
9
  dispose: () => void;
10
10
  constructor(formula: () => Value, options?: Partial<SignalOptions>);
11
- get value(): any;
11
+ get value(): Value;
12
12
  get(): Value;
13
13
  toString(): string;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../s/signals/derived/class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAMhD,MAAM,OAAO,OAAO;IACnB,KAAK,CAAQ;IACb,EAAE,CAAe;IACjB,OAAO,CAAa;IAEpB,YAAY,OAAoB,EAAE,OAAgC;QACjE,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,KAAK;QACR,OAAQ,IAAqB,CAAC,GAAG,EAAE,CAAA;IACpC,CAAC;IAED,GAAG;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,QAAQ;QACP,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;IAC3C,CAAC;CACD"}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../s/signals/derived/class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAMhD,MAAM,OAAO,OAAO;IACnB,KAAK,CAAQ;IACb,EAAE,CAAe;IACjB,OAAO,CAAa;IAEpB,YAAY,OAAoB,EAAE,OAAgC;QACjE,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,GAAG;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,QAAQ;QACP,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;IAC3C,CAAC;CACD"}
@@ -10,8 +10,7 @@ export function derived(formula, options) {
10
10
  const compare = options?.compare ?? defaultCompare;
11
11
  Object.setPrototypeOf(fn, Derived.prototype);
12
12
  fn.on = sub();
13
- const { result, dispose } = watch(formula, async () => {
14
- const value = formula();
13
+ const { result, dispose } = watch(formula, async (value) => {
15
14
  const isChanged = !compare(fn.sneak, value);
16
15
  if (isChanged) {
17
16
  fn.sneak = value;
@@ -1 +1 @@
1
- {"version":3,"file":"fn.js","sourceRoot":"","sources":["../../../s/signals/derived/fn.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAA;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAA;AAE1D,MAAM,UAAU,OAAO,CAAQ,OAAoB,EAAE,OAAgC;IACpF,SAAS,EAAE;QACV,OAAQ,EAAqB,CAAC,GAAG,EAAE,CAAA;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAA;IAElD,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5C,EAAE,CAAC,EAAE,GAAG,GAAG,EAAW,CAAA;IAEtB,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,IAAG,EAAE;QAClD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAA;QACvB,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3C,IAAI,SAAS,EAAE,CAAC;YACf,EAAE,CAAC,KAAK,GAAG,KAAK,CAAA;YAChB,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;aAChB,CAAC,CAAA;QACH,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,KAAK,GAAG,MAAM,CAAA;IACjB,EAAE,CAAC,OAAO,GAAG,OAAO,CAAA;IAEpB,OAAO,EAAoB,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"fn.js","sourceRoot":"","sources":["../../../s/signals/derived/fn.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAA;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAA;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAA;AAE1D,MAAM,UAAU,OAAO,CAAQ,OAAoB,EAAE,OAAgC;IACpF,SAAS,EAAE;QACV,OAAQ,EAAqB,CAAC,GAAG,EAAE,CAAA;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAA;IAElD,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5C,EAAE,CAAC,EAAE,GAAG,GAAG,EAAW,CAAA;IAEtB,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAC,KAAK,EAAE,EAAE;QACvD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC3C,IAAI,SAAS,EAAE,CAAC;YACf,EAAE,CAAC,KAAK,GAAG,KAAK,CAAA;YAChB,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;aAChB,CAAC,CAAA;QACH,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,KAAK,GAAG,MAAM,CAAA;IACjB,EAAE,CAAC,OAAO,GAAG,OAAO,CAAA;IAEpB,OAAO,EAAoB,CAAA;AAC5B,CAAC"}
@@ -3,6 +3,7 @@ declare const _default: {
3
3
  basic: Science.Test;
4
4
  "effect reacts to derived changes": Science.Test;
5
5
  "effect doesn't overreact to derived": Science.Test;
6
+ "derived handles changing deps": Science.Test;
6
7
  "derived.on": Science.Test;
7
8
  "derived.on not called if result doesn't change": Science.Test;
8
9
  "hipster syntax": Science.Test;
@@ -49,6 +49,17 @@ export default Science.suite({
49
49
  expect(mutations).is(2);
50
50
  expect(derivedSpy.spy.calls.length).is(1);
51
51
  }),
52
+ "derived handles changing deps": test(async () => {
53
+ const toggle = signal(true);
54
+ const a = signal(1);
55
+ const b = signal(2);
56
+ const comp = derived(() => toggle() ? a() : b());
57
+ expect(comp()).is(1);
58
+ await toggle(false);
59
+ expect(comp()).is(2);
60
+ await b(3);
61
+ expect(comp()).is(3);
62
+ }),
52
63
  "derived.on": test(async () => {
53
64
  const a = signal(1);
54
65
  const b = signal(10);
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../s/signals/derived/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../s/signals/derived/test.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@ export declare class Signal<Value> {
11
11
  [_lock]: boolean;
12
12
  [_compare]: (a: any, b: any) => boolean;
13
13
  constructor(value: Value, options?: Partial<SignalOptions>);
14
- get value(): any;
15
- set value(value: any);
14
+ get value(): Value;
15
+ set value(value: Value);
16
16
  get(): Value;
17
17
  set(value: Value, forcePublish?: boolean): Promise<Value>;
18
18
  publish(): Promise<Value>;
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../s/signals/signal/class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAA;AAE9B,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,qBAAqB,CAAA;AAOnD,MAAM,OAAO,MAAM;IAClB,KAAK,CAAQ;IACb,EAAE,CAED;IAAA,CAAC,KAAK,CAAC,CACP;IAAA,CAAC,QAAQ,CAAC,CAA8B;IAEzC,YAAY,KAAY,EAAE,OAAgC;QACzD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QACzE,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK;QACR,OAAQ,IAAoB,CAAC,GAAG,EAAE,CAAA;IACnC,CAAC;IAED,IAAI,KAAK,CAAC,KAAU;QACnB,KAAM,IAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,GAAG;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAY,EAAE,YAAY,GAAG,KAAK;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;YACnD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACrB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,8CAA8C;QAC9C,iCAAiC;QACjC,mCAAmC;QACnC,uHAAuH;QAEvH,IAAI,IAAI,CAAC,KAAK,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAA;QAE7C,IAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YAClB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;aAClB,CAAC,CAAA;QACH,CAAC;gBACO,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,MAAM,OAAO,CAAA;QACb,OAAO,KAAK,CAAA;IACb,CAAC;IAED,QAAQ;QACP,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;IAC3C,CAAC;CACD"}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../s/signals/signal/class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAA;AAE9B,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,qBAAqB,CAAA;AAOnD,MAAM,OAAO,MAAM;IAClB,KAAK,CAAQ;IACb,EAAE,CAED;IAAA,CAAC,KAAK,CAAC,CACP;IAAA,CAAC,QAAQ,CAAC,CAA8B;IAEzC,YAAY,KAAY,EAAE,OAAgC;QACzD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QACzE,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,KAAY;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IAED,GAAG;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAY,EAAE,YAAY,GAAG,KAAK;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;YACnD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACrB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,8CAA8C;QAC9C,iCAAiC;QACjC,mCAAmC;QACnC,uHAAuH;QAEvH,IAAI,IAAI,CAAC,KAAK,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAA;QAE7C,IAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YAClB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;gBACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;aAClB,CAAC,CAAA;QACH,CAAC;gBACO,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,MAAM,OAAO,CAAA;QACb,OAAO,KAAK,CAAA;IACb,CAAC;IAED,QAAQ;QACP,OAAO,aAAa,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;IAC3C,CAAC;CACD"}
@@ -21,6 +21,7 @@ declare const _default: {
21
21
  basic: Science.Test;
22
22
  "effect reacts to derived changes": Science.Test;
23
23
  "effect doesn't overreact to derived": Science.Test;
24
+ "derived handles changing deps": Science.Test;
24
25
  "derived.on": Science.Test;
25
26
  "derived.on not called if result doesn't change": Science.Test;
26
27
  "hipster syntax": Science.Test;