UNPKG

@giro3d/giro3d

Version:

A JS/WebGL framework for 3D geospatial data visualization

164 lines 6.29 kB
import { EventDispatcher, type EventListener, type Texture } from 'three'; export interface FetcherEventMap { /** * Fires when a Network or HTTP error occured during fetch * ```js * Fetcher.addEventListener('error', (error) => { * if (error.response && error.response.status === 401) { * console.error( * `Unauthorized to access resource ${error.response.url}: ${error.message}`, * error, * ); * } else { * console.error('Got an error while fetching resource', error); * } * }); * ``` */ error: { error: Error; }; } export declare class FetcherEventDispatcher extends EventDispatcher<FetcherEventMap> { } /** * Adds a listener to an event type on fetch operations. * * @param type - The type of event to listen to - only `error` is supported. * @param listener - The function that gets called when the event is fired. */ declare function addEventListener<T extends keyof FetcherEventMap>(type: T, listener: EventListener<FetcherEventMap[T], T, FetcherEventDispatcher>): void; /** * Checks if listener is added to an event type. * * @param type - The type of event to listen to - only `error` is supported. * @param listener - The function that gets called when the event is fired. * @returns `true` if the listener is added to this event type. */ declare function hasEventListener<T extends keyof FetcherEventMap>(type: T, listener: EventListener<FetcherEventMap[T], T, FetcherEventDispatcher>): boolean; /** * Removes a listener from an event type on fetch operations. * * @param type - The type of the listener that gets removed. * @param listener - The listener function that gets removed. */ declare function removeEventListener<T extends keyof FetcherEventMap>(type: T, listener: EventListener<FetcherEventMap[T], T, FetcherEventDispatcher>): void; /** * @internal */ declare function getInfo(): { pending: number; }; /** * An error raised whenever the received response does not have a 2XX status. */ export declare class HttpError extends Error { readonly response: Response; constructor(response: Response); } export type FetchOptions = RequestInit & { /** * The number of retries if the initial requests fails with an HTTP error code. * @defaultValue undefined */ retries?: number; /** * The delay to wait (in milliseconds) before a new try is attempted. Only if {@link retries} is defined. * @defaultValue 1000 */ retryDelay?: number; }; /** * Wrapper over [`fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/fetch). * * Use this function instead of calling directly the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) * to benefit from automatic configuration from the {@link HttpConfiguration} module. * * fires `error` event On Network/HTTP error. * @param input - the fetch input * @param options - fetch options (passed directly to `fetch()`) * @returns The response object. */ declare function fetchInternal(input: RequestInfo | URL, options?: FetchOptions): Promise<Response>; /** * Wrapper over `fetch`, then returns the blob of the response. * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - fetch options (passed directly to `fetch()`) * @returns The response blob. */ declare function blob(input: RequestInfo | URL, options?: RequestInit): Promise<Blob>; /** * Wrapper over `fetch` to get some text * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - fetch options (passed directly to `fetch()`) * @returns the promise containing the text */ declare function text(input: RequestInfo | URL, options?: RequestInit): Promise<string>; /** * Wrapper over `fetch` to get some JSON * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - fetch options (passed directly to `fetch()`) * @returns the promise containing the JSON */ declare function json<T = unknown>(input: RequestInfo | URL, options?: RequestInit): Promise<T>; /** * Wrapper over `fetch` to get some XML. * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - fetch options (passed directly to `fetch()`) * @returns the promise containing the XML */ declare function xml(input: RequestInfo | URL, options?: RequestInit): Promise<Document>; /** * Wrapper over `fetch` to get some `ArrayBuffer` * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - fetch options (passed directly to `fetch()`) * @returns the promise containing the ArrayBuffer */ declare function arrayBuffer(input: RequestInfo | URL, options?: RequestInit): Promise<ArrayBuffer>; /** * Downloads a remote image and converts it into a texture. * * fires `error` event On Network/HTTP error. * @param input - the URL to fetch, or the resource request. * @param options - Texture creation options and fetch options (passed directly to `fetch()`) * @returns the promise containing the texture */ declare function texture(input: RequestInfo | URL, options?: RequestInit & { createDataTexture?: boolean; flipY?: boolean; }): Promise<Texture>; /** * Exposes an API to perform HTTP requests. * This should be used instead of the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) * in order to benefit from some error-checking, automatic configuration (from the * {@link HttpConfiguration} module), etc. * */ declare const _default: { fetch: typeof fetchInternal; xml: typeof xml; json: typeof json; blob: typeof blob; texture: typeof texture; arrayBuffer: typeof arrayBuffer; text: typeof text; /** @internal */ getInfo: typeof getInfo; addEventListener: typeof addEventListener; hasEventListener: typeof hasEventListener; removeEventListener: typeof removeEventListener; /** @internal */ _eventTarget: FetcherEventDispatcher; }; export default _default; //# sourceMappingURL=Fetcher.d.ts.map