-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathindex.test-d.ts
26 lines (19 loc) · 1.2 KB
/
index.test-d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* eslint-disable @typescript-eslint/no-floating-promises */
import {expectType} from 'tsd';
import elementReady, {type StoppablePromise, observeReadyElements} from './index.js';
const promise = elementReady('#unicorn');
elementReady('#unicorn', {target: document});
elementReady('#unicorn', {target: document.documentElement});
elementReady('#unicorn', {timeout: 1_000_000});
elementReady('#unicorn', {stopOnDomReady: false});
expectType<StoppablePromise<HTMLElement | undefined>>(promise);
expectType<StoppablePromise<HTMLDivElement | undefined>>(elementReady('div'));
expectType<StoppablePromise<SVGTextElement | undefined>>(elementReady('text'));
expectType<StoppablePromise<HTMLElement | undefined>>(elementReady('.class'));
expectType<StoppablePromise<HTMLDivElement | undefined>>(elementReady('div.class'));
expectType<StoppablePromise<HTMLAnchorElement | undefined>>(elementReady('a#id'));
expectType<StoppablePromise<HTMLInputElement | undefined>>(elementReady('input[type="checkbox"]'));
expectType<StoppablePromise<HTMLButtonElement | undefined>>(elementReady(':root > button'));
promise.stop();
const readyElements = observeReadyElements('#unicorn');
expectType<AsyncIterable<HTMLElement>>(readyElements);