@loaders.gl/core
Version:
Framework-independent loaders for 3D graphics formats
190 lines (146 loc) • 5.16 kB
JavaScript
;
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