UNPKG

ja-geotiff

Version:

GeoTIFF image decoding in JavaScript

52 lines (45 loc) 1.15 kB
import { BaseClient, BaseResponse } from "./base.js" class FetchResponse extends BaseResponse { /** * BaseResponse facade for fetch API Response * @param {Response} response */ constructor(response) { super() this.response = response } get status() { return this.response.status } getHeader(name) { return this.response.headers.get(name) } async getData() { const data = this.response.arrayBuffer ? await this.response.arrayBuffer() : (await this.response.buffer()).buffer return data } } export class FetchClient extends BaseClient { constructor(url, credentials) { super(url) this.credentials = credentials } /** * @param {{headers: HeadersInit, signal: AbortSignal}} [options={}] * @returns {Promise<FetchResponse>} */ async request({ headers, signal } = {}) { let url = this.url if (Array.isArray(this.url)) { url = this.url[Math.floor(Math.random() * this.url.length)] } const response = await fetch(url, { headers, credentials: this.credentials, signal, }) return new FetchResponse(response) } }