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.
- package/dist/AbstractWraplet.d.ts +16 -16
- package/dist/Core/DefaultArgCreator.d.ts +3 -3
- package/dist/Core/DefaultCore.d.ts +28 -28
- package/dist/Core/defaultWrapletCreator.d.ts +2 -2
- package/dist/Core/types/ArgCreator.d.ts +3 -3
- package/dist/Core/types/Core.d.ts +22 -22
- package/dist/Core/types/CoreInitOptions.d.ts +6 -6
- package/dist/Core/types/DependencyInstantiatedListener.d.ts +3 -0
- package/dist/Core/types/DestroyDependencyListener.d.ts +3 -0
- package/dist/Core/types/WrapletCreator.d.ts +3 -3
- package/dist/Map/MapRepeat.d.ts +2 -2
- package/dist/Map/MapWrapper.d.ts +8 -8
- package/dist/Map/types/DynamicMap.d.ts +2 -2
- package/dist/Map/utils.d.ts +4 -4
- package/dist/NodeTreeManager/types/NodeTreeParent.d.ts +1 -1
- package/dist/Wraplet/createDefaultDestroyCallback.d.ts +3 -3
- package/dist/Wraplet/createDefaultInitializeCallback.d.ts +5 -3
- package/dist/Wraplet/createRichWrapletApi.d.ts +2 -2
- package/dist/Wraplet/createWrapletApi.d.ts +2 -2
- package/dist/Wraplet/statusActions.d.ts +4 -4
- package/dist/Wraplet/types/DependencyInstance.d.ts +2 -0
- package/dist/Wraplet/types/RichWrapletApiFactoryArgs.d.ts +2 -2
- package/dist/Wraplet/types/WrapletApiFactoryArgs.d.ts +2 -2
- package/dist/Wraplet/types/{WrapletChildren.d.ts → WrapletDependencies.d.ts} +3 -3
- package/dist/Wraplet/types/{WrapletChildDefinition.d.ts → WrapletDependencyDefinition.d.ts} +3 -3
- package/dist/Wraplet/types/WrapletDependencyMap.d.ts +8 -0
- package/dist/errors.d.ts +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/storage.cjs.map +1 -1
- package/dist/storage.js.map +1 -1
- package/package.json +1 -1
- package/dist/Core/types/DestroyChildListener.d.ts +0 -3
- package/dist/Core/types/InstantiateChildListener.d.ts +0 -3
- package/dist/Wraplet/types/ChildInstance.d.ts +0 -2
- package/dist/Wraplet/types/WrapletChildrenMap.d.ts +0 -8
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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 {
|
|
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
|
|
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
|
|
19
|
+
protected get deps(): WrapletDependencies<M>;
|
|
20
20
|
/**
|
|
21
|
-
* This method will be ivoked if one of the wraplet's
|
|
21
|
+
* This method will be ivoked if one of the wraplet's dependencies has been destroyed.
|
|
22
22
|
*/
|
|
23
|
-
protected
|
|
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
|
|
26
|
+
* This method will be invoked if one of the wraplet's dependencies has been instantiated.
|
|
27
27
|
*/
|
|
28
|
-
protected
|
|
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
|
|
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
|
|
47
|
-
* that the class is correct, but also that the
|
|
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
|
|
52
|
-
protected static createCore<N extends Node, M extends
|
|
53
|
-
protected static createWraplets<N extends Node, T extends AbstractWraplet<N, any> = never>(node: ParentNode, map:
|
|
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 {
|
|
2
|
+
import { WrapletDependencyMap } from "../Wraplet/types/WrapletDependencyMap";
|
|
3
3
|
import { WrapletCreatorArgs } from "./types/WrapletCreator";
|
|
4
|
-
export declare class DefaultArgCreator<N extends Node, M extends
|
|
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
|
|
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 {
|
|
1
|
+
import { WrapletDependencies } from "../Wraplet/types/WrapletDependencies";
|
|
2
2
|
import { Wraplet } from "../Wraplet/types/Wraplet";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
|
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
|
|
16
|
+
private dependenciesAreInstantiated;
|
|
17
17
|
private statusWritable;
|
|
18
18
|
get status(): Status;
|
|
19
19
|
mapWrapper: MapWrapper<M>;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
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
|
|
31
|
-
* so the
|
|
30
|
+
* processing occurs (instantiate dependency listeners) that needs access to the Core,
|
|
31
|
+
* so the Core has to exist already.
|
|
32
32
|
*/
|
|
33
|
-
|
|
34
|
-
get map():
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
|
39
|
+
private instantiateSingleWrapletDependency;
|
|
40
40
|
private instantiateWrapletItem;
|
|
41
|
-
private
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
setWrapletCreator(wrapletCreator: WrapletCreator<Node,
|
|
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
|
|
47
|
+
* This method removes from nodes references to this wraplet and its dependencies recursively.
|
|
48
48
|
*/
|
|
49
49
|
destroy(): Promise<void>;
|
|
50
|
-
private
|
|
50
|
+
private findChildrenElements;
|
|
51
51
|
addEventListener(node: Node, eventName: string, callback: EventListenerOrEventListenerObject, options?: AddEventListenerOptions | boolean): void;
|
|
52
|
-
get
|
|
53
|
-
private
|
|
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
|
|
58
|
+
* Set up a proxy to check if dependencies have not been destroyed before fetching them.
|
|
59
59
|
*/
|
|
60
|
-
private
|
|
60
|
+
private wrapDependencies;
|
|
61
61
|
private defaultInitOptions;
|
|
62
62
|
private processInitOptions;
|
|
63
|
-
private
|
|
63
|
+
private destroyDependencies;
|
|
64
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WrapletCreatorArgs } from "./types/WrapletCreator";
|
|
2
|
-
import {
|
|
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,
|
|
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 {
|
|
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
|
|
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
|
|
9
|
+
export declare function isArgCreator<N extends Node, M extends WrapletDependencyMap = {}>(object: unknown): object is ArgCreator<N, M>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|
-
*
|
|
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
|
|
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:
|
|
23
|
+
map: WrapletDependencyMapWithDefaults<M>;
|
|
24
24
|
/**
|
|
25
25
|
* Node attached to the current wraplet.
|
|
26
26
|
*/
|
|
27
27
|
node: N;
|
|
28
28
|
/**
|
|
29
|
-
* Instantiate
|
|
29
|
+
* Instantiate dependencies based on the map and the current node.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
instantiateDependencies(): void;
|
|
32
32
|
/**
|
|
33
|
-
* Initialize
|
|
33
|
+
* Initialize dependencies.
|
|
34
34
|
*/
|
|
35
|
-
|
|
35
|
+
initializeDependencies(): Promise<void>;
|
|
36
36
|
/**
|
|
37
|
-
* Synchronize the
|
|
37
|
+
* Synchronize the dependencies instances with the DOM.
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
syncDependencies(): Promise<void>;
|
|
40
40
|
/**
|
|
41
|
-
* Add a listener that will be called when a
|
|
41
|
+
* Add a listener that will be called when a dependency is destroyed.
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
addDependencyDestroyedListener(callback: DependencyDestroyedListener<M, keyof M>): void;
|
|
44
44
|
/**
|
|
45
|
-
* Add a listener that will be called when a
|
|
45
|
+
* Add a listener that will be called when a dependency is instantiated.
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
addDependencyInstantiatedListener(callback: DependencyInstantiatedListener<M, keyof M>): void;
|
|
48
48
|
/**
|
|
49
|
-
* Destroy all
|
|
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
|
-
|
|
56
|
+
getChildrenDependencies(): Wraplet[];
|
|
57
57
|
/**
|
|
58
58
|
* Allows for overriding the default wraplet creation process.
|
|
59
59
|
*/
|
|
60
|
-
setWrapletCreator(wrapletCreator: WrapletCreator<Node,
|
|
60
|
+
setWrapletCreator(wrapletCreator: WrapletCreator<Node, WrapletDependencyMap>): void;
|
|
61
61
|
/**
|
|
62
|
-
* Get the
|
|
62
|
+
* Get the available dependencies.
|
|
63
63
|
*/
|
|
64
|
-
readonly
|
|
64
|
+
readonly dependencies: WrapletDependencies<M>;
|
|
65
65
|
}
|
|
66
66
|
export declare function isCore(object: unknown): object is Core;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export type CoreInitOptions<M extends
|
|
5
|
-
|
|
6
|
-
|
|
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 {
|
|
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
|
|
8
|
-
export type WrapletCreatorArgs<N extends Node, M extends
|
|
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;
|
package/dist/Map/MapRepeat.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MapWrapper } from "./MapWrapper";
|
|
2
|
-
import {
|
|
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
|
|
8
|
+
create<M extends WrapletDependencyMap>(parentMapClone: MapWrapper<M>): WrapletDependencyMapWithDefaults<M>;
|
|
9
9
|
static create(levels?: number): MapRepeat;
|
|
10
10
|
}
|
package/dist/Map/MapWrapper.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type RecursiveMapKeys<T extends
|
|
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
|
|
4
|
+
map: infer M extends WrapletDependencyMap;
|
|
5
5
|
} ? K | RecursiveMapKeys<M> : K;
|
|
6
6
|
}[keyof T];
|
|
7
|
-
export declare class MapWrapper<M extends
|
|
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():
|
|
21
|
-
getCurrentMap():
|
|
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<
|
|
31
|
-
resolve(path: string[]):
|
|
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 {
|
|
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
|
|
7
|
+
create<M extends WrapletDependencyMap>(parentMapClone: MapWrapper<M>): WrapletDependencyMapWithDefaults<M>;
|
|
8
8
|
}
|
|
9
9
|
export declare function isDynamicMap(object: unknown): object is DynamicMap;
|
package/dist/Map/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function fillMapWithDefaults<M extends
|
|
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
|
-
|
|
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 {
|
|
7
|
-
export type DefaultDestroyCallbackArgs<N extends Node, M extends
|
|
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
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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
|
|
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 {
|
|
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
|
|
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 {
|
|
6
|
-
export declare function initializationStarted<N extends Node, M extends
|
|
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
|
|
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>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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 {
|
|
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
|
|
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 {
|
|
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
|
|
5
|
-
export type
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
1
|
+
export declare class MissingRequiredDependencyError extends Error {
|
|
2
2
|
}
|
|
3
3
|
export declare class MapError extends Error {
|
|
4
4
|
}
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class RequiredDependencyDestroyedError extends Error {
|
|
6
6
|
}
|
|
7
|
-
export declare class
|
|
7
|
+
export declare class DependenciesAreNotAvailableError extends Error {
|
|
8
8
|
}
|
|
9
9
|
export declare class StorageValidationError extends Error {
|
|
10
10
|
}
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class TooManyChildrenFoundError extends Error {
|
|
12
12
|
}
|
|
13
|
-
export declare class
|
|
13
|
+
export declare class DependenciesAreAlreadyDestroyedError extends Error {
|
|
14
14
|
}
|
|
15
15
|
export declare class InternalLogicError extends Error {
|
|
16
16
|
}
|