async-reactivity 2.0.5 → 2.0.6

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/lib/computed.js CHANGED
@@ -118,6 +118,10 @@ export default class Computed extends Tracker {
118
118
  super.invalidate();
119
119
  }
120
120
  }
121
+ forceInvalidate() {
122
+ this.invalidate();
123
+ this.state = ComputedState.Invalid;
124
+ }
121
125
  validate(dependency) {
122
126
  this.dependencies.set(dependency, false);
123
127
  }
@@ -114,6 +114,22 @@ describe('computed', function () {
114
114
  assert.strictEqual(c.value, 6);
115
115
  assert.strictEqual(gate, 1);
116
116
  });
117
+ it('compute when forced', function () {
118
+ let gate = 0;
119
+ const a = new Ref(5);
120
+ const b = new Computed((value) => {
121
+ return value(a) % 2;
122
+ });
123
+ const c = new Computed((value) => {
124
+ gate++;
125
+ return value(b) + 5;
126
+ });
127
+ assert.strictEqual(c.value, 6);
128
+ assert.strictEqual(gate, 1);
129
+ c.forceInvalidate();
130
+ assert.strictEqual(c.value, 6);
131
+ assert.strictEqual(gate, 2);
132
+ });
117
133
  });
118
134
  describe('async computed', function () {
119
135
  it('getter', async function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "async-reactivity",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "types/index.d.ts",
@@ -133,6 +133,25 @@ describe('computed', function () {
133
133
  assert.strictEqual(c.value, 6);
134
134
  assert.strictEqual(gate, 1);
135
135
  });
136
+
137
+ it('compute when forced', function () {
138
+ let gate = 0;
139
+ const a = new Ref(5);
140
+ const b = new Computed((value) => {
141
+ return value(a) % 2;
142
+ });
143
+ const c = new Computed((value) => {
144
+ gate++;
145
+ return value(b) + 5;
146
+ });
147
+
148
+ assert.strictEqual(c.value, 6);
149
+ assert.strictEqual(gate, 1);
150
+
151
+ c.forceInvalidate();
152
+ assert.strictEqual(c.value, 6);
153
+ assert.strictEqual(gate, 2);
154
+ });
136
155
  });
137
156
 
138
157
  describe('async computed', function () {
package/src/computed.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import Dependency from "./dependency.js";
2
2
  import Dependent from "./dependent.js";
3
- import Ref from "./ref.js";
4
3
  import Tracker from "./tracker.js";
5
4
 
6
5
  declare type TrackValue = <T>(dependency: Dependency<T>) => T;
@@ -137,6 +136,11 @@ export default class Computed<T> extends Tracker<T> implements Dependent, Depend
137
136
  }
138
137
  }
139
138
 
139
+ public forceInvalidate() {
140
+ this.invalidate();
141
+ this.state = ComputedState.Invalid;
142
+ }
143
+
140
144
  public validate(dependency: Dependency<any>) {
141
145
  this.dependencies.set(dependency, false);
142
146
  }
@@ -22,6 +22,7 @@ export default class Computed<T> extends Tracker<T> implements Dependent, Depend
22
22
  private trackDependency;
23
23
  private finalizeComputing;
24
24
  invalidate(): void;
25
+ forceInvalidate(): void;
25
26
  validate(dependency: Dependency<any>): void;
26
27
  private validateDependents;
27
28
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../src/computed.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;AAWrF,MAAM,CAAC,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,cAAc,CAAC,CAAI;IAC3B,OAAO,CAAC,qBAAqB,CAAC,CAA0C;IACxE,OAAO,CAAC,yBAAyB,CAAC,CAAgB;gBAEtC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAMlC,OAAO,CAAC,qBAAqB;IAS7B,IAAW,KAAK,IAAI,CAAC,CAMpB;IAED,OAAO,CAAC,OAAO;IA0Cf,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe,CAAwC;IAE/D,OAAO,CAAC,iBAAiB;IAMlB,UAAU;IAUV,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAI3C,OAAO,CAAC,kBAAkB;IAMnB,OAAO;CAOjB"}
1
+ {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../src/computed.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;AAWrF,MAAM,CAAC,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,cAAc,CAAC,CAAI;IAC3B,OAAO,CAAC,qBAAqB,CAAC,CAA0C;IACxE,OAAO,CAAC,yBAAyB,CAAC,CAAgB;gBAEtC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAMlC,OAAO,CAAC,qBAAqB;IAS7B,IAAW,KAAK,IAAI,CAAC,CAMpB;IAED,OAAO,CAAC,OAAO;IA0Cf,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe,CAAwC;IAE/D,OAAO,CAAC,iBAAiB;IAMlB,UAAU;IAUV,eAAe;IAKf,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAI3C,OAAO,CAAC,kBAAkB;IAMnB,OAAO;CAOjB"}