reactronic 0.24.500 → 0.24.502

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.
@@ -20,6 +20,7 @@ export declare class ReactiveSystem {
20
20
  export declare function transaction<T>(action: F<T>, ...args: any[]): T;
21
21
  export declare function unobs<T>(func: F<T>, ...args: any[]): T;
22
22
  export declare function sensitive<T>(sensitivity: boolean, func: F<T>, ...args: any[]): T;
23
+ export declare function contextually<T>(p: Promise<T>): Promise<T>;
23
24
  export declare function raw(proto: object, prop: PropertyKey): any;
24
25
  export declare function obs(proto: object, prop: PropertyKey): any;
25
26
  export declare function transactional(proto: object, prop: PropertyKey, pd: PropertyDescriptor): any;
@@ -31,6 +31,9 @@ export function unobs(func, ...args) {
31
31
  export function sensitive(sensitivity, func, ...args) {
32
32
  return Mvcc.sensitive(sensitivity, func, ...args);
33
33
  }
34
+ export function contextually(p) {
35
+ throw new Error("not implemented yet");
36
+ }
34
37
  export function raw(proto, prop) {
35
38
  return Mvcc.decorateData(false, proto, prop);
36
39
  }
@@ -16,7 +16,7 @@ export { Changeset } from "./core/Changeset.js";
16
16
  export { Transaction } from "./core/Transaction.js";
17
17
  export { Indicator } from "./core/Indicator.js";
18
18
  export { Journal } from "./core/Journal.js";
19
- export { ReactiveSystem, raw, obs, transactional, reactive, cached, transaction, unobs, sensitive, options } from "./ReactiveSystem.js";
19
+ export { ReactiveSystem, raw, obs, transactional, reactive, cached, transaction, unobs, sensitive, contextually, options } from "./ReactiveSystem.js";
20
20
  export { Reaction } from "./Reaction.js";
21
21
  export { ReactiveNode, Mode, Priority, BaseDriver, ReactiveNodeVariable } from "./core/ReactiveNode.js";
22
22
  export type { Script, ScriptAsync, Handler, ReactiveNodeDecl, ReactiveNodeDriver, ReactiveNodeContext } from "./core/ReactiveNode.js";
@@ -12,7 +12,7 @@ export { Changeset } from "./core/Changeset.js";
12
12
  export { Transaction } from "./core/Transaction.js";
13
13
  export { Indicator } from "./core/Indicator.js";
14
14
  export { Journal } from "./core/Journal.js";
15
- export { ReactiveSystem, raw, obs, transactional, reactive, cached, transaction, unobs, sensitive, options } from "./ReactiveSystem.js";
15
+ export { ReactiveSystem, raw, obs, transactional, reactive, cached, transaction, unobs, sensitive, contextually, options } from "./ReactiveSystem.js";
16
16
  export { Reaction } from "./Reaction.js";
17
17
  export { ReactiveNode, Mode, Priority, BaseDriver, ReactiveNodeVariable } from "./core/ReactiveNode.js";
18
18
  export { Clock } from "./Clock.js";
@@ -7,7 +7,8 @@ export type Handler<E = unknown, R = void> = (el: E) => R;
7
7
  export declare enum Mode {
8
8
  default = 0,
9
9
  autonomous = 1,
10
- manualMount = 2
10
+ manualMount = 2,
11
+ rootNode = 4
11
12
  }
12
13
  export declare enum Priority {
13
14
  realtime = 0,
@@ -73,7 +74,7 @@ export type ReactiveNodeDriver<E = unknown> = {
73
74
  readonly name: string;
74
75
  readonly isPartition: boolean;
75
76
  readonly initialize?: Handler<E>;
76
- allocate(node: ReactiveNode<E>): E;
77
+ create(node: ReactiveNode<E>): E;
77
78
  prepare(node: ReactiveNode<E>): void;
78
79
  finalize(node: ReactiveNode<E>, isLeader: boolean): boolean;
79
80
  mount(node: ReactiveNode<E>): void;
@@ -89,7 +90,7 @@ export declare abstract class BaseDriver<E = unknown> implements ReactiveNodeDri
89
90
  readonly isPartition: boolean;
90
91
  readonly initialize?: Handler<E> | undefined;
91
92
  constructor(name: string, isPartition: boolean, initialize?: Handler<E> | undefined);
92
- abstract allocate(node: ReactiveNode<E>): E;
93
+ abstract create(node: ReactiveNode<E>): E;
93
94
  prepare(node: ReactiveNode<E>): void | Promise<void>;
94
95
  finalize(node: ReactiveNode<E>, isLeader: boolean): boolean;
95
96
  mount(node: ReactiveNode<E>): void;
@@ -28,6 +28,7 @@ export var Mode;
28
28
  Mode[Mode["default"] = 0] = "default";
29
29
  Mode[Mode["autonomous"] = 1] = "autonomous";
30
30
  Mode[Mode["manualMount"] = 2] = "manualMount";
31
+ Mode[Mode["rootNode"] = 4] = "rootNode";
31
32
  })(Mode || (Mode = {}));
32
33
  export var Priority;
33
34
  (function (Priority) {
@@ -48,7 +49,7 @@ export class ReactiveNode {
48
49
  else
49
50
  declaration = contentOrDeclaration !== null && contentOrDeclaration !== void 0 ? contentOrDeclaration : {};
50
51
  let effectiveKey = declaration.key;
51
- const owner = gOwnSlot === null || gOwnSlot === void 0 ? void 0 : gOwnSlot.instance;
52
+ const owner = (getModeUsingBasisChain(declaration) & Mode.rootNode) !== Mode.rootNode ? gOwnSlot === null || gOwnSlot === void 0 ? void 0 : gOwnSlot.instance : undefined;
52
53
  if (owner) {
53
54
  let existing = owner.driver.child(owner, driver, declaration, declaration.basis);
54
55
  const children = owner.children;
@@ -283,7 +284,7 @@ class ReactiveNodeImpl extends ReactiveNode {
283
284
  this.owner = owner = thisAsUnknown;
284
285
  this.outer = thisAsUnknown;
285
286
  }
286
- this.element = driver.allocate(this);
287
+ this.element = driver.create(this);
287
288
  this.host = thisAsUnknown;
288
289
  this.children = new MergeList(getNodeKey, true);
289
290
  this.slot = undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactronic",
3
- "version": "0.24.500",
3
+ "version": "0.24.502",
4
4
  "description": "Reactronic - Transactional Reactive State Management",
5
5
  "publisher": "Nezaboodka Software",
6
6
  "license": "Apache-2.0",