UNPKG

loaders.gl

Version:

Framework-independent loaders for 3D graphics formats

112 lines (97 loc) 3.03 kB
import path from 'path'; export function smartFetch(url, loaders, options) { /* global fetch */ return fetch(url).then(function (response) { return response.text(); }).then(function (text) { return smartParse(text, url); }); } // Find a loader that works for extension/text export function smartParse(text, url, loaders, options) { var loader = getLoader(url, text, loaders); if (!loader.parseText) { throw new Error("".concat(loader.name, " loader cannot handle text")); } return loader.parseText(text, options); } // Search the loaders array argument for a loader that matches extension or text function getLoader(url, text, loaders) { // Get extension without var extension = path.extname(url) || url; if (extension.length && extension[0] === '.') { extension = extension.substr(1).toLowerCase(); } var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = loaders[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var loader = _step.value; if (loader.extension === extension) { return loader; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = loaders[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _loader = _step2.value; if (_loader.name.toLowerCase === extension) { return _loader; } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = loaders[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var _loader2 = _step3.value; if (_loader2.testText && _loader2.testText(text)) { return _loader2; } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } return null; } //# sourceMappingURL=smart-fetch.js.map