wraplet 0.46.0 → 0.47.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.
Files changed (39) hide show
  1. package/dist/AbstractWraplet.d.ts +16 -16
  2. package/dist/Core/DefaultArgCreator.d.ts +3 -3
  3. package/dist/Core/DefaultCore.d.ts +28 -28
  4. package/dist/Core/defaultWrapletCreator.d.ts +2 -2
  5. package/dist/Core/types/ArgCreator.d.ts +3 -3
  6. package/dist/Core/types/Core.d.ts +22 -22
  7. package/dist/Core/types/CoreInitOptions.d.ts +6 -6
  8. package/dist/Core/types/DependencyInstantiatedListener.d.ts +3 -0
  9. package/dist/Core/types/DestroyDependencyListener.d.ts +3 -0
  10. package/dist/Core/types/WrapletCreator.d.ts +3 -3
  11. package/dist/Map/MapRepeat.d.ts +2 -2
  12. package/dist/Map/MapWrapper.d.ts +8 -8
  13. package/dist/Map/types/DynamicMap.d.ts +2 -2
  14. package/dist/Map/utils.d.ts +4 -4
  15. package/dist/NodeTreeManager/types/NodeTreeParent.d.ts +1 -1
  16. package/dist/Wraplet/createDefaultDestroyCallback.d.ts +3 -3
  17. package/dist/Wraplet/createDefaultInitializeCallback.d.ts +5 -3
  18. package/dist/Wraplet/createRichWrapletApi.d.ts +2 -2
  19. package/dist/Wraplet/createWrapletApi.d.ts +2 -2
  20. package/dist/Wraplet/statusActions.d.ts +4 -4
  21. package/dist/Wraplet/types/DependencyInstance.d.ts +2 -0
  22. package/dist/Wraplet/types/RichWrapletApiFactoryArgs.d.ts +2 -2
  23. package/dist/Wraplet/types/WrapletApiFactoryArgs.d.ts +2 -2
  24. package/dist/Wraplet/types/{WrapletChildren.d.ts → WrapletDependencies.d.ts} +3 -3
  25. package/dist/Wraplet/types/{WrapletChildDefinition.d.ts → WrapletDependencyDefinition.d.ts} +3 -3
  26. package/dist/Wraplet/types/WrapletDependencyMap.d.ts +8 -0
  27. package/dist/errors.d.ts +5 -5
  28. package/dist/index.cjs +1 -1
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/storage.cjs.map +1 -1
  34. package/dist/storage.js.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/Core/types/DestroyChildListener.d.ts +0 -3
  37. package/dist/Core/types/InstantiateChildListener.d.ts +0 -3
  38. package/dist/Wraplet/types/ChildInstance.d.ts +0 -2
  39. package/dist/Wraplet/types/WrapletChildrenMap.d.ts +0 -8
@@ -1,14 +1,14 @@
1
- import { WrapletChildrenMap } from "./Wraplet/types/WrapletChildrenMap";
2
- import { WrapletChildren } from "./Wraplet/types/WrapletChildren";
1
+ import { WrapletDependencyMap } from "./Wraplet/types/WrapletDependencyMap";
2
+ import { WrapletDependencies } from "./Wraplet/types/WrapletDependencies";
3
3
  import { Wraplet, WrapletSymbol } from "./Wraplet/types/Wraplet";
4
4
  import { DestroyListener } from "./Core/types/DestroyListener";
5
- import { ChildInstance } from "./Wraplet/types/ChildInstance";
5
+ import { DependencyInstance } from "./Wraplet/types/DependencyInstance";
6
6
  import { Groupable, GroupableSymbol } from "./types/Groupable";
7
7
  import { NodeTreeParent, NodeTreeParentSymbol } from "./NodeTreeManager/types/NodeTreeParent";
8
8
  import { Core } from "./Core/types/Core";
9
9
  import { Constructable } from "./utils/types/Utils";
10
10
  import { RichWrapletApi } from "./Wraplet/types/RichWrapletApi";
