@react-native-harness/runtime 1.0.0-alpha.21 → 1.0.0-alpha.22

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 (195) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +20 -2
  3. package/src/client/factory.ts +9 -2
  4. package/src/client/store.ts +16 -0
  5. package/src/expect/expect.ts +127 -0
  6. package/src/expect/index.ts +1 -123
  7. package/src/expect/matchers/toMatchImageSnapshot.ts +50 -0
  8. package/src/globals.ts +12 -0
  9. package/src/index.ts +1 -1
  10. package/src/render/TestComponentOverlay.tsx +22 -2
  11. package/src/render/index.ts +8 -6
  12. package/src/runner/context.ts +16 -0
  13. package/src/runner/factory.ts +7 -1
  14. package/src/runner/index.ts +5 -0
  15. package/src/runner/runSuite.ts +4 -0
  16. package/src/runner/types.ts +7 -1
  17. package/src/ui/ReadyScreen.tsx +1 -0
  18. package/.babelrc.js +0 -23
  19. package/assets/harness-module-system.js +0 -73
  20. package/dist/bundler/bundle.d.ts +0 -2
  21. package/dist/bundler/bundle.d.ts.map +0 -1
  22. package/dist/bundler/bundle.js +0 -21
  23. package/dist/bundler/errors.d.ts +0 -15
  24. package/dist/bundler/errors.d.ts.map +0 -1
  25. package/dist/bundler/errors.js +0 -29
  26. package/dist/bundler/evaluate.d.ts +0 -2
  27. package/dist/bundler/evaluate.d.ts.map +0 -1
  28. package/dist/bundler/evaluate.js +0 -18
  29. package/dist/bundler/factory.d.ts +0 -3
  30. package/dist/bundler/factory.d.ts.map +0 -1
  31. package/dist/bundler/factory.js +0 -36
  32. package/dist/bundler/index.d.ts +0 -4
  33. package/dist/bundler/index.d.ts.map +0 -1
  34. package/dist/bundler/index.js +0 -2
  35. package/dist/bundler/types.d.ts +0 -7
  36. package/dist/bundler/types.d.ts.map +0 -1
  37. package/dist/bundler/types.js +0 -1
  38. package/dist/client/factory.d.ts +0 -2
  39. package/dist/client/factory.d.ts.map +0 -1
  40. package/dist/client/factory.js +0 -69
  41. package/dist/client/getDeviceDescriptor.d.ts +0 -8
  42. package/dist/client/getDeviceDescriptor.d.ts.map +0 -1
  43. package/dist/client/getDeviceDescriptor.js +0 -32
  44. package/dist/client/getWSServer.d.ts +0 -2
  45. package/dist/client/getWSServer.d.ts.map +0 -1
  46. package/dist/client/getWSServer.js +0 -8
  47. package/dist/client/index.d.ts +0 -2
  48. package/dist/client/index.d.ts.map +0 -1
  49. package/dist/client/index.js +0 -1
  50. package/dist/client/setup-files.d.ts +0 -12
  51. package/dist/client/setup-files.d.ts.map +0 -1
  52. package/dist/client/setup-files.js +0 -60
  53. package/dist/collector/errors.d.ts +0 -8
  54. package/dist/collector/errors.d.ts.map +0 -1
  55. package/dist/collector/errors.js +0 -20
  56. package/dist/collector/factory.d.ts +0 -3
  57. package/dist/collector/factory.d.ts.map +0 -1
  58. package/dist/collector/factory.js +0 -25
  59. package/dist/collector/functions.d.ts +0 -22
  60. package/dist/collector/functions.d.ts.map +0 -1
  61. package/dist/collector/functions.js +0 -279
  62. package/dist/collector/index.d.ts +0 -5
  63. package/dist/collector/index.d.ts.map +0 -1
  64. package/dist/collector/index.js +0 -3
  65. package/dist/collector/types.d.ts +0 -10
  66. package/dist/collector/types.d.ts.map +0 -1
  67. package/dist/collector/types.js +0 -1
  68. package/dist/collector/validation.d.ts +0 -4
  69. package/dist/collector/validation.d.ts.map +0 -1
  70. package/dist/collector/validation.js +0 -15
  71. package/dist/constants.d.ts +0 -2
  72. package/dist/constants.d.ts.map +0 -1
  73. package/dist/constants.js +0 -1
  74. package/dist/disableHMRWhenReady.d.ts +0 -2
  75. package/dist/disableHMRWhenReady.d.ts.map +0 -1
  76. package/dist/disableHMRWhenReady.js +0 -20
  77. package/dist/entry-point.d.ts +0 -2
  78. package/dist/entry-point.d.ts.map +0 -1
  79. package/dist/entry-point.js +0 -4
  80. package/dist/errors.d.ts +0 -6
  81. package/dist/errors.d.ts.map +0 -1
  82. package/dist/errors.js +0 -13
  83. package/dist/expect/index.d.ts +0 -9
  84. package/dist/expect/index.d.ts.map +0 -1
  85. package/dist/expect/index.js +0 -73
  86. package/dist/expect/setup.d.ts +0 -2
  87. package/dist/expect/setup.d.ts.map +0 -1
  88. package/dist/expect/setup.js +0 -7
  89. package/dist/filtering/index.d.ts +0 -2
  90. package/dist/filtering/index.d.ts.map +0 -1
  91. package/dist/filtering/index.js +0 -1
  92. package/dist/filtering/testNameFilter.d.ts +0 -12
  93. package/dist/filtering/testNameFilter.d.ts.map +0 -1
  94. package/dist/filtering/testNameFilter.js +0 -56
  95. package/dist/globals.d.ts +0 -9
  96. package/dist/globals.d.ts.map +0 -1
  97. package/dist/globals.js +0 -7
  98. package/dist/index.d.ts +0 -11
  99. package/dist/index.d.ts.map +0 -1
  100. package/dist/initialize.d.ts +0 -2
  101. package/dist/initialize.d.ts.map +0 -1
  102. package/dist/initialize.js +0 -24
  103. package/dist/jest-mock.d.ts +0 -2
  104. package/dist/jest-mock.d.ts.map +0 -1
  105. package/dist/jest-mock.js +0 -25
  106. package/dist/mocker/index.d.ts +0 -2
  107. package/dist/mocker/index.d.ts.map +0 -1
  108. package/dist/mocker/index.js +0 -1
  109. package/dist/mocker/registry.d.ts +0 -6
  110. package/dist/mocker/registry.d.ts.map +0 -1
  111. package/dist/mocker/registry.js +0 -50
  112. package/dist/mocker/types.d.ts +0 -6
  113. package/dist/mocker/types.d.ts.map +0 -1
  114. package/dist/mocker/types.js +0 -1
  115. package/dist/namespace.d.ts +0 -18
  116. package/dist/namespace.d.ts.map +0 -1
  117. package/dist/namespace.js +0 -19
  118. package/dist/polyfills.d.ts +0 -11
  119. package/dist/polyfills.d.ts.map +0 -1
  120. package/dist/polyfills.js +0 -13
  121. package/dist/render/ErrorBoundary.d.ts +0 -17
  122. package/dist/render/ErrorBoundary.d.ts.map +0 -1
  123. package/dist/render/ErrorBoundary.js +0 -73
  124. package/dist/render/TestComponentOverlay.d.ts +0 -3
  125. package/dist/render/TestComponentOverlay.d.ts.map +0 -1
  126. package/dist/render/TestComponentOverlay.js +0 -36
  127. package/dist/render/cleanup.d.ts +0 -2
  128. package/dist/render/cleanup.d.ts.map +0 -1
  129. package/dist/render/cleanup.js +0 -6
  130. package/dist/render/index.d.ts +0 -6
  131. package/dist/render/index.d.ts.map +0 -1
  132. package/dist/render/index.js +0 -66
  133. package/dist/render/setup.d.ts +0 -2
  134. package/dist/render/setup.d.ts.map +0 -1
  135. package/dist/render/setup.js +0 -7
  136. package/dist/render/types.d.ts +0 -12
  137. package/dist/render/types.d.ts.map +0 -1
  138. package/dist/render/types.js +0 -1
  139. package/dist/runner/errors.d.ts +0 -11
  140. package/dist/runner/errors.d.ts.map +0 -1
  141. package/dist/runner/errors.js +0 -41
  142. package/dist/runner/factory.d.ts +0 -3
  143. package/dist/runner/factory.d.ts.map +0 -1
  144. package/dist/runner/factory.js +0 -22
  145. package/dist/runner/hooks.d.ts +0 -4
  146. package/dist/runner/hooks.d.ts.map +0 -1
  147. package/dist/runner/hooks.js +0 -39
  148. package/dist/runner/index.d.ts +0 -4
  149. package/dist/runner/index.d.ts.map +0 -1
  150. package/dist/runner/index.js +0 -2
  151. package/dist/runner/runSuite.d.ts +0 -4
  152. package/dist/runner/runSuite.d.ts.map +0 -1
  153. package/dist/runner/runSuite.js +0 -199
  154. package/dist/runner/types.d.ts +0 -13
  155. package/dist/runner/types.d.ts.map +0 -1
  156. package/dist/runner/types.js +0 -1
  157. package/dist/spy/index.d.ts +0 -2
  158. package/dist/spy/index.d.ts.map +0 -1
  159. package/dist/spy/index.js +0 -2
  160. package/dist/symbolicate.d.ts +0 -3
  161. package/dist/symbolicate.d.ts.map +0 -1
  162. package/dist/symbolicate.js +0 -19
  163. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  164. package/dist/ui/ReadyScreen.d.ts +0 -2
  165. package/dist/ui/ReadyScreen.d.ts.map +0 -1
  166. package/dist/ui/ReadyScreen.js +0 -103
  167. package/dist/ui/WrongEnvironmentScreen.d.ts +0 -2
  168. package/dist/ui/WrongEnvironmentScreen.d.ts.map +0 -1
  169. package/dist/ui/WrongEnvironmentScreen.js +0 -79
  170. package/dist/ui/index.d.ts +0 -2
  171. package/dist/ui/index.d.ts.map +0 -1
  172. package/dist/ui/index.js +0 -3
  173. package/dist/ui/state.d.ts +0 -20
  174. package/dist/ui/state.d.ts.map +0 -1
  175. package/dist/ui/state.js +0 -28
  176. package/dist/utils/dev-server.d.ts +0 -2
  177. package/dist/utils/dev-server.d.ts.map +0 -1
  178. package/dist/utils/dev-server.js +0 -5
  179. package/dist/utils/emitter.d.ts +0 -16
  180. package/dist/utils/emitter.d.ts.map +0 -1
  181. package/dist/utils/emitter.js +0 -39
  182. package/dist/waitFor.d.ts +0 -21
  183. package/dist/waitFor.d.ts.map +0 -1
  184. package/dist/waitFor.js +0 -137
  185. package/eslint.config.mjs +0 -10
  186. package/src/__tests__/collector.test.ts +0 -553
  187. package/src/__tests__/error-handling.test.ts +0 -132
  188. package/src/__tests__/expect.test.ts +0 -627
  189. package/src/__tests__/initialize.test.ts +0 -24
  190. package/src/__tests__/spy.test.ts +0 -538
  191. package/tsconfig.json +0 -16
  192. package/tsconfig.lib.json +0 -33
  193. package/tsconfig.spec.json +0 -34
  194. package/tsconfig.tsbuildinfo +0 -1
  195. package/vite.config.ts +0 -27
