reactronic 0.22.206 → 0.22.301

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
@@ -19,13 +19,13 @@ isolated data snapshot and then, once atomically applied, are
19
19
  **consistently propagated** to corresponding visual components for
20
20
  (re)rendering. All that is done in automatic, seamless, and fine-grained
21
21
  way, because reactronic **takes full care of tracking dependencies**
22
- between visual components (observers) and state (observable objects).
22
+ between visual components (subscribers) and state (reactive objects).
23
23
 
24
24
  Transactional reactivity is based on four fundamental concepts:
25
25
 
26
- - **Observable Objects** - a set of objects that store data of an
27
- application (state);
28
- - **Transaction** - a function that makes changes in observable
26
+ - **Reactive Objects** - a set of objects that store data of an
27
+ application (state) and maintain subscription lists;
28
+ - **Transaction** - a function that makes changes in reactive
29
29
  objects in transactional (atomic) way;
30
30
  - **Reaction** - a function that is executed automatically in
31
31
  response to changes made by a transaction;
@@ -39,11 +39,11 @@ Quick introduction and detailed description is below.
39
39
 
40
40
  ## Quick Introduction
41
41
 
42
- Here is an example of transactional reactive code with an observable
43
- object, transaction and reaction:
42
+ Here is an example of transactional reactive code with
43
+ reactive object, transaction and reaction:
44
44
 
45
45
  ``` typescript
46
- class Demo extends ObservableObject {
46
+ class Demo extends ReactiveObject {
47
47
  name: string = 'Nezaboodka Software'
48
48
  email: string = 'contact@nezaboodka.com'
49
49
 
@@ -70,7 +70,7 @@ to changes of these fields made by `saveContact` transaction.
70
70
  Here is an example of if cached value computed on-demand:
71
71
 
72
72
  ``` typescript
