MCPcopy
hub / github.com/vime-js/vime / findPlayer

Function findPlayer

packages/core/src/components/core/player/findPlayer.ts:44–78  ·  view source on GitHub ↗
(
  ref: unknown,
  interval = 300,
  maxRetries = 10,
)

Source from the content-addressed store, hash-verified

42 * @param maxRetries - The number of times to retry firing the event.
43 */
44export const findPlayer = (
45 ref: unknown,
46 interval = 300,
47 maxRetries = 10,
48): Promise<HTMLVmPlayerElement | undefined> => {
49 const el = (isInstanceOf(ref, HTMLElement)
50 ? ref
51 : getElement(ref)) as HTMLElement;
52
53 const search = deferredPromise<HTMLVmPlayerElement>();
54
55 // eslint-disable-next-line prefer-const
56 let stopFiring: () => void;
57
58 const event = new CustomEvent<FoundPlayerCallback>(FIND_PLAYER_EVENT, {
59 bubbles: true,
60 composed: true,
61 detail: player => {
62 search.resolve(player);
63 stopFiring();
64 },
65 });
66
67 stopFiring = fireEventAndRetry(
68 el,
69 event,
70 () => {
71 search.reject(`Could not find player for ${el.nodeName}`);
72 },
73 interval,
74 maxRetries,
75 );
76
77 return search.promise;
78};

Callers 15

findFunction · 0.90
ngAfterViewInitFunction · 0.90
usePlayerContextFunction · 0.90
watchComponentRegistryFunction · 0.90
onPlayerResizeMethod · 0.90
onPlaybackReadyMethod · 0.90
onKeysChangeMethod · 0.90
onNoKeyboardChangeMethod · 0.90
setupPlayerListenersMethod · 0.90
onNoKeyboardChangeMethod · 0.90
onPlaybackReadyChangeMethod · 0.90
onToggleFullscreenMethod · 0.90

Calls 3

isInstanceOfFunction · 0.90
deferredPromiseFunction · 0.90
fireEventAndRetryFunction · 0.90

Tested by

no test coverage detected