@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 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 isMainThread = __MAIN_THREAD__;
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 (isMainThread) lynxTestingEnv.switchToMainThread();
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, options) {
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 (external_events_default())();
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 isMainThread = __MAIN_THREAD__;
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 (isMainThread) lynxTestingEnv.switchToMainThread();
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, options) {
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 events();
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",
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.3",
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
  },