11
- export declare abstract class AbstractWraplet<N extends Node = Node, M extends WrapletChildrenMap = {}> implements Wraplet<N>, Groupable, NodeTreeParent {
11
+ export declare abstract class AbstractWraplet<N extends Node = Node, M extends WrapletDependencyMap = {}> implements Wraplet<N>, Groupable, NodeTreeParent {
12
12
  protected core: Core<N, M>;
13
13
  [WrapletSymbol]: true;
14
14
  [GroupableSymbol]: true;
@@ -16,16 +16,16 @@ export declare abstract class AbstractWraplet<N extends Node = Node, M extends W
16
16
  protected destroyListeners: DestroyListener<Wraplet<N>>[];
17
17
  wraplet: RichWrapletApi<N>;
18
18
  constructor(core: Core<N, M>);
19
- protected get children(): WrapletChildren<M>;
19
+ protected get deps(): WrapletDependencies<M>;
20
20
  /**
21
- * This method will be ivoked if one of the wraplet's children has been destroyed.
21
+ * This method will be ivoked if one of the wraplet's dependencies has been destroyed.
22
22
  */
23
- protected onChildDestroy(child: ChildInstance<M, keyof M>, id: keyof M): void;
23
+ protected onDependencyDestroyed(dependency: DependencyInstance<M, keyof M>, id: keyof M): void;
24
24
  protected get node(): N;
25
25
  /**
26
- * This method will be invoked if one of the wraplet's children has been instantiated.
26
+ * This method will be invoked if one of the wraplet's dependencies has been instantiated.
27
27
  */
28
- protected onChildInstantiate(child: ChildInstance<M, keyof M>, id: keyof M): void;
28
+ protected onDependencyInstantiated(dependency: DependencyInstance<M, keyof M>, id: keyof M): void;
29
29
  /**
30
30
  * Subclasses must return an array of constructors covering all types in union N.
31
31
  * Wrap the result in the `supportedTypeCheck` helper to make sure that the array contains all
@@ -38,17 +38,17 @@ export declare abstract class AbstractWraplet<N extends Node = Node, M extends W
38
38
  protected supportedNodeTypesGuard<T extends readonly Constructable<N>[]>(types: T & (Exclude<N, InstanceType<T[number]>> extends never ? T : never)): T;
39
39
  /**
40
40
  * This method makes sure that the given instance is an instance of a class belonging to the
41
- * given child.
41
+ * given dependency.
42
42
  *
43
43
  * @param item
44
44
  * @param actualUnknownId
45
45
  * @param onlyId
46
- * By hardcoding onlyId you can filter out any other children. It allows you to learn not only
47
- * that the class is correct, but also that the child is correct (in case multiple children can
48
- * use the same class).
46
+ * By hardcoding onlyId you can filter out any other dependencies. It allows you to learn not
47
+ * only that the class is correct, but also that the dependency is correct (in the case multiple
48
+ * dependencies can use the same class).
49
49
  * @protected
50
50
  */
51
- protected isChildInstance<K extends keyof M>(item: ChildInstance<M, keyof M>, actualUnknownId: keyof M, onlyId?: K | null): item is ChildInstance<M, K>;
52
- protected static createCore<N extends Node, M extends WrapletChildrenMap>(node: N, map: M): Core<N, M>;
53
- protected static createWraplets<N extends Node, T extends AbstractWraplet<N, any> = never>(node: ParentNode, map: WrapletChildrenMap, attribute: string, additional_args?: unknown[]): T[];
51
+ protected isDependencyInstance<K extends keyof M>(item: DependencyInstance<M, keyof M>, actualUnknownId: keyof M, onlyId?: K | null): item is DependencyInstance<M, K>;
52
+ protected static createCore<N extends Node, M extends WrapletDependencyMap>(node: N, map: M): Core<N, M>;
53
+ protected static createWraplets<N extends Node, T extends AbstractWraplet<N, any> = never>(node: ParentNode, map: WrapletDependencyMap, attribute: string, additional_args?: unknown[]): T[];
54
54
  }
@@ -1,10 +1,10 @@
1
1
  import { ArgCreator, ArgCreatorSymbol } from "./types/ArgCreator";
2
- import { WrapletChildrenMap } from "../Wraplet/types/WrapletChildrenMap";
2
+ import { WrapletDependencyMap } from "../Wraplet/types/WrapletDependencyMap";
3
3
  import { WrapletCreatorArgs } from "./types/WrapletCreator";
4
- export declare class DefaultArgCreator<N extends Node, M extends WrapletChildrenMap = WrapletChildrenMap> implements ArgCreator<N, M> {
4
+ export declare class DefaultArgCreator<N extends Node, M extends WrapletDependencyMap = WrapletDependencyMap> implements ArgCreator<N, M> {
5
5
  private creator;
6
6
  [ArgCreatorSymbol]: true;
7
7
  constructor(creator: ArgCreator<N, M>["createArg"]);
8
8
  createArg(args: WrapletCreatorArgs<N, M>): unknown;
9
- static create<N extends Node, M extends WrapletChildrenMap = WrapletChildrenMap>(creator: ArgCreator<N, M>["createArg"]): DefaultArgCreator<N, M>;
9
+ static create<N extends Node, M extends WrapletDependencyMap = WrapletDependencyMap>(creator: ArgCreator<N, M>["createArg"]): DefaultArgCreator<N, M>;
10
10
  }
@@ -1,25 +1,25 @@
1
- import { WrapletChildren } from "../Wraplet/types/WrapletChildren";
1
+ import { WrapletDependencies } from "../Wraplet/types/WrapletDependencies";
2
2
  import { Wraplet } from "../Wraplet/types/Wraplet";
3
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../Wraplet/types/WrapletChildrenMap";
4
- import { InstantiateChildListener } from "./types/InstantiateChildListener";
5
- import { DestroyChildListener } from "./types/DestroyChildListener";
3
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../Wraplet/types/WrapletDependencyMap";
4
+ import { DependencyInstantiatedListener } from "./types/DependencyInstantiatedListener";
5
+ import { DependencyDestroyedListener } from "./types/DestroyDependencyListener";
6
6
  import { CoreInitOptions } from "./types/CoreInitOptions";
7
7
  import { Core, CoreSymbol } from "./types/Core";
8
8
  import { NodeTreeParentSymbol } from "../NodeTreeManager/types/NodeTreeParent";
9
9
  import { MapWrapper } from "../Map/MapWrapper";
10
10
  import { WrapletCreator } from "./types/WrapletCreator";
11
11
  import { Status } from "../Wraplet/types/Status";
12
- export declare class DefaultCore<N extends Node = Node, M extends WrapletChildrenMap = {}> implements Core<N, M> {
12
+ export declare class DefaultCore<N extends Node = Node, M extends WrapletDependencyMap = {}> implements Core<N, M> {
13
13
  node: N;
14
14
  [CoreSymbol]: true;
15
15
  [NodeTreeParentSymbol]: true;
16
- private childrenAreInstantiated;
16
+ private dependenciesAreInstantiated;
17
17
  private statusWritable;
18
18
  get status(): Status;
19
19
  mapWrapper: MapWrapper<M>;
20
- private instantiatedChildren;
21
- private destroyChildListeners;
22
- private instantiateChildListeners;
20
+ private instantiatedDependencies;
21
+ private destroyedDependencyListeners;
22
+ private instantiatedDependencyListeners;
23
23
  private listeners;
24
24
  private wrapletCreator;
25
25
  constructor(node: N, map: M | MapWrapper<M>, initOptions?: Partial<CoreInitOptions<M>>);
@@ -27,38 +27,38 @@ export declare class DefaultCore<N extends Node = Node, M extends WrapletChildre
27
27
  * Initialize core.
28
28
  *
29
29
  * We couldn't put this step in the constructor, because during initialization some wraplet
30
- * processing occurs (instantiate child listeners) that needs access to the children manager,
31
- * so the children manager has to exist already.
30
+ * processing occurs (instantiate dependency listeners) that needs access to the Core,
31
+ * so the Core has to exist already.
32
32
  */
33
- initializeChildren(): Promise<void>;
34
- get map(): WrapletChildrenMapWithDefaults<M>;
35
- instantiateChildren(): void;
36
- syncChildren(): Promise<void>;
37
- getNodeTreeChildren(): Wraplet[];
33
+ initializeDependencies(): Promise<void>;
34
+ get map(): WrapletDependencyMapWithDefaults<M>;
35
+ instantiateDependencies(): void;
36
+ syncDependencies(): Promise<void>;
37
+ getChildrenDependencies(): Wraplet[];
38
38
  private findExistingWraplet;
39
- private instantiateSingleWrapletChild;
39
+ private instantiateSingleWrapletDependency;
40
40
  private instantiateWrapletItem;
41
- private instantiateMultipleWrapletsChild;
42
- addDestroyChildListener(callback: DestroyChildListener<M, keyof M>): void;
43
- addInstantiateChildListener(callback: InstantiateChildListener<M, keyof M>): void;
44
- setWrapletCreator(wrapletCreator: WrapletCreator<Node, WrapletChildrenMap>): void;
41
+ private instantiateMultipleDependencies;
42
+ addDependencyDestroyedListener(callback: DependencyDestroyedListener<M, keyof M>): void;
43
+ addDependencyInstantiatedListener(callback: DependencyInstantiatedListener<M, keyof M>): void;
44
+ setWrapletCreator(wrapletCreator: WrapletCreator<Node, WrapletDependencyMap>): void;
45
45
  private prepareIndividualWraplet;
46
46
  /**
47
- * This method removes from nodes references to this wraplet and its children recursively.
47
+ * This method removes from nodes references to this wraplet and its dependencies recursively.
48
48
  */
49
49
  destroy(): Promise<void>;
50
- private findChildren;
50
+ private findChildrenElements;
51
51
  addEventListener(node: Node, eventName: string, callback: EventListenerOrEventListenerObject, options?: AddEventListenerOptions | boolean): void;
52
- get children(): WrapletChildren<M>;
53
- private removeChild;
52
+ get dependencies(): WrapletDependencies<M>;
53
+ private removeDependency;
54
54
  private validateMapItem;
55
55
  private validateMapItemForNonParent;
56
56
  private validateElements;
57
57
  /**
58
- * Set up a proxy to check if children have not been destroyed before fetching them.
58
+ * Set up a proxy to check if dependencies have not been destroyed before fetching them.
59
59
  */
60
- private wrapChildren;
60
+ private wrapDependencies;
61
61
  private defaultInitOptions;
62
62
  private processInitOptions;
63
- private destroyChildren;
63
+ private destroyDependencies;
64
64
  }
@@ -1,6 +1,6 @@
1
1
  import { WrapletCreatorArgs } from "./types/WrapletCreator";
2
- import { WrapletChildrenMap } from "../Wraplet/types/WrapletChildrenMap";
2
+ import { WrapletDependencyMap } from "../Wraplet/types/WrapletDependencyMap";
3
3
  import { Constructable } from "../utils/types/Utils";
4
4
  import { Core } from "./types/Core";
5
5
  import { Wraplet } from "../Wraplet/types/Wraplet";
6
- export declare function defaultWrapletCreator(args: WrapletCreatorArgs<Node, WrapletChildrenMap>, currentCoreClass: Constructable<Core>): Wraplet;
6
+ export declare function defaultWrapletCreator(args: WrapletCreatorArgs<Node, WrapletDependencyMap>, currentCoreClass: Constructable<Core>): Wraplet;
@@ -1,9 +1,9 @@
1
1
  import { WrapletCreatorArgs } from "./WrapletCreator";
2
- import { WrapletChildrenMap } from "../../Wraplet/types/WrapletChildrenMap";
2
+ import { WrapletDependencyMap } from "../../Wraplet/types/WrapletDependencyMap";
3
3
  declare const ArgCreatorSymbol: unique symbol;
4
4
  export { ArgCreatorSymbol };
5
- export interface ArgCreator<N extends Node, M extends WrapletChildrenMap = {}> {
5
+ export interface ArgCreator<N extends Node, M extends WrapletDependencyMap = {}> {
6
6
  [ArgCreatorSymbol]: true;
7
7
  createArg(args: WrapletCreatorArgs<N, M>): unknown;
8
8
  }
9
- export declare function isArgCreator<N extends Node, M extends WrapletChildrenMap = {}>(object: unknown): object is ArgCreator<N, M>;
9
+ export declare function isArgCreator<N extends Node, M extends WrapletDependencyMap = {}>(object: unknown): object is ArgCreator<N, M>;
@@ -1,17 +1,17 @@
1
- import { WrapletChildren } from "../../Wraplet/types/WrapletChildren";
2
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../../Wraplet/types/WrapletChildrenMap";
3
- import { DestroyChildListener } from "./DestroyChildListener";
4
- import { InstantiateChildListener } from "./InstantiateChildListener";
1
+ import { WrapletDependencies } from "../../Wraplet/types/WrapletDependencies";
2
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../../Wraplet/types/WrapletDependencyMap";
3
+ import { DependencyDestroyedListener } from "./DestroyDependencyListener";
4
+ import { DependencyInstantiatedListener } from "./DependencyInstantiatedListener";
5
5
  import { Wraplet } from "../../Wraplet/types/Wraplet";
6
6
  import { WrapletCreator } from "./WrapletCreator";
7
7
  import { Status } from "../../Wraplet/types/Status";
8
8
  declare const CoreSymbol: unique symbol;
9
9
  export { CoreSymbol };
10
10
  /**
11
- * Children manager interface that defines the public API for managing wraplet relationships
11
+ * Dependency manager interface that defines the public API for managing wraplet relationships
12
12
  * and lifecycles.
13
13
  */
14
- export interface Core<N extends Node = Node, M extends WrapletChildrenMap = {}> {
14
+ export interface Core<N extends Node = Node, M extends WrapletDependencyMap = {}> {
15
15
  [CoreSymbol]: true;
16
16
  /**
17
17
  * Core status.
@@ -20,47 +20,47 @@ export interface Core<N extends Node = Node, M extends WrapletChildrenMap = {}>
20
20
  /**
21
21
  * The children map that defines the relationships between nodes.
22
22
  */
23
- map: WrapletChildrenMapWithDefaults<M>;
23
+ map: WrapletDependencyMapWithDefaults<M>;
24
24
  /**
25
25
  * Node attached to the current wraplet.
26
26
  */
27
27
  node: N;
28
28
  /**
29
- * Instantiate children based on the map and the current node.
29
+ * Instantiate dependencies based on the map and the current node.
30
30
  */
31
- instantiateChildren(): void;
31
+ instantiateDependencies(): void;
32
32
  /**
33
- * Initialize children.
33
+ * Initialize dependencies.
34
34
  */
35
- initializeChildren(): Promise<void>;
35
+ initializeDependencies(): Promise<void>;
36
36
  /**
37
- * Synchronize the children instances with the DOM.
37
+ * Synchronize the dependencies instances with the DOM.
38
38
  */
39
- syncChildren(): Promise<void>;
39
+ syncDependencies(): Promise<void>;
40
40
  /**
41
- * Add a listener that will be called when a child is destroyed.
41
+ * Add a listener that will be called when a dependency is destroyed.
42
42
  */
43
- addDestroyChildListener(callback: DestroyChildListener<M, keyof M>): void;
43
+ addDependencyDestroyedListener(callback: DependencyDestroyedListener<M, keyof M>): void;
44
44
  /**
45
- * Add a listener that will be called when a child is instantiated.
45
+ * Add a listener that will be called when a dependency is instantiated.
46
46
  */
47
- addInstantiateChildListener(callback: InstantiateChildListener<M, keyof M>): void;
47
+ addDependencyInstantiatedListener(callback: DependencyInstantiatedListener<M, keyof M>): void;
48
48
  /**
49
- * Destroy all children.
49
+ * Destroy all dependencies.
50
50
  */
51
51
  destroy(): Promise<void>;
52
52
  /**
53
53
  * Add an event listener to a node and track it for cleanup.
54
54
  */
55
55
  addEventListener(node: Node, eventName: string, callback: EventListenerOrEventListenerObject, options?: AddEventListenerOptions | boolean): void;
56
- getNodeTreeChildren(): Wraplet[];
56
+ getChildrenDependencies(): Wraplet[];
57
57
  /**
58
58
  * Allows for overriding the default wraplet creation process.
59
59
  */
60
- setWrapletCreator(wrapletCreator: WrapletCreator<Node, WrapletChildrenMap>): void;
60
+ setWrapletCreator(wrapletCreator: WrapletCreator<Node, WrapletDependencyMap>): void;
61
61
  /**
62
- * Get the instantiated children.
62
+ * Get the available dependencies.
63
63
  */
64
- readonly children: WrapletChildren<M>;
64
+ readonly dependencies: WrapletDependencies<M>;
65
65
  }
66
66
  export declare function isCore(object: unknown): object is Core;
@@ -1,7 +1,7 @@
1
- import { InstantiateChildListener } from "./InstantiateChildListener";
2
- import { WrapletChildrenMap } from "../../Wraplet/types/WrapletChildrenMap";
3
- import { DestroyChildListener } from "./DestroyChildListener";
4
- export type CoreInitOptions<M extends WrapletChildrenMap = WrapletChildrenMap> = {
5
- instantiateChildListeners: InstantiateChildListener<M, keyof M>[];
6
- destroyChildListeners: DestroyChildListener<M, keyof M>[];
1
+ import { DependencyInstantiatedListener } from "./DependencyInstantiatedListener";
2
+ import { WrapletDependencyMap } from "../../Wraplet/types/WrapletDependencyMap";
3
+ import { DependencyDestroyedListener } from "./DestroyDependencyListener";
4
+ export type CoreInitOptions<M extends WrapletDependencyMap = WrapletDependencyMap> = {
5
+ dependencyInstantiatedListeners?: DependencyInstantiatedListener<M, keyof M>[];
6
+ dependencyDestroyedListeners?: DependencyDestroyedListener<M, keyof M>[];
7
7
  };
@@ -0,0 +1,3 @@
1
+ import { WrapletDependencyMap } from "../../Wraplet/types/WrapletDependencyMap";
2
+ import { DependencyInstance } from "../../Wraplet/types/DependencyInstance";
3
+ export type DependencyInstantiatedListener<M extends WrapletDependencyMap, K extends keyof M> = (wraplet: DependencyInstance<M, K>, id: K) => void;
@@ -0,0 +1,3 @@
1
+ import { WrapletDependencyMap } from "../../Wraplet/types/WrapletDependencyMap";
2
+ import { DependencyInstance } from "../../Wraplet/types/DependencyInstance";
3
+ export type DependencyDestroyedListener<M extends WrapletDependencyMap, K extends keyof M> = (wraplet: DependencyInstance<M, K>, id: K) => void;
@@ -1,11 +1,11 @@
1
1
  import { Wraplet } from "../../Wraplet/types/Wraplet";
2
2
  import { MapWrapper } from "../../Map/MapWrapper";
3
- import { WrapletChildrenMap } from "../../Wraplet/types/WrapletChildrenMap";
3
+ import { WrapletDependencyMap } from "../../Wraplet/types/WrapletDependencyMap";
4
4
  import { CoreInitOptions } from "./CoreInitOptions";
5
5
  import { Constructable } from "../../utils/types/Utils";
6
6
  import { Core } from "./Core";
7
- export type WrapletCreator<N extends Node, M extends WrapletChildrenMap> = (args: WrapletCreatorArgs<N, M>, currentCoreClass: Constructable<Core>) => Wraplet<N>;
8
- export type WrapletCreatorArgs<N extends Node, M extends WrapletChildrenMap> = {
7
+ export type WrapletCreator<N extends Node, M extends WrapletDependencyMap> = (args: WrapletCreatorArgs<N, M>, currentCoreClass: Constructable<Core>) => Wraplet<N>;
8
+ export type WrapletCreatorArgs<N extends Node, M extends WrapletDependencyMap> = {
9
9
  id: keyof M;
10
10
  Class: Constructable<Wraplet<N>>;
11
11
  element: N;
@@ -1,10 +1,10 @@
1
1
  import { MapWrapper } from "./MapWrapper";
2
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../Wraplet/types/WrapletChildrenMap";
2
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../Wraplet/types/WrapletDependencyMap";
3
3
  import { DynamicMap, DynamicMapSymbol } from "./types/DynamicMap";
4
4
  export declare class MapRepeat implements DynamicMap {
5
5
  private readonly levels;
6
6
  [DynamicMapSymbol]: true;
7
7
  constructor(levels?: number);
8
- create<M extends WrapletChildrenMap>(parentMapClone: MapWrapper<M>): WrapletChildrenMapWithDefaults<M>;
8
+ create<M extends WrapletDependencyMap>(parentMapClone: MapWrapper<M>): WrapletDependencyMapWithDefaults<M>;
9
9
  static create(levels?: number): MapRepeat;
10
10
  }
@@ -1,10 +1,10 @@
1
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../Wraplet/types/WrapletChildrenMap";
2
- type RecursiveMapKeys<T extends WrapletChildrenMap> = {
1
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../Wraplet/types/WrapletDependencyMap";
2
+ type RecursiveMapKeys<T extends WrapletDependencyMap> = {
3
3
  [K in keyof T]: T[K] extends {
4
- map: infer M extends WrapletChildrenMap;
4
+ map: infer M extends WrapletDependencyMap;
5
5
  } ? K | RecursiveMapKeys<M> : K;
6
6
  }[keyof T];
7
- export declare class MapWrapper<M extends WrapletChildrenMap> {
7
+ export declare class MapWrapper<M extends WrapletDependencyMap> {
8
8
  private readonly fullMap;
9
9
  private startingPath;
10
10
  private currentMap;
@@ -17,8 +17,8 @@ export declare class MapWrapper<M extends WrapletChildrenMap> {
17
17
  * @param resolveImmediately
18
18
  */
19
19
  constructor(fullMap: M, path?: (RecursiveMapKeys<M> | string)[], resolveImmediately?: boolean);
20
- getStartingMap(): WrapletChildrenMapWithDefaults<M>;
21
- getCurrentMap(): WrapletChildrenMapWithDefaults<M>;
20
+ getStartingMap(): WrapletDependencyMapWithDefaults<M>;
21
+ getCurrentMap(): WrapletDependencyMapWithDefaults<M>;
22
22
  /**
23
23
  * @param path
24
24
  * @private
@@ -27,7 +27,7 @@ export declare class MapWrapper<M extends WrapletChildrenMap> {
27
27
  up(pathPart: string, resolve?: boolean): void;
28
28
  private pathExists;
29
29
  down(resolve?: boolean): void;
30
- clone(path: string[], resolveImmediately?: boolean): MapWrapper<WrapletChildrenMapWithDefaults<M>>;
31
- resolve(path: string[]): WrapletChildrenMapWithDefaults<M>;
30
+ clone(path: string[], resolveImmediately?: boolean): MapWrapper<WrapletDependencyMapWithDefaults<M>>;
31
+ resolve(path: string[]): WrapletDependencyMapWithDefaults<M>;
32
32
  }
33
33
  export {};
@@ -1,9 +1,9 @@
1
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../../Wraplet/types/WrapletChildrenMap";
1
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../../Wraplet/types/WrapletDependencyMap";
2
2
  import { MapWrapper } from "../MapWrapper";
3
3
  declare const DynamicMapSymbol: unique symbol;
4
4
  export { DynamicMapSymbol };
5
5
  export interface DynamicMap {
6
6
  [DynamicMapSymbol]: true;
7
- create<M extends WrapletChildrenMap>(parentMapClone: MapWrapper<M>): WrapletChildrenMapWithDefaults<M>;
7
+ create<M extends WrapletDependencyMap>(parentMapClone: MapWrapper<M>): WrapletDependencyMapWithDefaults<M>;
8
8
  }
9
9
  export declare function isDynamicMap(object: unknown): object is DynamicMap;
@@ -1,4 +1,4 @@
1
- import { WrapletChildDefinition, WrapletChildDefinitionWithDefaults } from "../Wraplet/types/WrapletChildDefinition";
2
- import { WrapletChildrenMap, WrapletChildrenMapWithDefaults } from "../Wraplet/types/WrapletChildrenMap";
3
- export declare function addDefaultsToChildDefinition<M extends WrapletChildrenMap, T extends WrapletChildDefinition<M>>(definition: T): WrapletChildDefinitionWithDefaults<T, M>;
4
- export declare function fillMapWithDefaults<M extends WrapletChildrenMap>(map: M): WrapletChildrenMapWithDefaults<M>;
1
+ import { WrapletDependencyDefinition, WrapletDependencyDefinitionWithDefaults } from "../Wraplet/types/WrapletDependencyDefinition";
2
+ import { WrapletDependencyMap, WrapletDependencyMapWithDefaults } from "../Wraplet/types/WrapletDependencyMap";
3
+ export declare function addDefaultsToDependencyDefinition<M extends WrapletDependencyMap, T extends WrapletDependencyDefinition<M>>(definition: T): WrapletDependencyDefinitionWithDefaults<T, M>;
4
+ export declare function fillMapWithDefaults<M extends WrapletDependencyMap>(map: M): WrapletDependencyMapWithDefaults<M>;
@@ -4,7 +4,7 @@ export { NodeTreeParentSymbol };
4
4
  export interface NodeTreeParent {
5
5
  [NodeTreeParentSymbol]: true;
6
6
  wraplet: {
7
- getNodeTreeChildren(): Wraplet[];
7
+ getChildrenDependencies(): Wraplet[];
8
8
  };
9
9
  }
10
10
  export declare function isNodeTreeParent(object: object): object is NodeTreeParent;
@@ -3,11 +3,11 @@ import { WrapletApiFactoryBasicCallback } from "./types/WrapletApiFactoryBasicCa
3
3
  import { Core } from "../Core/types/Core";
4
4
  import { Wraplet } from "./types/Wraplet";
5
5
  import { DestroyListener } from "../Core/types/DestroyListener";
6
- import { WrapletChildrenMap } from "./types/WrapletChildrenMap";
7
- export type DefaultDestroyCallbackArgs<N extends Node, M extends WrapletChildrenMap> = {
6
+ import { WrapletDependencyMap } from "./types/WrapletDependencyMap";
7
+ export type DefaultDestroyCallbackArgs<N extends Node, M extends WrapletDependencyMap> = {
8
8
  core: Core<N, M>;
9
9
  wraplet: Wraplet<N>;
10
10
  destroyListeners: DestroyListener<Wraplet<N>>[];
11
11
  status?: Status;
12
12
  };
13
- export declare function createDefaultDestroyCallback<N extends Node, M extends WrapletChildrenMap>(args: DefaultDestroyCallbackArgs<N, M>, customDestroyLogic?: WrapletApiFactoryBasicCallback): () => Promise<void>;
13
+ export declare function createDefaultDestroyCallback<N extends Node, M extends WrapletDependencyMap>(args: DefaultDestroyCallbackArgs<N, M>, customDestroyLogic?: WrapletApiFactoryBasicCallback): () => Promise<void>;
@@ -1,13 +1,15 @@
1
- import { WrapletChildrenMap } from "./types/WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./types/WrapletDependencyMap";
2
2
  import { Status } from "./types/Status";
3
3
  import { Core } from "../Core/types/Core";
4
4
  import { WrapletApiFactoryBasicCallback } from "./types/WrapletApiFactoryBasicCallback";
5
- export type DefaultInitializeCallbackArgs<N extends Node, M extends WrapletChildrenMap> = {
5
+ import { Wraplet } from "./types/Wraplet";
6
+ export type DefaultInitializeCallbackArgs<N extends Node, M extends WrapletDependencyMap> = {
6
7
  core: Core<N, M>;
8
+ wraplet: Wraplet<N>;
7
9
  destroyCallback: () => Promise<void>;
8
10
  status?: Status;
9
11
  };
10
12
  /**
11
13
  * Note: If status is not provided, this function will attempt to get it from "this".
12
14
  */
13
- export declare function createDefaultInitializeCallback<N extends Node, M extends WrapletChildrenMap>(args: DefaultInitializeCallbackArgs<N, M>, customInitializeLogic?: WrapletApiFactoryBasicCallback): () => Promise<void>;
15
+ export declare function createDefaultInitializeCallback<N extends Node, M extends WrapletDependencyMap>(args: DefaultInitializeCallbackArgs<N, M>, customInitializeLogic?: WrapletApiFactoryBasicCallback): () => Promise<void>;
@@ -1,5 +1,5 @@
1
- import { WrapletChildrenMap } from "./types/WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./types/WrapletDependencyMap";
2
2
  import { WrapletApiDebug } from "./types/WrapletApi";
3
3
  import { RichWrapletApi } from "./types/RichWrapletApi";
4
4
  import { RichWrapletApiFactoryArgs } from "./types/RichWrapletApiFactoryArgs";
5
- export declare const createRichWrapletApi: <N extends Node, M extends WrapletChildrenMap>(args: RichWrapletApiFactoryArgs<N, M>) => RichWrapletApi<N> & WrapletApiDebug<N>;
5
+ export declare const createRichWrapletApi: <N extends Node, M extends WrapletDependencyMap>(args: RichWrapletApiFactoryArgs<N, M>) => RichWrapletApi<N> & WrapletApiDebug<N>;
@@ -1,4 +1,4 @@
1
- import { WrapletChildrenMap } from "./types/WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./types/WrapletDependencyMap";
2
2
  import { WrapletApiFactoryArgs } from "./types/WrapletApiFactoryArgs";
3
3
  import { WrapletApi, WrapletApiDebug } from "./types/WrapletApi";
4
- export declare const createWrapletApi: <N extends Node, M extends WrapletChildrenMap>(args: WrapletApiFactoryArgs<N, M>) => WrapletApi<N> & WrapletApiDebug<N>;
4
+ export declare const createWrapletApi: <N extends Node, M extends WrapletDependencyMap>(args: WrapletApiFactoryArgs<N, M>) => WrapletApi<N> & WrapletApiDebug<N>;
@@ -2,8 +2,8 @@ import { StatusWritable } from "../Wraplet/types/Status";
2
2
  import { Core } from "../Core/types/Core";
3
3
  import { DestroyListener } from "../Core/types/DestroyListener";
4
4
  import { Wraplet } from "../Wraplet/types/Wraplet";
5
- import { WrapletChildrenMap } from "../Wraplet/types/WrapletChildrenMap";
6
- export declare function initializationStarted<N extends Node, M extends WrapletChildrenMap>(status: StatusWritable, core: Core<N, M>): Promise<boolean>;
5
+ import { WrapletDependencyMap } from "./types/WrapletDependencyMap";
6
+ export declare function initializationStarted<N extends Node, M extends WrapletDependencyMap>(status: StatusWritable, core: Core<N, M>, wraplet: Wraplet<N>): Promise<boolean>;
7
7
  export declare function initializationCompleted(status: StatusWritable, destroyMethod: () => Promise<void>): Promise<void>;
8
- export declare function destructionStarted<N extends Node, W extends Wraplet<N>, M extends WrapletChildrenMap>(status: StatusWritable, core: Core<N, M>, wraplet: W, destroyListeners: DestroyListener<W>[]): Promise<boolean>;
9
- export declare function destructionCompleted(status: StatusWritable): Promise<void>;
8
+ export declare function destructionStarted<N extends Node, W extends Wraplet<N>, M extends WrapletDependencyMap>(status: StatusWritable, core: Core<N, M>, wraplet: W, destroyListeners: DestroyListener<W>[]): Promise<boolean>;
9
+ export declare function destructionCompleted<N extends Node, W extends Wraplet<N>, M extends WrapletDependencyMap>(status: StatusWritable, core: Core<N, M>, wraplet: W): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { WrapletDependencyMap } from "./WrapletDependencyMap";
2
+ export type DependencyInstance<M extends WrapletDependencyMap, K extends keyof M = keyof M> = InstanceType<M[K]["Class"]>;
@@ -1,6 +1,6 @@
1
- import { WrapletChildrenMap } from "./WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./WrapletDependencyMap";
2
2
  import { GroupExtractor } from "../../types/Groupable";
3
3
  import { WrapletApiFactoryArgs } from "./WrapletApiFactoryArgs";
4
- export type RichWrapletApiFactoryArgs<N extends Node = Node, M extends WrapletChildrenMap = WrapletChildrenMap> = {
4
+ export type RichWrapletApiFactoryArgs<N extends Node = Node, M extends WrapletDependencyMap = WrapletDependencyMap> = {
5
5
  groupExtractor?: GroupExtractor;
6
6
  } & WrapletApiFactoryArgs<N, M>;
@@ -1,9 +1,9 @@
1
- import { WrapletChildrenMap } from "./WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./WrapletDependencyMap";
2
2
  import { Core } from "../../Core/types/Core";
3
3
  import { DestroyListener } from "../../Core/types/DestroyListener";
4
4
  import { WrapletApiFactoryBasicCallback } from "./WrapletApiFactoryBasicCallback";
5
5
  import { Wraplet } from "./Wraplet";
6
- export type WrapletApiFactoryArgs<N extends Node = Node, M extends WrapletChildrenMap = WrapletChildrenMap> = {
6
+ export type WrapletApiFactoryArgs<N extends Node = Node, M extends WrapletDependencyMap = WrapletDependencyMap> = {
7
7
  core: Core<N, M>;
8
8
  wraplet: Wraplet<N>;
9
9
  destroyListeners?: DestroyListener<Wraplet<N>>[];
@@ -1,7 +1,7 @@
1
- import { WrapletChildrenMap } from "./WrapletChildrenMap";
1
+ import { WrapletDependencyMap } from "./WrapletDependencyMap";
2
2
  import { InstantiableReturnType } from "../../utils/types/Utils";
3
3
  import { WrapletSet } from "../../Set/types/WrapletSet";
4
- export type OptionalSingleInstantiableReturnType<T extends WrapletChildrenMap, K extends keyof T> = T[K]["required"] extends true ? InstantiableReturnType<T[K]["Class"]> : InstantiableReturnType<T[K]["Class"]> | null;
5
- export type WrapletChildren<T extends WrapletChildrenMap> = {
4
+ export type OptionalSingleInstantiableReturnType<T extends WrapletDependencyMap, K extends keyof T> = T[K]["required"] extends true ? InstantiableReturnType<T[K]["Class"]> : InstantiableReturnType<T[K]["Class"]> | null;
5
+ export type WrapletDependencies<T extends WrapletDependencyMap> = {
6
6
  [id in keyof T]: T[id]["multiple"] extends true ? WrapletSet<InstantiableReturnType<T[id]["Class"]>> : OptionalSingleInstantiableReturnType<T, id>;
7
7
  };
@@ -1,10 +1,10 @@
1
1
  import { Wraplet } from "./Wraplet";
2
- import { WrapletChildrenMap } from "./WrapletChildrenMap";
2
+ import { WrapletDependencyMap } from "./WrapletDependencyMap";
3
3
  import { CoreInitOptions } from "../../Core/types/CoreInitOptions";
4
4
  import { DynamicMap } from "../../Map/types/DynamicMap";
5
5
  import { Constructable } from "../../utils/types/Utils";
6
6
  export type SelectorCallback<N extends ParentNode = ParentNode> = (node: N) => Node[];
7
- export type WrapletChildDefinition<M extends WrapletChildrenMap = WrapletChildrenMap> = {
7
+ export type WrapletDependencyDefinition<M extends WrapletDependencyMap = WrapletDependencyMap> = {
8
8
  selector?: string | SelectorCallback;
9
9
  Class: Constructable<Wraplet<any>>;
10
10
  map?: M | DynamicMap;
@@ -14,7 +14,7 @@ export type WrapletChildDefinition<M extends WrapletChildrenMap = WrapletChildre
14
14
  args?: unknown[];
15
15
  destructible?: boolean;
16
16
  };
17
- export type WrapletChildDefinitionWithDefaults<T extends WrapletChildDefinition = WrapletChildDefinition, M extends WrapletChildrenMap = WrapletChildrenMap> = T & {
17
+ export type WrapletDependencyDefinitionWithDefaults<T extends WrapletDependencyDefinition = WrapletDependencyDefinition, M extends WrapletDependencyMap = WrapletDependencyMap> = T & {
18
18
  args: unknown[];
19
19
  destructible: boolean;
20
20
  map: M | DynamicMap;
@@ -0,0 +1,8 @@
1
+ import { WrapletDependencyDefinition, WrapletDependencyDefinitionWithDefaults } from "./WrapletDependencyDefinition";
2
+ export type WrapletDependencyMap = {
3
+ [id: string]: WrapletDependencyDefinition;
4
+ };
5
+ export type WrapletDependencyMapWithDefaults<M extends WrapletDependencyMap = WrapletDependencyMap> = {
6
+ [key in keyof M]: WrapletDependencyDefinitionWithDefaults<M[key], M>;
7
+ };
8
+ export declare function isWrapletDependencyMap(object: unknown): object is WrapletDependencyMapWithDefaults;
package/dist/errors.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- export declare class MissingRequiredChildError extends Error {
1
+ export declare class MissingRequiredDependencyError extends Error {
2
2
  }
3
3
  export declare class MapError extends Error {
4
4
  }
5
- export declare class RequiredChildDestroyedError extends Error {
5
+ export declare class RequiredDependencyDestroyedError extends Error {
6
6
  }
7
- export declare class ChildrenAreNotAvailableError extends Error {
7
+ export declare class DependenciesAreNotAvailableError extends Error {
8
8
  }
9
9
  export declare class StorageValidationError extends Error {
10
10
  }
11
- export declare class ChildrenTooManyFoundError extends Error {
11
+ export declare class TooManyChildrenFoundError extends Error {
12
12
  }
13
- export declare class ChildrenAreAlreadyDestroyedError extends Error {
13
+ export declare class DependenciesAreAlreadyDestroyedError extends Error {
14
14
  }
15
15
  export declare class InternalLogicError extends Error {
16
16
  }