UNPKG

gm-extra

Version:
59 lines (50 loc) 2.87 kB
import { AxiosAdapter } from 'axios'; import { GmXhrRequest } from 'vite-plugin-monkey/dist/client'; type SelectorOptions = { timeout?: number; }; declare function querySelector<K extends keyof HTMLElementTagNameMap>(root: ParentNode, selectors: K, options?: SelectorOptions): Promise<HTMLElementTagNameMap[K] | null>; declare function querySelector<K extends keyof SVGElementTagNameMap>(root: ParentNode, selectors: K, options?: SelectorOptions): Promise<SVGElementTagNameMap[K] | null>; declare function querySelectorAll<K extends keyof HTMLElementTagNameMap>(root: ParentNode, selectors: K, options?: SelectorOptions): Promise<NodeListOf<HTMLElementTagNameMap[K]>>; declare function querySelectorAll<K extends keyof SVGElementTagNameMap>(root: ParentNode, selectors: K, options?: SelectorOptions): Promise<NodeListOf<SVGElementTagNameMap[K]>>; declare const gmAxiosAdapter: AxiosAdapter; /** * simulate window.fetch with GM_xmlhttpRequest * * because [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) will delete [Forbidden_header_name](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name) * * so you must manually modify these headers by set the second parameter of gmFetch * @example * gmFetch( * new Request('https://www.pixiv.net/', { * headers: { referer: 'https://www.pixiv.net/' }, // it will not work !!! * }), * ); * gmFetch(new Request('https://www.pixiv.net/'), { * headers: { referer: 'https://www.pixiv.net/' }, // it will work * headers: new Headers({ referer: 'https://www.pixiv.net/' }), // it will also work * }); */ declare const gmFetch: (input: RequestInfo | URL, init?: RequestInit, xhrDetails?: Partial<GmXhrRequest<unknown, "blob">> | ((arg: GmXhrRequest<unknown, 'blob'>) => GmXhrRequest<unknown, 'blob'>)) => Promise<Response>; declare const _TODO: undefined; type FetchType = typeof fetch; type IPromise<T = unknown> = Promise<T> | T; type InterceptorChain = { request: Request; /** * @param request if not set, use chain.request */ proceed: (request?: Request) => IPromise<Response>; }; type FetchNetInterceptor = (chain: InterceptorChain) => IPromise<Response>; type FetchInterceptorManager = { originalFetch: FetchType; fakeFetch: FetchType; use: (interceptor: FetchNetInterceptor) => number; eject: (id: number) => void; clear: () => void; }; declare const buildFetchInterceptorManager: (originalFetch: FetchType) => FetchInterceptorManager; declare const UnsafeWindowInterceptorManager: FetchInterceptorManager; declare const buildXhrInterceptorManager: () => void; export { FetchInterceptorManager, FetchNetInterceptor, InterceptorChain, SelectorOptions, UnsafeWindowInterceptorManager, _TODO, buildFetchInterceptorManager, buildXhrInterceptorManager, gmAxiosAdapter, gmFetch, querySelector, querySelectorAll };