UNPKG

loaders.gl

Version:

Framework-independent loaders for 3D graphics formats

57 lines (46 loc) 1.43 kB
import { request as d3request } from 'd3-request'; export function loadFile(url, loader) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (loader.parseBinary) { return loadBinary(url).then(function (data) { return loader.parseBinary(data, options); }); } if (loader.parseText) { return d3request(url).then(function (text) { return loader.parseText(text, options); }); } return Promise.reject(new Error("Could not load ".concat(url, " using ").concat(loader.name, " loader"))); } /** * loads binary data * @param {string} url * @return {Promise} promise that resolves to the binary data */ /* global XMLHttpRequest */ export function loadBinary(url) { var request = null; var promise = new Promise(function (resolve, reject) { request = new XMLHttpRequest(); try { request.open('GET', url, true); request.responseType = 'arraybuffer'; request.onload = function () { if (request.status === 200) { resolve(request.response); } reject(new Error('Could not get binary data')); }; request.onerror = function (error) { return reject(error); }; request.send(); } catch (error) { reject(error); } }); // Make abort() available promise.abort = request.abort.bind(request); return promise; } //# sourceMappingURL=loader.js.map