unreal-toolkit-next 0.1.8 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +11 -0
- package/dist/index.d.ts +19 -21
- package/dist/index.js +42 -44
- package/package.json +1 -1
package/README.md
CHANGED
@@ -16,3 +16,14 @@ npm install unreal-toolkit-next
|
|
16
16
|
```javascript
|
17
17
|
import UnrealToolkit from 'unreal-toolkit';
|
18
18
|
```
|
19
|
+
|
20
|
+
* Unreal Toolkit Message Bus Usage
|
21
|
+
```typescript
|
22
|
+
// Post window message
|
23
|
+
UnrealToolkit.EventBus.PostWindowMessage("myevent", ["Hello World!"]);
|
24
|
+
|
25
|
+
// Handle window message
|
26
|
+
UnrealToolkit.EventBus.OnWindowMessage("myevent", (args:string[]) => {
|
27
|
+
console.log("My Event Args: ", args);
|
28
|
+
});
|
29
|
+
```
|
package/dist/index.d.ts
CHANGED
@@ -8,13 +8,13 @@ export declare class UnrealToolkit {
|
|
8
8
|
/** Unreal Toolkit event message bus
|
9
9
|
* @example
|
10
10
|
* ```typescript
|
11
|
-
* //
|
12
|
-
* UnrealToolkit.EventBus.
|
13
|
-
* console.log("My Event Data: " + data);
|
14
|
-
* });
|
11
|
+
* // Post myevent window message
|
12
|
+
* UnrealToolkit.EventBus.PostWindowMessage("myevent", ["Hello World!"]);
|
15
13
|
*
|
16
|
-
* //
|
17
|
-
* UnrealToolkit.EventBus.
|
14
|
+
* // Handle myevent window message
|
15
|
+
* UnrealToolkit.EventBus.OnWindowMessage("myevent", (args:string[]) => {
|
16
|
+
* console.log("My Event Args: ", args);
|
17
|
+
* });
|
18
18
|
* ```
|
19
19
|
*/
|
20
20
|
static get EventBus(): UnrealMessageBus;
|
@@ -24,29 +24,27 @@ export declare class UnrealToolkit {
|
|
24
24
|
* @class UnrealMessageBus - All rights reserved (c) 2024 Mackey Kinard
|
25
25
|
*/
|
26
26
|
export declare class UnrealMessageBus {
|
27
|
-
|
28
|
-
static
|
27
|
+
static AllowedOrigin: string;
|
28
|
+
static TargetOrigin: string;
|
29
29
|
constructor();
|
30
|
-
/**
|
31
|
-
* @param
|
32
|
-
* @param
|
30
|
+
/** Post event bus message
|
31
|
+
* @param name The message to post
|
32
|
+
* @param args The args to post
|
33
33
|
* @returns void
|
34
34
|
*/
|
35
|
-
|
36
|
-
/**
|
37
|
-
* @param
|
38
|
-
* @param
|
39
|
-
* @param target The target to post
|
40
|
-
* @param transfer The transfer to post
|
35
|
+
PostWindowMessage(name: string, args?: string[]): void;
|
36
|
+
/** Handle event bus message
|
37
|
+
* @param name The name to handle
|
38
|
+
* @param args The args to handle
|
41
39
|
* @returns void
|
42
40
|
*/
|
43
|
-
|
41
|
+
OnWindowMessage(name: string, handler: (args: string[]) => void): void;
|
44
42
|
/** Remove event bus message handler
|
45
43
|
* @param message The message to remove
|
46
44
|
* @param handler The handler to remove
|
47
45
|
* @returns void
|
48
46
|
*/
|
49
|
-
RemoveHandler(message: string, handler: (
|
47
|
+
RemoveHandler(message: string, handler: (args: string[]) => void): void;
|
50
48
|
/** Clear and reset all event bus message handlers
|
51
49
|
* @returns void
|
52
50
|
*/
|
@@ -61,8 +59,8 @@ export declare class UnrealMessageBus {
|
|
61
59
|
*/
|
62
60
|
private HandleWindowMessage;
|
63
61
|
/** Dispatch internal event bus message
|
64
|
-
* @param
|
65
|
-
* @param
|
62
|
+
* @param name The name to dispatch
|
63
|
+
* @param args The args to dispatch
|
66
64
|
* @returns void
|
67
65
|
*/
|
68
66
|
private OnDispatchMessage;
|
package/dist/index.js
CHANGED
@@ -7,13 +7,13 @@ export class UnrealToolkit {
|
|
7
7
|
/** Unreal Toolkit event message bus
|
8
8
|
* @example
|
9
9
|
* ```typescript
|
10
|
-
* //
|
11
|
-
* UnrealToolkit.EventBus.
|
12
|
-
* console.log("My Event Data: " + data);
|
13
|
-
* });
|
10
|
+
* // Post myevent window message
|
11
|
+
* UnrealToolkit.EventBus.PostWindowMessage("myevent", ["Hello World!"]);
|
14
12
|
*
|
15
|
-
* //
|
16
|
-
* UnrealToolkit.EventBus.
|
13
|
+
* // Handle myevent window message
|
14
|
+
* UnrealToolkit.EventBus.OnWindowMessage("myevent", (args:string[]) => {
|
15
|
+
* console.log("My Event Args: ", args);
|
16
|
+
* });
|
17
17
|
* ```
|
18
18
|
*/
|
19
19
|
static get EventBus() {
|
@@ -30,45 +30,40 @@ UnrealToolkit._EventBus = null;
|
|
30
30
|
export class UnrealMessageBus {
|
31
31
|
constructor() {
|
32
32
|
this.ListenerDictionary = {};
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
this.HandleWindowMessage = this.HandleWindowMessage.bind(this);
|
34
|
+
window.top.addEventListener("message", this.HandleWindowMessage);
|
35
|
+
}
|
36
|
+
/** Post event bus message
|
37
|
+
* @param name The message to post
|
38
|
+
* @param args The args to post
|
39
|
+
* @returns void
|
40
|
+
*/
|
41
|
+
PostWindowMessage(name, args) {
|
42
|
+
try {
|
43
|
+
window.top.postMessage({ source: "unrealtoolkit", message: name, args: args }, UnrealMessageBus.TargetOrigin);
|
36
44
|
}
|
37
|
-
|
38
|
-
console.warn(
|
45
|
+
catch (e) {
|
46
|
+
console.warn(e);
|
39
47
|
}
|
40
48
|
}
|
41
49
|
/** Handle event bus message
|
42
|
-
* @param
|
43
|
-
* @param
|
50
|
+
* @param name The name to handle
|
51
|
+
* @param args The args to handle
|
44
52
|
* @returns void
|
45
53
|
*/
|
46
|
-
|
54
|
+
OnWindowMessage(name, handler) {
|
47
55
|
let listeners;
|
48
|
-
if (this.ListenerDictionary[
|
56
|
+
if (this.ListenerDictionary[name] == null) {
|
49
57
|
listeners = [];
|
50
|
-
this.ListenerDictionary[
|
58
|
+
this.ListenerDictionary[name] = listeners;
|
51
59
|
}
|
52
60
|
else {
|
53
|
-
listeners = this.ListenerDictionary[
|
61
|
+
listeners = this.ListenerDictionary[name];
|
54
62
|
}
|
55
63
|
const index = listeners.findIndex((e) => { return handler == e; });
|
56
64
|
if (index < 0)
|
57
65
|
listeners.push(handler);
|
58
66
|
}
|
59
|
-
/** Post event bus message
|
60
|
-
* @param message The message to post
|
61
|
-
* @param data The data to post
|
62
|
-
* @param target The target to post
|
63
|
-
* @param transfer The transfer to post
|
64
|
-
* @returns void
|
65
|
-
*/
|
66
|
-
PostMessage(message, data) {
|
67
|
-
if (window && window.top)
|
68
|
-
window.top.postMessage({ source: "unrealmessagebus", message: message, data: data, key: UnrealMessageBus.ApiKey });
|
69
|
-
else
|
70
|
-
console.warn("UnrealMessageBus: No Top Window Available");
|
71
|
-
}
|
72
67
|
/** Remove event bus message handler
|
73
68
|
* @param message The message to remove
|
74
69
|
* @param handler The handler to remove
|
@@ -93,43 +88,46 @@ export class UnrealMessageBus {
|
|
93
88
|
*/
|
94
89
|
Dispose() {
|
95
90
|
this.ResetHandlers();
|
96
|
-
|
97
|
-
window.top.removeEventListener("message", this.HandleWindowMessage);
|
91
|
+
window.top.removeEventListener("message", this.HandleWindowMessage);
|
98
92
|
}
|
99
93
|
/** Handle window message event
|
100
94
|
* @param event The message event to handle
|
101
95
|
* @returns void
|
102
96
|
*/
|
103
97
|
HandleWindowMessage(event) {
|
104
|
-
if (event
|
105
|
-
|
106
|
-
|
107
|
-
|
98
|
+
if (event == null || event.origin == null || event.data == null || event.data.source == null || event.data.message == null)
|
99
|
+
return;
|
100
|
+
try {
|
101
|
+
if (UnrealMessageBus.AllowedOrigin != null && UnrealMessageBus.AllowedOrigin !== "" && UnrealMessageBus.AllowedOrigin !== "*" && event.origin !== UnrealMessageBus.AllowedOrigin) {
|
102
|
+
console.warn("UnrealMessageBus: Invalid Origin: " + event.origin);
|
108
103
|
return;
|
109
104
|
}
|
110
|
-
this.OnDispatchMessage(event.data.message, (event.data.
|
105
|
+
this.OnDispatchMessage(event.data.message, (event.data.args != null) ? event.data.args : null);
|
106
|
+
}
|
107
|
+
catch (e) {
|
108
|
+
console.warn(e);
|
111
109
|
}
|
112
110
|
}
|
113
111
|
/** Dispatch internal event bus message
|
114
|
-
* @param
|
115
|
-
* @param
|
112
|
+
* @param name The name to dispatch
|
113
|
+
* @param args The args to dispatch
|
116
114
|
* @returns void
|
117
115
|
*/
|
118
|
-
OnDispatchMessage(
|
119
|
-
const listeners = this.ListenerDictionary[
|
116
|
+
OnDispatchMessage(name, args = null) {
|
117
|
+
const listeners = this.ListenerDictionary[name];
|
120
118
|
if (listeners == null)
|
121
119
|
return;
|
122
120
|
listeners.forEach((listener) => { try {
|
123
121
|
if (listener)
|
124
|
-
listener(
|
122
|
+
listener(args);
|
125
123
|
}
|
126
124
|
catch (e) {
|
127
125
|
console.warn(e);
|
128
126
|
} });
|
129
127
|
}
|
130
128
|
}
|
131
|
-
|
132
|
-
UnrealMessageBus.
|
129
|
+
UnrealMessageBus.AllowedOrigin = "*";
|
130
|
+
UnrealMessageBus.TargetOrigin = "*";
|
133
131
|
/** Unreal Toolkit Runtime Module */
|
134
132
|
console.log("Unreal Toolkit Runtime - Version 0.1.8");
|
135
133
|
export default UnrealToolkit;
|