73
- class Demo extends ObservableObject {
73
+ class Demo extends ReactiveObject {
74
74
  name: string = 'Nezaboodka Software'
75
75
  email: string = 'contact@nezaboodka.com'
76
76
 
@@ -95,14 +95,14 @@ invalidated, thus causing execution of depending reaction
95
95
  `printContact`. Then `printContact` reaction causes `contact`
96
96
  re-computation on the first use.
97
97
 
98
- ## Observable Objects
98
+ ## Reactive Objects
99
99
 
100
- Observable objects store data of an application. All such objects
100
+ Reactive objects store data of an application. All such objects
101
101
  are transparently hooked to track access to their properties,
102
102
  both on reads and writes.
103
103
 
104
104
  ``` typescript
105
- class MyModel extends ObservableObject {
105
+ class MyModel extends ReactiveObject {
106
106
  url: string = "https://github.com/nezaboodka/reactronic"
107
107
  content: string = "transactional reactive state management"
108
108
  timestamp: Date = Date.now()
@@ -110,18 +110,18 @@ class MyModel extends ObservableObject {
110
110
  ```
111
111
 
112
112
  In the example above, the class `MyModel` is based on Reactronic's
113
- `ObservableObject` class and all its properties `url`, `content`,
113
+ `ReactiveObject` class and all its properties `url`, `content`,
114
114
  and `timestamp` are hooked.
115
115
 
116
116
  ## Transaction
117
117
 
118
- Transaction is a function that makes changes in observable objects
118
+ Transaction is a function that makes changes in reactive objects
119
119
  in transactional (atomic) way. Such a function is instrumented with hooks
120
120
  to provide transparent atomicity (by implicit context switching
121
121
  and isolation).
122
122
 
123
123
  ``` typescript
124
- class MyModel extends ObservableObject {
124
+ class MyModel extends ReactiveObject {
125
125
  // ...
126
126
  @transaction
127
127
  async load(url: string): Promise<void> {
@@ -164,12 +164,12 @@ of asynchronous operations is fully completed.
164
164
  ## Reaction & Cache
165
165
 
166
166
  Reaction is an code block that is immediately called in response to
167
- changes made by a transaction in observable objects. Cache is a
167
+ changes made by a transaction in reactive objects. Cache is a
168
168
  computed value having an associated function that is called
169
169
  on-demand to renew the value if it was marked as obsolete due to changes
170
170
  made by a transaction. Reactive and cached functions are
171
171
  instrumented with hooks to seamlessly subscribe to those
172
- observable objects and other cached functions (dependencies),
172
+ reactive objects and other cached functions (dependencies),
173
173
  which are used during their execution.
174
174
 
175
175
  ``` tsx
@@ -223,14 +223,14 @@ function enqueues re-rendering request to React, which calls
223
223
  `render` function causing it to renew its cached value.
224
224
 
225
225
  In general case, all reactions and caches are automatically and
226
- immediately marked as obsolete when changes are made in those observable
226
+ immediately marked as obsolete when changes are made in those reactive
227
227
  objects and cached functions that were used during their execution.
228
228
  And once marked, the functions are automatically executed again,
229
229
  either immediately (for @reactive functions) or on-demand
230
230
  (for @cached functions).
231
231
 
232
232
  Reactronic takes full care of tracking dependencies between
233
- all the observable objects and reactions/caches (observables and observers).
233
+ all the reactive objects and reactions/caches.
234
234
  With Reactronic, you no longer need to create data change events
235
235
  in one set of objects, subscribe to these events in other objects,
236
236
  and manually maintain switching from the previous object version
@@ -292,11 +292,11 @@ NPM: `npm install reactronic`
292
292
 
293
293
  // Classes
294
294
 
295
- class ObservableObject { }
295
+ class ReactiveObject { }
296
296
 
297
297
  // Decorators & Operators
298
298
 
299
- function unobservable(proto, prop) // field only
299
+ function plain(proto, prop) // field only
300
300
  function transaction(proto, prop, pd) // method only
301
301
  function reaction(proto, prop, pd) // method only
302
302
  function cached(proto, prop, pd) // method only
@@ -310,7 +310,7 @@ function sensitive<T>(sensitivity: Sensitivity, func: F<T>, ...args: any[]): T
310
310
  export interface SnapshotOptions {
311
311
  readonly hint?: string
312
312
  readonly standalone?: StandaloneMode
313
- readonly journal?: EditJournal
313
+ readonly journal?: Journal
314
314
  readonly logging?: Partial<LoggingOptions>
315
315
  readonly token?: any
316
316
  }
@@ -323,7 +323,7 @@ interface MemberOptions {
323
323
  readonly triggeringArgs: boolean
324
324
  readonly throttling: number // milliseconds, -1 is immediately, Number.MAX_SAFE_INTEGER is never
325
325
  readonly reentrance: Reentrance
326
- readonly journal: EditJournal | undefined
326
+ readonly journal: Journal | undefined
327
327
  readonly monitor: Monitor | null
328
328
  readonly logging?: Partial<LoggingOptions>
329
329
  }
@@ -1,5 +1,5 @@
1
- import { ObservableObject } from './impl/Hooks';
2
- export declare abstract class Buffer<T> extends ObservableObject {
1
+ import { ReactiveObject } from './impl/Hooks';
2
+ export declare abstract class Buffer<T> extends ReactiveObject {
3
3
  abstract readonly capacity: number;
4
4
  abstract readonly count: number;
5
5
  abstract put(...items: T[]): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Buffer = void 0;
4
4
  const Hooks_1 = require("./impl/Hooks");
5
- class Buffer extends Hooks_1.ObservableObject {
5
+ class Buffer extends Hooks_1.ReactiveObject {
6
6
  static create(hint, capacity) { throw new Error('not implemented'); }
7
7
  }
8
8
  exports.Buffer = Buffer;
@@ -1,12 +1,12 @@
1
1
  import { LoggingOptions } from './Logging';
2
2
  import { StandaloneMode } from './impl/Data';
3
3
  export { LoggingOptions, ProfilingOptions, LoggingLevel } from './Logging';
4
- import { EditJournal } from './impl/EditJournal';
4
+ import { Journal } from './impl/Journal';
5
5
  import { Monitor } from './impl/Monitor';
6
6
  export interface SnapshotOptions {
7
7
  readonly hint?: string;
8
8
  readonly standalone?: StandaloneMode;
9
- readonly journal?: EditJournal;
9
+ readonly journal?: Journal;
10
10
  readonly logging?: Partial<LoggingOptions>;
11
11
  readonly token?: any;
12
12
  }
@@ -18,7 +18,7 @@ export interface MemberOptions {
18
18
  readonly triggeringArgs: boolean;
19
19
  readonly throttling: number;
20
20
  readonly reentrance: Reentrance;
21
- readonly journal: EditJournal | undefined;
21
+ readonly journal: Journal | undefined;
22
22
  readonly monitor: Monitor | null;
23
23
  readonly logging?: Partial<LoggingOptions>;
24
24
  }
@@ -11,7 +11,7 @@ export declare class Ref<T = any> {
11
11
  constructor(owner: any, name: string, index?: number);
12
12
  get value(): T;
13
13
  set value(value: T);
14
- nonreactiveValue(): T;
14
+ nonreactive(): T;
15
15
  observe(): T;
16
16
  unobserve(): T;
17
17
  static to<O extends object = object>(owner: O): {
@@ -21,7 +21,7 @@ class Ref {
21
21
  else
22
22
  this.owner[this.name][this.index] = value;
23
23
  }
24
- nonreactiveValue() {
24
+ nonreactive() {
25
25
  return (0, Rx_1.nonreactive)(() => this.value);
26
26
  }
27
27
  observe() {
@@ -19,7 +19,7 @@ export declare class Rx {
19
19
  }
20
20
  export declare function nonreactive<T>(func: F<T>, ...args: any[]): T;
21
21
  export declare function sensitive<T>(sensitivity: boolean, func: F<T>, ...args: any[]): T;
22
- export declare function unobservable(proto: object, prop: PropertyKey): any;
22
+ export declare function plain(proto: object, prop: PropertyKey): any;
23
23
  export declare function transaction(proto: object, prop: PropertyKey, pd: PropertyDescriptor): any;
24
24
  export declare function reaction(proto: object, prop: PropertyKey, pd: PropertyDescriptor): any;
25
25
  export declare function cached(proto: object, prop: PropertyKey, pd: PropertyDescriptor): any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.options = exports.cached = exports.reaction = exports.transaction = exports.unobservable = exports.sensitive = exports.nonreactive = exports.Rx = void 0;
3
+ exports.options = exports.cached = exports.reaction = exports.transaction = exports.plain = exports.sensitive = exports.nonreactive = exports.Rx = void 0;
4
4
  const Dbg_1 = require("./util/Dbg");
5
5
  const Options_1 = require("./Options");
6
6
  const Data_1 = require("./impl/Data");
@@ -20,7 +20,7 @@ class Rx {
20
20
  static get loggingOptions() { return Dbg_1.Log.opt; }
21
21
  static setLoggingMode(isOn, options) { Dbg_1.Log.setMode(isOn, options); }
22
22
  static setLoggingHint(obj, name) { Hooks_1.Hooks.setHint(obj, name); }
23
- static getLoggingHint(obj, full = false) { return Data_1.ObjectHolder.getHint(obj, full); }
23
+ static getLoggingHint(obj, full = false) { return Data_1.DataHolder.getHint(obj, full); }
24
24
  static setProfilingMode(isOn, options) { Hooks_1.Hooks.setProfilingMode(isOn, options); }
25
25
  }
26
26
  exports.Rx = Rx;
@@ -32,10 +32,10 @@ function sensitive(sensitivity, func, ...args) {
32
32
  return Hooks_1.Hooks.sensitive(sensitivity, func, ...args);
33
33
  }
34
34
  exports.sensitive = sensitive;
35
- function unobservable(proto, prop) {
35
+ function plain(proto, prop) {
36
36
  return Hooks_1.Hooks.decorateData(false, proto, prop);
37
37
  }
38
- exports.unobservable = unobservable;
38
+ exports.plain = plain;
39
39
  function transaction(proto, prop, pd) {
40
40
  const opts = { kind: Options_1.Kind.Transaction };
41
41
  return Hooks_1.Hooks.decorateOperation(true, transaction, opts, proto, prop, pd);
@@ -6,9 +6,9 @@ export { MemberOptions, SnapshotOptions, Kind, Reentrance, LoggingOptions, Profi
6
6
  export { Worker } from './Worker';
7
7
  export { Controller } from './Controller';
8
8
  export { Ref, ToggleRef, BoolOnly, GivenTypeOnly } from './Ref';
9
- export { ObservableObject } from './impl/Hooks';
9
+ export { ReactiveObject } from './impl/Hooks';
10
10
  export { Snapshot } from './impl/Snapshot';
11
11
  export { Transaction } from './impl/Transaction';
12
12
  export { Monitor } from './impl/Monitor';
13
- export { EditJournal } from './impl/EditJournal';
14
- export { Rx, nonreactive, sensitive, unobservable, transaction, reaction, cached, options } from './Rx';
13
+ export { Journal } from './impl/Journal';
14
+ export { Rx, nonreactive, sensitive, plain, transaction, reaction, cached, options } from './Rx';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.options = exports.cached = exports.reaction = exports.transaction = exports.unobservable = exports.sensitive = exports.nonreactive = exports.Rx = exports.EditJournal = exports.Monitor = exports.Transaction = exports.Snapshot = exports.ObservableObject = exports.ToggleRef = exports.Ref = exports.Controller = exports.LoggingLevel = exports.Reentrance = exports.Kind = exports.SealedSet = exports.SealedMap = exports.SealedArray = exports.pause = exports.all = void 0;
3
+ exports.options = exports.cached = exports.reaction = exports.transaction = exports.plain = exports.sensitive = exports.nonreactive = exports.Rx = exports.Journal = exports.Monitor = exports.Transaction = exports.Snapshot = exports.ReactiveObject = exports.ToggleRef = exports.Ref = exports.Controller = exports.LoggingLevel = exports.Reentrance = exports.Kind = exports.SealedSet = exports.SealedMap = exports.SealedArray = exports.pause = exports.all = void 0;
4
4
  var Utils_1 = require("./util/Utils");
5
5
  Object.defineProperty(exports, "all", { enumerable: true, get: function () { return Utils_1.all; } });
6
6
  Object.defineProperty(exports, "pause", { enumerable: true, get: function () { return Utils_1.pause; } });
@@ -20,20 +20,20 @@ var Ref_1 = require("./Ref");
20
20
  Object.defineProperty(exports, "Ref", { enumerable: true, get: function () { return Ref_1.Ref; } });
21
21
  Object.defineProperty(exports, "ToggleRef", { enumerable: true, get: function () { return Ref_1.ToggleRef; } });
22
22
  var Hooks_1 = require("./impl/Hooks");
23
- Object.defineProperty(exports, "ObservableObject", { enumerable: true, get: function () { return Hooks_1.ObservableObject; } });
23
+ Object.defineProperty(exports, "ReactiveObject", { enumerable: true, get: function () { return Hooks_1.ReactiveObject; } });
24
24
  var Snapshot_1 = require("./impl/Snapshot");
25
25
  Object.defineProperty(exports, "Snapshot", { enumerable: true, get: function () { return Snapshot_1.Snapshot; } });
26
26
  var Transaction_1 = require("./impl/Transaction");
27
27
  Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return Transaction_1.Transaction; } });
28
28
  var Monitor_1 = require("./impl/Monitor");
29
29
  Object.defineProperty(exports, "Monitor", { enumerable: true, get: function () { return Monitor_1.Monitor; } });
30
- var EditJournal_1 = require("./impl/EditJournal");
31
- Object.defineProperty(exports, "EditJournal", { enumerable: true, get: function () { return EditJournal_1.EditJournal; } });
30
+ var Journal_1 = require("./impl/Journal");
31
+ Object.defineProperty(exports, "Journal", { enumerable: true, get: function () { return Journal_1.Journal; } });
32
32
  var Rx_1 = require("./Rx");
33
33
  Object.defineProperty(exports, "Rx", { enumerable: true, get: function () { return Rx_1.Rx; } });
34
34
  Object.defineProperty(exports, "nonreactive", { enumerable: true, get: function () { return Rx_1.nonreactive; } });
35
35
  Object.defineProperty(exports, "sensitive", { enumerable: true, get: function () { return Rx_1.sensitive; } });
36
- Object.defineProperty(exports, "unobservable", { enumerable: true, get: function () { return Rx_1.unobservable; } });
36
+ Object.defineProperty(exports, "plain", { enumerable: true, get: function () { return Rx_1.plain; } });
37
37
  Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return Rx_1.transaction; } });
38
38
  Object.defineProperty(exports, "reaction", { enumerable: true, get: function () { return Rx_1.reaction; } });
39
39
  Object.defineProperty(exports, "cached", { enumerable: true, get: function () { return Rx_1.cached; } });
@@ -5,59 +5,54 @@ export interface AbstractSnapshot {
5
5
  readonly timestamp: number;
6
6
  readonly sealed: boolean;
7
7
  }
8
- export declare class Observable {
9
- value: any;
10
- observers?: Set<Observer>;
8
+ export declare class Subscription {
9
+ content: any;
10
+ subscribers?: Set<Subscriber>;
11
11
  get isOperation(): boolean;
12
12
  get originSnapshotId(): number | undefined;
13
- constructor(value: any);
13
+ constructor(content: any);
14
14
  }
15
15
  export declare type StandaloneMode = boolean | 'isolated' | 'disposal';
16
- export interface Observer {
16
+ export interface Subscriber {
17
17
  readonly order: number;
18
- readonly observables: Map<Observable, ObservableInfo> | undefined;
18
+ readonly subscriptions: Map<Subscription, SubscriptionInfo> | undefined;
19
19
  readonly obsoleteSince: number;
20
20
  hint(nop?: boolean): string;
21
- markObsoleteDueTo(observable: Observable, memberName: MemberName, snapshot: AbstractSnapshot, holder: ObjectHolder, outer: string, since: number, reactions: Observer[]): void;
21
+ markObsoleteDueTo(subscription: Subscription, memberName: MemberName, snapshot: AbstractSnapshot, holder: DataHolder, outer: string, since: number, reactions: Array<Subscriber>): void;
22
22
  runIfNotUpToDate(now: boolean, nothrow: boolean): void;
23
23
  }
24
24
  export declare type MemberName = PropertyKey;
25
- export interface ObservableInfo {
25
+ export interface SubscriptionInfo {
26
26
  readonly memberHint: string;
27
27
  readonly usageCount: number;
28
28
  }
29
- export declare class ObjectRevision {
29
+ export declare class DataRevision {
30
30
  readonly snapshot: AbstractSnapshot;
31
- readonly prev: {
32
- revision: ObjectRevision;
31
+ readonly former: {
32
+ revision: DataRevision;
33
33
  };
34
34
  readonly data: any;
35
35
  readonly changes: Set<MemberName>;
36
- readonly conflicts: Map<MemberName, ObjectRevision>;
37
- constructor(snapshot: AbstractSnapshot, prev: ObjectRevision | undefined, data: object);
36
+ readonly conflicts: Map<MemberName, DataRevision>;
37
+ constructor(snapshot: AbstractSnapshot, former: DataRevision | undefined, data: object);
38
38
  }
39
- export declare class ObjectHolder {
39
+ export declare class DataHolder {
40
40
  private static generator;
41
41
  readonly id: number;
42
- readonly unobservable: any;
42
+ readonly data: any;
43
43
  readonly proxy: any;
44
- head: ObjectRevision;
45
- editing?: ObjectRevision;
44
+ head: DataRevision;
45
+ editing?: DataRevision;
46
46
  editors: number;
47
47
  hint: string;
48
- constructor(unobservable: any, proxy: any, handler: ProxyHandler<ObjectHolder>, head: ObjectRevision, hint: string);
48
+ constructor(data: any, proxy: any, handler: ProxyHandler<DataHolder>, head: DataRevision, hint: string);
49
49
  static getHint(obj: object, full: boolean): string | undefined;
50
50
  }
51
- export interface Patch {
51
+ export interface PatchSet {
52
52
  hint: string;
53
- objects: Map<object, ObjectPatch>;
53
+ objects: Map<object, DataPatch>;
54
54
  }
55
- export interface ObjectPatch {
56
- current: any;
55
+ export interface DataPatch {
56
+ data: any;
57
57
  former: any;
58
58
  }
59
- export interface DataRequest {
60
- holder: ObjectHolder;
61
- member: MemberName;
62
- revision: ObjectRevision;
63
- }
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectHolder = exports.ObjectRevision = exports.Observable = exports.Meta = void 0;
3
+ exports.DataHolder = exports.DataRevision = exports.Subscription = exports.Meta = void 0;
4
4
  const Dbg_1 = require("../util/Dbg");
5
5
  const Meta_1 = require("./Meta");
6
6
  var Meta_2 = require("./Meta");
7
7
  Object.defineProperty(exports, "Meta", { enumerable: true, get: function () { return Meta_2.Meta; } });
8
- class Observable {
9
- constructor(value) { this.value = value; }
8
+ class Subscription {
9
+ constructor(content) { this.content = content; }
10
10
  get isOperation() { return false; }
11
11
  get originSnapshotId() { return 0; }
12
12
  }
13
- exports.Observable = Observable;
14
- class ObjectRevision {
15
- constructor(snapshot, prev, data) {
13
+ exports.Subscription = Subscription;
14
+ class DataRevision {
15
+ constructor(snapshot, former, data) {
16
16
  this.snapshot = snapshot;
17
- this.prev = { revision: prev || this };
17
+ this.former = { revision: former || this };
18
18
  this.data = data;
19
19
  this.changes = new Set();
20
20
  this.conflicts = new Map();
@@ -22,11 +22,11 @@ class ObjectRevision {
22
22
  Object.freeze(this);
23
23
  }
24
24
  }
25
- exports.ObjectRevision = ObjectRevision;
26
- class ObjectHolder {
27
- constructor(unobservable, proxy, handler, head, hint) {
28
- this.id = ++ObjectHolder.generator;
29
- this.unobservable = unobservable;
25
+ exports.DataRevision = DataRevision;
26
+ class DataHolder {
27
+ constructor(data, proxy, handler, head, hint) {
28
+ this.id = ++DataHolder.generator;
29
+ this.data = data;
30
30
  this.proxy = proxy || new Proxy(this, handler);
31
31
  this.head = head;
32
32
  this.editing = undefined;
@@ -38,5 +38,5 @@ class ObjectHolder {
38
38
  return h !== undefined ? (full ? `${h.hint}#${h.id}` : h.hint) : undefined;
39
39
  }
40
40
  }
41
- exports.ObjectHolder = ObjectHolder;
42
- ObjectHolder.generator = 19;
41
+ exports.DataHolder = DataHolder;
42
+ DataHolder.generator = 19;
@@ -1,10 +1,10 @@
1
1
  import { F } from '../util/Utils';
2
2
  import { MemberOptions, Kind, Reentrance } from '../Options';
3
3
  import { LoggingOptions, ProfilingOptions } from '../Logging';
4
- import { MemberName, ObjectHolder, StandaloneMode } from './Data';
5
- import { EditJournal } from './EditJournal';
4
+ import { MemberName, DataHolder, StandaloneMode } from './Data';
5
+ import { Journal } from './Journal';
6
6
  import { Monitor } from './Monitor';
7
- export declare abstract class ObservableObject {
7
+ export declare abstract class ReactiveObject {
8
8
  constructor();
9
9
  [Symbol.toStringTag](): string;
10
10
  }
@@ -18,33 +18,33 @@ export declare class OptionsImpl implements MemberOptions {
18
18
  readonly triggeringArgs: boolean;
19
19
  readonly throttling: number;
20
20
  readonly reentrance: Reentrance;
21
- readonly journal: EditJournal | undefined;
21
+ readonly journal: Journal | undefined;
22
22
  readonly monitor: Monitor | null;
23
23
  readonly logging?: Partial<LoggingOptions>;
24
24
  static readonly INITIAL: Readonly<OptionsImpl>;
25
25
  constructor(getter: Function | undefined, setter: Function | undefined, existing: OptionsImpl, patch: Partial<OptionsImpl>, implicit: boolean);
26
26
  }
27
- export declare class Hooks implements ProxyHandler<ObjectHolder> {
27
+ export declare class Hooks implements ProxyHandler<DataHolder> {
28
28
  static reactionsAutoStartDisabled: boolean;
29
29
  static repetitiveUsageWarningThreshold: number;
30
30
  static mainThreadBlockingWarningThreshold: number;
31
31
  static asyncActionDurationWarningThreshold: number;
32
32
  static sensitivity: boolean;
33
33
  static readonly proxy: Hooks;
34
- getPrototypeOf(h: ObjectHolder): object | null;
35
- get(h: ObjectHolder, m: MemberName, receiver: any): any;
36
- set(h: ObjectHolder, m: MemberName, value: any, receiver: any): boolean;
37
- has(h: ObjectHolder, m: MemberName): boolean;
38
- getOwnPropertyDescriptor(h: ObjectHolder, m: MemberName): PropertyDescriptor | undefined;
39
- ownKeys(h: ObjectHolder): Array<string | symbol>;
40
- static decorateData(observable: boolean, proto: any, m: MemberName): any;
34
+ getPrototypeOf(h: DataHolder): object | null;
35
+ get(h: DataHolder, m: MemberName, receiver: any): any;
36
+ set(h: DataHolder, m: MemberName, value: any, receiver: any): boolean;
37
+ has(h: DataHolder, m: MemberName): boolean;
38
+ getOwnPropertyDescriptor(h: DataHolder, m: MemberName): PropertyDescriptor | undefined;
39
+ ownKeys(h: DataHolder): Array<string | symbol>;
40
+ static decorateData(reactive: boolean, proto: any, m: MemberName): any;
41
41
  static decorateOperation(implicit: boolean, decorator: Function, options: Partial<MemberOptions>, proto: any, member: MemberName, pd: PropertyDescriptor | undefined): any;
42
42
  static decorateOperationParametrized(decorator: Function, options: Partial<MemberOptions>): F<any>;
43
- static acquireObjectHolder(obj: any): ObjectHolder;
44
- static createObjectHolderForObservableObject(proto: any, unobservable: any, blank: any, hint: string): ObjectHolder;
43
+ static acquireDataHolder(obj: any): DataHolder;
44
+ static createDataHolderForReactiveObject(proto: any, data: any, blank: any, hint: string): DataHolder;
45
45
  static setProfilingMode(isOn: boolean, options?: Partial<ProfilingOptions>): void;
46
46
  static sensitive<T>(sensitivity: boolean, func: F<T>, ...args: any[]): T;
47
47
  static setHint<T>(obj: T, hint: string | undefined): T;
48
- static createOperation: (h: ObjectHolder, m: MemberName, options: OptionsImpl) => F<any>;
48
+ static createOperation: (h: DataHolder, m: MemberName, options: OptionsImpl) => F<any>;
49
49
  static rememberOperationOptions: (proto: any, m: MemberName, getter: Function | undefined, setter: Function | undefined, enumerable: boolean, configurable: boolean, options: Partial<MemberOptions>, implicit: boolean) => OptionsImpl;
50
50
  }