vitest-matchmedia-mock
Version:
mocking window.matchmedia with vitest
59 lines (58 loc) • 2.41 kB
TypeScript
interface MediaQueryList {
readonly matches: boolean;
readonly media: string;
onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;
/** @deprecated */
addListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
/** @deprecated */
removeListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
type MediaQueryListener = (this: MediaQueryList, ev: MediaQueryListEvent) => void;
export default class MatchMediaMock {
private mediaQueries;
private mediaQueryList;
private currentMediaQuery;
constructor();
/**
* Adds a new listener function for the specified media query
* @private
*/
private addListener;
/**
* Removes a previously added listener function for the specified media query
* @private
*/
private removeListener;
/**
* Updates the currently used media query,
* and calls previously added listener functions registered for this media query
* @public
*/
useMediaQuery(mediaQuery: string): never | void;
/**
* Returns an array listing the media queries for which the matchMedia has registered listeners
* @public
*/
getMediaQueries(): string[];
/**
* Returns a copy of the array of listeners for the specified media query
* @public
*/
getListeners(mediaQuery: string): MediaQueryListener[];
/**
* Clears all registered media queries and their listeners
* @public
*/
clear(): void;
/**
* Clears all registered media queries and their listeners,
* and destroys the implementation of `window.matchMedia`
* @public
*/
destroy(): void;
}
export {};