@lynx-js/testing-environment 0.1.3 → 0.1.5
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/index.cjs +10 -9
- package/dist/index.js +10 -9
- package/dist/lynx/GlobalEventEmitter.cjs +77 -0
- package/dist/lynx/GlobalEventEmitter.d.ts +10 -0
- package/dist/lynx/GlobalEventEmitter.js +43 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -41,6 +41,7 @@ var external_events_default = /*#__PURE__*/ __webpack_require__.n(external_event
|
|
|
41
41
|
const GlobalThis_cjs_namespaceObject = require("./lynx/GlobalThis.cjs");
|
|
42
42
|
const ElementPAPI_cjs_namespaceObject = require("./lynx/ElementPAPI.cjs");
|
|
43
43
|
const external_console_namespaceObject = require("console");
|
|
44
|
+
const GlobalEventEmitter_cjs_namespaceObject = require("./lynx/GlobalEventEmitter.cjs");
|
|
44
45
|
function _define_property(obj, key, value) {
|
|
45
46
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
46
47
|
value: value,
|
|
@@ -116,21 +117,23 @@ function createPolyfills() {
|
|
|
116
117
|
};
|
|
117
118
|
const ee = new (external_events_default())();
|
|
118
119
|
ee.dispatchEvent = ({ type, data })=>{
|
|
119
|
-
const
|
|
120
|
-
lynxTestingEnv.switchToBackgroundThread();
|
|
120
|
+
const origin = __MAIN_THREAD__ ? 'CoreContext' : 'JSContext';
|
|
121
|
+
if ('CoreContext' === origin) lynxTestingEnv.switchToBackgroundThread();
|
|
122
|
+
else lynxTestingEnv.switchToMainThread();
|
|
121
123
|
ee.emit(type, {
|
|
122
|
-
data: data
|
|
124
|
+
data: data,
|
|
125
|
+
origin
|
|
123
126
|
});
|
|
124
|
-
if (
|
|
127
|
+
if ('CoreContext' === origin) lynxTestingEnv.switchToMainThread();
|
|
128
|
+
else lynxTestingEnv.switchToBackgroundThread();
|
|
125
129
|
};
|
|
126
130
|
ee.addEventListener = ee.addListener;
|
|
127
131
|
ee.removeEventListener = ee.removeListener;
|
|
128
132
|
const CoreContext = ee;
|
|
129
133
|
const JsContext = ee;
|
|
130
|
-
function __LoadLepusChunk(chunkName,
|
|
134
|
+
function __LoadLepusChunk(chunkName, _options) {
|
|
131
135
|
const isBackground = !__MAIN_THREAD__;
|
|
132
136
|
globalThis.lynxTestingEnv.switchToMainThread();
|
|
133
|
-
if (process.env['DEBUG']) console.log('__LoadLepusChunk', chunkName, options);
|
|
134
137
|
let ans;
|
|
135
138
|
if ('worklet-runtime' === chunkName) {
|
|
136
139
|
var _globalThis_onInitWorkletRuntime, _globalThis;
|
|
@@ -229,9 +232,7 @@ function injectBackgroundThreadGlobals(target, polyfills) {
|
|
|
229
232
|
updateData: {}
|
|
230
233
|
}
|
|
231
234
|
};
|
|
232
|
-
const globalEventEmitter = new (
|
|
233
|
-
globalEventEmitter.trigger = globalEventEmitter.emit;
|
|
234
|
-
globalEventEmitter.toggle = globalEventEmitter.emit;
|
|
235
|
+
const globalEventEmitter = new GlobalEventEmitter_cjs_namespaceObject.GlobalEventEmitter();
|
|
235
236
|
target.lynx = {
|
|
236
237
|
getNativeApp: ()=>app,
|
|
237
238
|
performance,
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import events from "events";
|
|
|
2
2
|
import { createGlobalThis } from "./lynx/GlobalThis.js";
|
|
3
3
|
import { initElementTree } from "./lynx/ElementPAPI.js";
|
|
4
4
|
import { Console } from "console";
|
|
5
|
+
import { GlobalEventEmitter } from "./lynx/GlobalEventEmitter.js";
|
|
5
6
|
function _define_property(obj, key, value) {
|
|
6
7
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
7
8
|
value: value,
|
|
@@ -77,21 +78,23 @@ function createPolyfills() {
|
|
|
77
78
|
};
|
|
78
79
|
const ee = new events();
|
|
79
80
|
ee.dispatchEvent = ({ type, data })=>{
|
|
80
|
-
const
|
|
81
|
-
lynxTestingEnv.switchToBackgroundThread();
|
|
81
|
+
const origin = __MAIN_THREAD__ ? 'CoreContext' : 'JSContext';
|
|
82
|
+
if ('CoreContext' === origin) lynxTestingEnv.switchToBackgroundThread();
|
|
83
|
+
else lynxTestingEnv.switchToMainThread();
|
|
82
84
|
ee.emit(type, {
|
|
83
|
-
data: data
|
|
85
|
+
data: data,
|
|
86
|
+
origin
|
|
84
87
|
});
|
|
85
|
-
if (
|
|
88
|
+
if ('CoreContext' === origin) lynxTestingEnv.switchToMainThread();
|
|
89
|
+
else lynxTestingEnv.switchToBackgroundThread();
|
|
86
90
|
};
|
|
87
91
|
ee.addEventListener = ee.addListener;
|
|
88
92
|
ee.removeEventListener = ee.removeListener;
|
|
89
93
|
const CoreContext = ee;
|
|
90
94
|
const JsContext = ee;
|
|
91
|
-
function __LoadLepusChunk(chunkName,
|
|
95
|
+
function __LoadLepusChunk(chunkName, _options) {
|
|
92
96
|
const isBackground = !__MAIN_THREAD__;
|
|
93
97
|
globalThis.lynxTestingEnv.switchToMainThread();
|
|
94
|
-
if (process.env['DEBUG']) console.log('__LoadLepusChunk', chunkName, options);
|
|
95
98
|
let ans;
|
|
96
99
|
if ('worklet-runtime' === chunkName) {
|
|
97
100
|
var _globalThis_onInitWorkletRuntime, _globalThis;
|
|
@@ -190,9 +193,7 @@ function injectBackgroundThreadGlobals(target, polyfills) {
|
|
|
190
193
|
updateData: {}
|
|
191
194
|
}
|
|
192
195
|
};
|
|
193
|
-
const globalEventEmitter = new
|
|
194
|
-
globalEventEmitter.trigger = globalEventEmitter.emit;
|
|
195
|
-
globalEventEmitter.toggle = globalEventEmitter.emit;
|
|
196
|
+
const globalEventEmitter = new GlobalEventEmitter();
|
|
196
197
|
target.lynx = {
|
|
197
198
|
getNativeApp: ()=>app,
|
|
198
199
|
performance,
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
GlobalEventEmitter: ()=>GlobalEventEmitter
|
|
28
|
+
});
|
|
29
|
+
function _define_property(obj, key, value) {
|
|
30
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
31
|
+
value: value,
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true
|
|
35
|
+
});
|
|
36
|
+
else obj[key] = value;
|
|
37
|
+
return obj;
|
|
38
|
+
}
|
|
39
|
+
class GlobalEventEmitter {
|
|
40
|
+
addListener(eventName, listener) {
|
|
41
|
+
this.listeners[eventName] ??= [];
|
|
42
|
+
this.listeners[eventName].push(listener);
|
|
43
|
+
}
|
|
44
|
+
removeListener(eventName, listener) {
|
|
45
|
+
if (!this.listeners[eventName]) return;
|
|
46
|
+
this.listeners[eventName] = this.listeners[eventName].filter((l)=>l !== listener);
|
|
47
|
+
}
|
|
48
|
+
emit(eventName, args) {
|
|
49
|
+
if (!this.listeners[eventName]) return;
|
|
50
|
+
this.listeners[eventName].forEach((listener)=>args ? listener(...args) : listener());
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
this.listeners = {};
|
|
54
|
+
}
|
|
55
|
+
removeAllListeners(eventName) {
|
|
56
|
+
if (eventName) delete this.listeners[eventName];
|
|
57
|
+
else this.clear();
|
|
58
|
+
}
|
|
59
|
+
trigger(eventName, params) {
|
|
60
|
+
this.emit(eventName, [
|
|
61
|
+
params
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
toggle(eventName, ...data) {
|
|
65
|
+
this.emit(eventName, data);
|
|
66
|
+
}
|
|
67
|
+
constructor(){
|
|
68
|
+
_define_property(this, "listeners", {});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.GlobalEventEmitter = __webpack_exports__.GlobalEventEmitter;
|
|
72
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
73
|
+
"GlobalEventEmitter"
|
|
74
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
75
|
+
Object.defineProperty(exports, '__esModule', {
|
|
76
|
+
value: true
|
|
77
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class GlobalEventEmitter {
|
|
2
|
+
listeners: Record<string, Function[]>;
|
|
3
|
+
addListener(eventName: string, listener: Function): void;
|
|
4
|
+
removeListener(eventName: string, listener: Function): void;
|
|
5
|
+
emit(eventName: string, args: any[]): void;
|
|
6
|
+
clear(): void;
|
|
7
|
+
removeAllListeners(eventName?: string): void;
|
|
8
|
+
trigger(eventName: string, params: string | Record<any, any>): void;
|
|
9
|
+
toggle(eventName: string, ...data: unknown[]): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
3
|
+
value: value,
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true
|
|
7
|
+
});
|
|
8
|
+
else obj[key] = value;
|
|
9
|
+
return obj;
|
|
10
|
+
}
|
|
11
|
+
class GlobalEventEmitter {
|
|
12
|
+
addListener(eventName, listener) {
|
|
13
|
+
this.listeners[eventName] ??= [];
|
|
14
|
+
this.listeners[eventName].push(listener);
|
|
15
|
+
}
|
|
16
|
+
removeListener(eventName, listener) {
|
|
17
|
+
if (!this.listeners[eventName]) return;
|
|
18
|
+
this.listeners[eventName] = this.listeners[eventName].filter((l)=>l !== listener);
|
|
19
|
+
}
|
|
20
|
+
emit(eventName, args) {
|
|
21
|
+
if (!this.listeners[eventName]) return;
|
|
22
|
+
this.listeners[eventName].forEach((listener)=>args ? listener(...args) : listener());
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
this.listeners = {};
|
|
26
|
+
}
|
|
27
|
+
removeAllListeners(eventName) {
|
|
28
|
+
if (eventName) delete this.listeners[eventName];
|
|
29
|
+
else this.clear();
|
|
30
|
+
}
|
|
31
|
+
trigger(eventName, params) {
|
|
32
|
+
this.emit(eventName, [
|
|
33
|
+
params
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
toggle(eventName, ...data) {
|
|
37
|
+
this.emit(eventName, data);
|
|
38
|
+
}
|
|
39
|
+
constructor(){
|
|
40
|
+
_define_property(this, "listeners", {});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export { GlobalEventEmitter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-js/testing-environment",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "A subset of a Lynx environment to be useful for testing",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lynx",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"dist"
|
|
47
47
|
],
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@testing-library/jest-dom": "^6.6.
|
|
49
|
+
"@testing-library/jest-dom": "^6.6.4",
|
|
50
50
|
"@types/jsdom": "^21.1.7",
|
|
51
51
|
"rsbuild-plugin-publint": "0.3.2"
|
|
52
52
|
},
|