UNPKG

@loaders.gl/core

Version:

Framework-independent loaders for 3D graphics formats

53 lines (40 loc) 1.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getTransferList = getTransferList; exports.getWorkerURL = getWorkerURL; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _assert = _interopRequireDefault(require("../utils/assert")); function getTransferList(object) { var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var transfers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; if (!object) {} else if (object instanceof ArrayBuffer) { transfers.push(object); } else if (object.buffer && object.buffer instanceof ArrayBuffer) { transfers.push(object.buffer); } else if (recursive && (0, _typeof2["default"])(object) === 'object') { for (var key in object) { getTransferList(object[key], recursive, transfers); } } return transfers; } var workerURLCache = new Map(); function getWorkerURL(workerSource) { (0, _assert["default"])(typeof workerSource === 'string', 'worker source'); if (workerSource.startsWith('url(') && workerSource.endsWith(')')) { return workerSource.match(/^url\((.*)\)$/)[1]; } var workerURL = workerURLCache.get(workerSource); if (!workerURL) { var blob = new Blob([workerSource], { type: 'application/javascript' }); workerURL = URL.createObjectURL(blob); workerURLCache.set(workerSource, workerURL); } return workerURL; } //# sourceMappingURL=worker-utils.js.map