async-reactivity 1.0.0
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 +129 -0
- package/lib/dependency.js +2 -0
- package/lib/dependent.js +2 -0
- package/lib/index.js +12 -0
- package/lib/index.test.js +335 -0
- package/lib/ref.js +23 -0
- package/lib/tracker.js +22 -0
- package/lib/watcher.js +41 -0
- package/package.json +24 -0
- package/src/computed.ts +148 -0
- package/src/dependency.ts +7 -0
- package/src/dependent.ts +7 -0
- package/src/index.test.ts +310 -0
- package/src/index.ts +5 -0
- package/src/ref.ts +22 -0
- package/src/tracker.ts +27 -0
- package/src/tsconfig.json +95 -0
- package/src/watcher.ts +47 -0
- package/types/computed.d.ts +30 -0
- package/types/computed.d.ts.map +1 -0
- package/types/dependency.d.ts +7 -0
- package/types/dependency.d.ts.map +1 -0
- package/types/dependent.d.ts +7 -0
- package/types/dependent.d.ts.map +1 -0
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.test.d.ts +2 -0
- package/types/index.test.d.ts.map +1 -0
- package/types/ref.d.ts +8 -0
- package/types/ref.d.ts.map +1 -0
- package/types/tracker.d.ts +13 -0
- package/types/tracker.d.ts.map +1 -0
- package/types/watcher.d.ts +15 -0
- package/types/watcher.d.ts.map +1 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Dependency from "./dependency";
|
|
2
|
+
import Dependent from "./dependent";
|
|
3
|
+
import Tracker from "./tracker";
|
|
4
|
+
declare type TrackValue = <T>(dependency: Dependency<T>) => T;
|
|
5
|
+
export declare type ComputeFunc<T> = (value: TrackValue) => T;
|
|
6
|
+
export declare type ComputeFuncScoped<T1, T2> = (value: TrackValue, scope: T1) => T2;
|
|
7
|
+
export default class Computed<T> extends Tracker<T> implements Dependent, Dependency<T> {
|
|
8
|
+
getter: ComputeFunc<T>;
|
|
9
|
+
private state;
|
|
10
|
+
private dependencies;
|
|
11
|
+
private computePromise?;
|
|
12
|
+
private computePromiseActions?;
|
|
13
|
+
private lastComputeAttemptPromise?;
|
|
14
|
+
constructor(getter: ComputeFunc<T>);
|
|
15
|
+
private prepareComputePromise;
|
|
16
|
+
get value(): T;
|
|
17
|
+
private compute;
|
|
18
|
+
private clearDependencies;
|
|
19
|
+
private handlePromiseThen;
|
|
20
|
+
private handlePromiseCatch;
|
|
21
|
+
private innerTrackDependency;
|
|
22
|
+
private trackDependency;
|
|
23
|
+
private finalizeComputing;
|
|
24
|
+
invalidate(): void;
|
|
25
|
+
validate(dependency: Dependency<any>): void;
|
|
26
|
+
private validateDependents;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=computed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../src/computed.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,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;IAmCf,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;IASV,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAI3C,OAAO,CAAC,kBAAkB;IAMnB,OAAO;CAOjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../src/dependency.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,CAAC;IACf,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependent.d.ts","sourceRoot":"","sources":["../src/dependent.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,WAAW,SAAS;IAC9B,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5C,OAAO,IAAI,IAAI,CAAC;CACnB"}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as Computed, ComputeFunc, ComputeFuncScoped } from './computed';
|
|
2
|
+
export { default as Ref } from './ref';
|
|
3
|
+
export { default as Watcher } from './watcher';
|
|
4
|
+
export { default as Dependency } from './dependency';
|
|
5
|
+
export { default as Dependent } from './dependent';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|
package/types/ref.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,MAAM,CAAC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;gBAEvD,MAAM,EAAE,CAAC;IAKrB,IAAW,KAAK,CAAC,MAAM,EAAE,CAAC,EAMzB;IAED,IAAW,KAAK,IAAI,CAAC,CAEpB;CACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Computed from "./computed";
|
|
2
|
+
import Watcher from "./watcher";
|
|
3
|
+
declare type Dependent = Computed<any> | Watcher<any>;
|
|
4
|
+
export default class Tracker<T> {
|
|
5
|
+
protected dependents: Set<Dependent>;
|
|
6
|
+
protected _value?: T;
|
|
7
|
+
addDependent(dependent: Dependent): void;
|
|
8
|
+
removeDependent(dependent: Dependent): void;
|
|
9
|
+
invalidate(): void;
|
|
10
|
+
get value(): T | undefined;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,aAAK,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC;IAC1B,SAAS,CAAC,UAAU,iBAAwB;IAC5C,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEd,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,eAAe,CAAC,SAAS,EAAE,SAAS;IAIpC,UAAU,IAAI,IAAI;IAMzB,IAAW,KAAK,kBAEf;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Dependency from "./dependency";
|
|
2
|
+
import Dependent from "./dependent";
|
|
3
|
+
import Tracker from "./tracker";
|
|
4
|
+
declare type onChangeFunc<T> = (newValue: T, oldValue?: T) => void;
|
|
5
|
+
export default class Watcher<T> extends Tracker<T> implements Dependent {
|
|
6
|
+
private onChange;
|
|
7
|
+
private dependency;
|
|
8
|
+
private state;
|
|
9
|
+
constructor(dependency: Dependency<T>, onChange: onChangeFunc<T>, immediate?: boolean);
|
|
10
|
+
invalidate(): void;
|
|
11
|
+
validate(): void;
|
|
12
|
+
dispose(): void;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,OAAO,MAAM,WAAW,CAAC;AAOhC,aAAK,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS;IAEnE,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,KAAK,CAAoB;gBAErB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,OAAc;IAYpF,UAAU;IAUV,QAAQ;IAIR,OAAO;CAGjB"}
|