@expressive/mvc 0.11.1 → 0.13.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/index.d.ts CHANGED
@@ -17,7 +17,6 @@ declare namespace Subscriber {
17
17
  declare class Subscriber<T extends {} = any> {
18
18
  parent: Control<T>;
19
19
  onUpdate: Subscriber.OnEvent;
20
- static get<T extends {}>(from: T): Subscriber<T> | undefined;
21
20
  proxy: T;
22
21
  release: Callback;
23
22
  latest?: Model.Event<T>[];
@@ -26,10 +25,9 @@ declare class Subscriber<T extends {} = any> {
26
25
  watch: Map<any, boolean | (() => true | void)>;
27
26
  constructor(parent: Control<T>, onUpdate: Subscriber.OnEvent);
28
27
  get using(): Model.Key<T>[];
29
- assign(apply: Model.Compat<T>, keys?: any): void;
30
28
  add(key: any, value?: boolean | Callback): void;
31
- commit: () => () => void;
32
- private event;
29
+ commit(): () => void;
30
+ private onEvent;
33
31
  }
34
32
 
35
33
  declare const LOCAL = "$debug local";
@@ -164,11 +162,6 @@ declare class Model {
164
162
  }
165
163
 
166
164
  declare namespace Control {
167
- /**
168
- * Callback for Controller.for() static method.
169
- * Returned callback is forwarded.
170
- */
171
- type OnReady<T extends {}> = (control: Control<T>) => Callback | void;
172
165
  /**
173
166
  * Called immediately when any key is changed or emitted.
174
167
  * Returned callback is notified when update is complete.
@@ -192,9 +185,6 @@ declare class Control<T extends {} = any> {
192
185
  ref<K extends Model.Key<T>>(key: K, handler?: (this: T, value: T[K]) => boolean | void): (value: any) => void;
193
186
  update(key: Model.Key<T>): void;
194
187
  clear(): void;
195
- static get<T extends {}>(from: T): Control<T> | undefined;
196
- static for<T extends {}>(subject: T): Control<T>;
197
- static for<T extends {}>(subject: T, cb: Control.OnReady<T>): Callback;
198
188
  }
199
189
 
200
190
  /**
@@ -484,15 +474,6 @@ declare class MVC extends Model {
484
474
  static meta<T, M extends Class>(this: M, from: (this: M, state: M) => T, expect?: boolean): T;
485
475
  }
486
476
 
487
- declare class Lookup {
488
- private table;
489
- get local(): Model[];
490
- private key;
491
- get(T: Model.Type): any;
492
- add(input: Model.Type | Model): void;
493
- push(): this;
494
- pop(): void;
495
- }
496
477
  declare function useContext<T extends Model>(Type: Model.Type<T>, required: false): T | undefined;
497
478
  declare function useContext<T extends Model>(Type: Model.Type<T>, required?: boolean): T;
498
479
 
@@ -557,23 +538,28 @@ declare namespace Provider {
557
538
  type Instance<E> = E extends Class ? InstanceType<E> : E extends Model ? E : never;
558
539
  type NormalProps<E, I = Instance<E>> = {
559
540
  for: E;
541
+ fallback?: React.ReactNode;
560
542
  children?: React.ReactNode | ((instance: I) => React.ReactNode);
561
543
  and?: Model.Compat<I>;
562
544
  };
563
545
  type MultipleProps<T extends Item> = {
564
546
  for: Multiple<T>;
565
- children?: React.ReactNode | (() => React.ReactNode);
547
+ fallback?: React.ReactNode;
548
+ children?: React.ReactNode;
566
549
  and?: Model.Compat<Instance<T>>;
567
550
  };
568
551
  type Props<T extends Item> = MultipleProps<T> | NormalProps<T>;
569
552
  }
570
- declare function Provider<T extends Provider.Item>(props: Provider.Props<T>): React.FunctionComponentElement<React.ProviderProps<Lookup>>;
553
+ declare function Provider<T extends Provider.Item>(props: Provider.Props<T>): JSX.Element;
571
554
 
572
555
  declare class Global extends MVC {
573
556
  static global: boolean;
574
557
  static keepAlive: boolean;
575
558
  }
576
559
 
560
+ declare namespace tap {
561
+ type Callback<T extends Model> = (instance: T | undefined) => void | boolean;
562
+ }
577
563
  /**
578
564
  * Find and attach most applicable instance of Model via context.
579
565
  *