UNPKG

@loaders.gl/core

Version:

Framework-independent loaders for 3D graphics formats

81 lines (65 loc) 1.53 kB
import assert from '../../utils/assert'; class FileReadableResponse { constructor(fileOrBlob) { this._fileOrBlob = fileOrBlob; this.bodyUsed = false; } get headers() { return new Headers({ 'Content-Length': this._fileOrBlob.size, 'Content-Type': this._fileOrBlob.type }); } get ok() { return true; } get status() { return 200; } url() { return this._fileOrBlob.name || ''; } async arrayBuffer() { const { reader, promise } = this._getFileReader(); reader.readAsArrayBuffer(this._fileOrBlob); return promise; } async text() { const { reader, promise } = this._getFileReader(); reader.readAsText(this._fileOrBlob); return promise; } async json() { const text = await this.text(); return JSON.parse(text); } _getFileReader() { assert(!this.bodyUsed); this.bodyUsed = true; let reader; const promise = new Promise((resolve, reject) => { try { reader = new FileReader(); reader.onerror = error => reject(new Error(error)); reader.onabort = () => reject(new Error('Read aborted.')); reader.onload = () => resolve(reader.result); } catch (error) { reject(error); } }); return { reader, promise }; } } export default function fetchFileReadable(fileOrBlob, options) { return Promise.resolve(new FileReadableResponse(fileOrBlob, options)); } //# sourceMappingURL=fetch-file.browser.js.map