@@ -1,79 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { View, Text, StyleSheet, Platform, StatusBar } from 'react-native';
3
- export const WrongEnvironmentScreen = () => {
4
- return (_jsx(View, { style: styles.container, children: _jsxs(View, { style: styles.contentContainer, children: [_jsx(Text, { style: styles.title, children: "React Native Harness" }), _jsxs(View, { style: styles.errorIndicator, children: [_jsx(View, { style: styles.errorDot }), _jsx(Text, { style: styles.errorText, children: "Environment Error" })] }), _jsx(Text, { style: styles.submessage, children: "Please double-check that you followed the installation documentation carefully." })] }) }));
5
- };
6
- const styles = StyleSheet.create({
7
- container: {
8
- flex: 1,
9
- justifyContent: 'center',
10
- alignItems: 'center',
11
- backgroundColor: '#0a1628',
12
- position: 'relative',
13
- },
14
- safeArea: {
15
- flex: 1,
16
- backgroundColor: 'transparent',
17
- paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,
18
- },
19
- contentContainer: {
20
- alignItems: 'center',
21
- padding: 24,
22
- borderRadius: 24,
23
- backgroundColor: 'rgba(239, 68, 68, 0.1)',
24
- borderWidth: 1,
25
- borderColor: 'rgba(239, 68, 68, 0.2)',
26
- shadowColor: '#000',
27
- shadowOffset: {
28
- width: 0,
29
- height: 20,
30
- },
31
- shadowOpacity: 0.3,
32
- shadowRadius: 30,
33
- maxWidth: 350,
34
- },
35
- title: {
36
- fontSize: 28,
37
- fontWeight: '700',
38
- color: '#38bdf8',
39
- textAlign: 'center',
40
- letterSpacing: 1,
41
- marginBottom: 8,
42
- },
43
- errorIndicator: {
44
- flexDirection: 'row',
45
- alignItems: 'center',
46
- backgroundColor: 'rgba(239, 68, 68, 0.15)',
47
- paddingHorizontal: 16,
48
- paddingVertical: 8,
49
- height: 36,
50
- borderRadius: 20,
51
- borderWidth: 1,
52
- borderColor: 'rgba(239, 68, 68, 0.4)',
53
- marginBottom: 24,
54
- },
55
- errorDot: {
56
- width: 8,
57
- height: 8,
58
- borderRadius: 4,
59
- backgroundColor: '#ef4444',
60
- marginRight: 8,
61
- shadowColor: '#ef4444',
62
- shadowOffset: { width: 0, height: 0 },
63
- shadowOpacity: 0.8,
64
- shadowRadius: 4,
65
- },
66
- errorText: {
67
- fontSize: 14,
68
- fontWeight: '500',
69
- color: '#ef4444',
70
- letterSpacing: 0.5,
71
- },
72
- submessage: {
73
- fontSize: 14,
74
- fontWeight: '400',
75
- color: 'rgba(255, 255, 255, 0.6)',
76
- textAlign: 'center',
77
- letterSpacing: 0.5,
78
- },
79
- });
@@ -1,2 +0,0 @@
1
- export declare const UI: any;
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,KAE+C,CAAC"}
package/dist/ui/index.js DELETED
@@ -1,3 +0,0 @@
1
- export const UI = global.RN_HARNESS
2
- ? require('./ReadyScreen').ReadyScreen
3
- : require('./WrongEnvironmentScreen').WrongEnvironmentScreen;
@@ -1,20 +0,0 @@
1
- import type React from 'react';
2
- export type RunnerState = {
3
- status: 'loading' | 'idle' | 'running';
4
- setStatus: (status: 'loading' | 'idle' | 'running') => void;
5
- renderedElement: React.ReactElement | null;
6
- setRenderedElement: (element: React.ReactElement | null) => void;
7
- updateRenderedElement: (element: React.ReactElement) => void;
8
- renderKey: string | null;
9
- onLayoutCallback: (() => void) | null;
10
- setOnLayoutCallback: (callback: (() => void) | null) => void;
11
- onRenderCallback: (() => void) | null;
12
- setOnRenderCallback: (callback: (() => void) | null) => void;
13
- };
14
- export declare const store: import("zustand/react").UseBoundStore<import("zustand/vanilla").StoreApi<RunnerState>>;
15
- export declare const useRunnerStatus: () => "idle" | "loading" | "running";
16
- export declare const useRenderedElement: () => {
17
- element: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null;
18
- key: string | null;
19
- };
20
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/ui/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5D,eAAe,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3C,kBAAkB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACjE,qBAAqB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,gBAAgB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,eAAO,MAAM,KAAK,wFAkBf,CAAC;AAEJ,eAAO,MAAM,eAAe,sCAAiD,CAAC;AAC9E,eAAO,MAAM,kBAAkB;;;CAQ5B,CAAC"}
package/dist/ui/state.js DELETED
@@ -1,28 +0,0 @@
1
- import { create, useStore } from 'zustand/react';
2
- import { shallow } from 'zustand/shallow';
3
- import { useStoreWithEqualityFn } from 'zustand/traditional';
4
- const generateRenderKey = () => {
5
- return `render-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
6
- };
7
- export const store = create((set) => ({
8
- status: 'loading',
9
- setStatus: (status) => set({ status }),
10
- renderedElement: null,
11
- setRenderedElement: (element) => set({
12
- renderedElement: element,
13
- renderKey: generateRenderKey(),
14
- }),
15
- updateRenderedElement: (element) => set({
16
- renderedElement: element,
17
- }),
18
- renderKey: null,
19
- onLayoutCallback: null,
20
- setOnLayoutCallback: (callback) => set({ onLayoutCallback: callback }),
21
- onRenderCallback: null,
22
- setOnRenderCallback: (callback) => set({ onRenderCallback: callback }),
23
- }));
24
- export const useRunnerStatus = () => useStore(store, (state) => state.status);
25
- export const useRenderedElement = () => useStoreWithEqualityFn(store, (state) => ({
26
- element: state.renderedElement,
27
- key: state.renderKey,
28
- }), shallow);
@@ -1,2 +0,0 @@
1
- export declare const getDevServerUrl: () => string;
2
- //# sourceMappingURL=dev-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/utils/dev-server.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,QAAO,MAGlC,CAAC"}
@@ -1,5 +0,0 @@
1
- import getDevServer from 'react-native/Libraries/Core/Devtools/getDevServer';
2
- export const getDevServerUrl = () => {
3
- const devServer = getDevServer();
4
- return devServer.url;
5
- };
@@ -1,16 +0,0 @@
1
- export type EventListener<TEvent> = (event: TEvent) => void;
2
- export type EventEmitter<TEvents> = {
3
- addListener: (listener: EventListener<TEvents>) => void;
4
- removeListener: (listener: EventListener<TEvents>) => void;
5
- emit: (event: TEvents) => void;
6
- clearAllListeners: () => void;
7
- };
8
- export declare const getEmitter: <TEvents>() => {
9
- addListener: (listener: EventListener<TEvents>) => void;
10
- removeListener: (listener: EventListener<TEvents>) => void;
11
- emit: (event: TEvents) => void;
12
- clearAllListeners: () => void;
13
- };
14
- export declare function combineEventEmitters<TEvents0, TEvents1>(emitter0: EventEmitter<TEvents0>, emitter1: EventEmitter<TEvents1>): EventEmitter<TEvents0 | TEvents1>;
15
- export declare function combineEventEmitters<TEvents0, TEvents1, TEvents2>(emitter0: EventEmitter<TEvents0>, emitter1: EventEmitter<TEvents1>, emitter2: EventEmitter<TEvents2>): EventEmitter<TEvents0 | TEvents1 | TEvents2>;
16
- //# sourceMappingURL=emitter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/utils/emitter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5D,MAAM,MAAM,YAAY,CAAC,OAAO,IAAI;IAClC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO;4BAIN,aAAa,CAAC,OAAO,CAAC;+BAGnB,aAAa,CAAC,OAAO,CAAC;kBAGnC,OAAO;;CAOxB,CAAC;AAGF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EACrD,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAC/B,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACrC,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAC/D,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAC/B,YAAY,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC"}
@@ -1,39 +0,0 @@
1
- export const getEmitter = () => {
2
- const listeners = new Set();
3
- return {
4
- addListener: (listener) => {
5
- listeners.add(listener);
6
- },
7
- removeListener: (listener) => {
8
- listeners.delete(listener);
9
- },
10
- emit: (event) => {
11
- listeners.forEach((listener) => listener(event));
12
- },
13
- clearAllListeners: () => {
14
- listeners.clear();
15
- },
16
- };
17
- };
18
- export function combineEventEmitters(...emitters) {
19
- const internalEmitter = getEmitter();
20
- const handleEvent = (event) => internalEmitter.emit(event);
21
- emitters.forEach((emitter) => {
22
- emitter.addListener(handleEvent);
23
- });
24
- return {
25
- addListener: (listener) => {
26
- internalEmitter.addListener(listener);
27
- },
28
- removeListener: (listener) => {
29
- internalEmitter.removeListener(listener);
30
- },
31
- emit: (event) => {
32
- internalEmitter.emit(event);
33
- },
34
- clearAllListeners: () => {
35
- internalEmitter.clearAllListeners();
36
- emitters.forEach((emitter) => emitter.removeListener(handleEvent));
37
- },
38
- };
39
- }
package/dist/waitFor.d.ts DELETED
@@ -1,21 +0,0 @@
1
- export type WaitForCallback<T> = () => T | Promise<T>;
2
- export interface WaitForOptions {
3
- /**
4
- * @description Time in ms between each check callback
5
- * @default 50ms
6
- */
7
- interval?: number;
8
- /**
9
- * @description Time in ms after which the throw a timeout error
10
- * @default 1000ms
11
- */
12
- timeout?: number;
13
- }
14
- export declare function waitFor<T>(callback: WaitForCallback<T>, options?: number | WaitForOptions): Promise<T>;
15
- export type WaitUntilCallback<T> = () => T | Promise<T>;
16
- export interface WaitUntilOptions extends Pick<WaitForOptions, 'interval' | 'timeout'> {
17
- }
18
- type Truthy<T> = T extends false | '' | 0 | null | undefined ? never : T;
19
- export declare function waitUntil<T>(callback: WaitUntilCallback<T>, options?: number | WaitUntilOptions): Promise<Truthy<T>>;
20
- export {};
21
- //# sourceMappingURL=waitFor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitFor.d.ts","sourceRoot":"","sources":["../src/waitFor.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD,wBAAgB,OAAO,CAAC,CAAC,EACvB,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAC5B,OAAO,GAAE,MAAM,GAAG,cAAmB,GACpC,OAAO,CAAC,CAAC,CAAC,CA8EZ;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAGxD,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;CAAG;AAEzD,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAEzE,wBAAgB,SAAS,CAAC,CAAC,EACzB,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,MAAM,GAAG,gBAAqB,GACtC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CA+EpB"}
package/dist/waitFor.js DELETED
@@ -1,137 +0,0 @@
1
- // This is adapted implementation of waitFor from Vitest, which can be found here:
2
- // https://github.com/vitest-dev/vitest/blob/main/packages/vitest/src/integrations/wait.ts
3
- function copyStackTrace(target, source) {
4
- if (source.stack !== undefined) {
5
- target.stack = source.stack.replace(source.message, target.message);
6
- }
7
- return target;
8
- }
9
- export function waitFor(callback, options = {}) {
10
- const { interval = 50, timeout = 1000 } = typeof options === 'number' ? { timeout: options } : options;
11
- const STACK_TRACE_ERROR = new Error('STACK_TRACE_ERROR');
12
- return new Promise((resolve, reject) => {
13
- let lastError;
14
- let promiseStatus = 'idle';
15
- // eslint-disable-next-line prefer-const
16
- let timeoutId;
17
- // eslint-disable-next-line prefer-const
18
- let intervalId;
19
- const onResolve = (result) => {
20
- if (timeoutId) {
21
- clearTimeout(timeoutId);
22
- }
23
- if (intervalId) {
24
- clearInterval(intervalId);
25
- }
26
- resolve(result);
27
- };
28
- const handleTimeout = () => {
29
- if (intervalId) {
30
- clearInterval(intervalId);
31
- }
32
- let error = lastError;
33
- if (!error) {
34
- error = copyStackTrace(new Error('Timed out in waitFor!'), STACK_TRACE_ERROR);
35
- }
36
- reject(error);
37
- };
38
- const checkCallback = () => {
39
- if (promiseStatus === 'pending') {
40
- return;
41
- }
42
- try {
43
- const result = callback();
44
- if (result !== null &&
45
- typeof result === 'object' &&
46
- typeof result.then === 'function') {
47
- const thenable = result;
48
- promiseStatus = 'pending';
49
- thenable.then((resolvedValue) => {
50
- promiseStatus = 'resolved';
51
- onResolve(resolvedValue);
52
- }, (rejectedValue) => {
53
- promiseStatus = 'rejected';
54
- lastError = rejectedValue;
55
- });
56
- }
57
- else {
58
- onResolve(result);
59
- return true;
60
- }
61
- }
62
- catch (error) {
63
- lastError = error;
64
- }
65
- };
66
- if (checkCallback() === true) {
67
- return;
68
- }
69
- timeoutId = setTimeout(handleTimeout, timeout);
70
- intervalId = setInterval(checkCallback, interval);
71
- });
72
- }
73
- export function waitUntil(callback, options = {}) {
74
- const { interval = 50, timeout = 1000 } = typeof options === 'number' ? { timeout: options } : options;
75
- const STACK_TRACE_ERROR = new Error('STACK_TRACE_ERROR');
76
- return new Promise((resolve, reject) => {
77
- let promiseStatus = 'idle';
78
- // eslint-disable-next-line prefer-const
79
- let timeoutId;
80
- // eslint-disable-next-line prefer-const
81
- let intervalId;
82
- const onReject = (error) => {
83
- if (intervalId) {
84
- clearInterval(intervalId);
85
- }
86
- if (!error) {
87
- error = copyStackTrace(new Error('Timed out in waitUntil!'), STACK_TRACE_ERROR);
88
- }
89
- reject(error);
90
- };
91
- const onResolve = (result) => {
92
- if (!result) {
93
- return;
94
- }
95
- if (timeoutId) {
96
- clearTimeout(timeoutId);
97
- }
98
- if (intervalId) {
99
- clearInterval(intervalId);
100
- }
101
- resolve(result);
102
- return true;
103
- };
104
- const checkCallback = () => {
105
- if (promiseStatus === 'pending') {
106
- return;
107
- }
108
- try {
109
- const result = callback();
110
- if (result !== null &&
111
- typeof result === 'object' &&
112
- typeof result.then === 'function') {
113
- const thenable = result;
114
- promiseStatus = 'pending';
115
- thenable.then((resolvedValue) => {
116
- promiseStatus = 'resolved';
117
- onResolve(resolvedValue);
118
- }, (rejectedValue) => {
119
- promiseStatus = 'rejected';
120
- onReject(rejectedValue);
121
- });
122
- }
123
- else {
124
- return onResolve(result);
125
- }
126
- }
127
- catch (error) {
128
- onReject(error);
129
- }
130
- };
131
- if (checkCallback() === true) {
132
- return;
133
- }
134
- timeoutId = setTimeout(onReject, timeout);
135
- intervalId = setInterval(checkCallback, interval);
136
- });
137
- }
package/eslint.config.mjs DELETED
@@ -1,10 +0,0 @@
1
- import nx from '@nx/eslint-plugin';
2
- import baseConfig from '../../eslint.config.mjs';
3
-
4
- export default [
5
- ...baseConfig,
6
- ...nx.configs['flat/react'],
7
- {
8
- ignores: ['public', '.cache', 'node_modules', 'assets'],
9
- },
10
- ];