UNPKG

@loaders.gl/core

Version:

Framework-independent loaders for 3D graphics formats

190 lines (146 loc) 5.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getUrlFromData = getUrlFromData; exports.getArrayBufferOrStringFromDataSync = getArrayBufferOrStringFromDataSync; exports.getArrayBufferOrStringFromData = getArrayBufferOrStringFromData; exports.getAsyncIteratorFromData = getAsyncIteratorFromData; exports.getIteratorFromData = getIteratorFromData; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _isType = require("../../javascript-utils/is-type"); var _streamUtils = require("../../javascript-utils/stream-utils"); var _fetchFile = _interopRequireDefault(require("../fetch/fetch-file.browser")); var _checkErrors = require("./check-errors"); var ERR_DATA = 'Cannot convert supplied data type'; function getUrlFromData(data, url) { if ((0, _isType.isFetchResponse)(data)) { url = url || data.url; } else if ((0, _isType.isFileReadable)(url)) { url = url.name; } return typeof url === 'string' ? url.replace(/\?.*/, '') : url; } function getArrayBufferOrStringFromDataSync(data, loader) { if (loader.text && typeof data === 'string') { return data; } if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { var arrayBuffer = data.buffer || data; if (loader.text && !loader.binary) { var textDecoder = new TextDecoder('utf8'); return textDecoder.decode(arrayBuffer); } return arrayBuffer; } throw new Error(ERR_DATA); } function getArrayBufferOrStringFromData(_x, _x2) { return _getArrayBufferOrStringFromData.apply(this, arguments); } function _getArrayBufferOrStringFromData() { _getArrayBufferOrStringFromData = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(data, loader) { var isArrayBuffer; return _regenerator["default"].wrap(function _callee$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return data; case 2: data = _context2.sent; isArrayBuffer = data instanceof ArrayBuffer || ArrayBuffer.isView(data); if (!(typeof data === 'string' || isArrayBuffer)) { _context2.next = 6; break; } return _context2.abrupt("return", getArrayBufferOrStringFromDataSync(data, loader)); case 6: if (!(0, _isType.isFileReadable)(data)) { _context2.next = 10; break; } _context2.next = 9; return (0, _fetchFile["default"])(data); case 9: data = _context2.sent; case 10: if (!(0, _isType.isFetchResponse)(data)) { _context2.next = 23; break; } _context2.next = 13; return (0, _checkErrors.checkFetchResponseStatus)(data); case 13: if (!loader.binary) { _context2.next = 19; break; } _context2.next = 16; return data.arrayBuffer(); case 16: _context2.t0 = _context2.sent; _context2.next = 22; break; case 19: _context2.next = 21; return data.text(); case 21: _context2.t0 = _context2.sent; case 22: return _context2.abrupt("return", _context2.t0); case 23: throw new Error(ERR_DATA); case 24: case "end": return _context2.stop(); } } }, _callee); })); return _getArrayBufferOrStringFromData.apply(this, arguments); } function getAsyncIteratorFromData(data) { if ((0, _isType.isIterator)(data)) { return data; } if ((0, _isType.isFetchResponse)(data) && data.body) { (0, _checkErrors.checkFetchResponseStatusSync)(data); return (0, _streamUtils.getStreamIterator)(data.body); } if ((0, _isType.isReadableStream)(data)) { return (0, _streamUtils.getStreamIterator)(data); } if ((0, _isType.isAsyncIterable)(data)) { return data[Symbol.asyncIterator](); } return getIteratorFromData(data); } function getIteratorFromData(data) { if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { return _regenerator["default"].mark(function oneChunk() { return _regenerator["default"].wrap(function oneChunk$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return data.buffer || data; case 2: case "end": return _context.stop(); } } }, oneChunk); })(); } if ((0, _isType.isIterator)(data)) { return data; } if ((0, _isType.isIterable)(data)) { return data[Symbol.iterator](); } throw new Error(ERR_DATA); } //# sourceMappingURL=get-data.js.map