UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

120 lines (118 loc) 12.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = useFetchJson; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _global = require("global"); var _react = require("react"); var _pmtiles = require("@loaders.gl/pmtiles"); var _constants = require("@kepler.gl/constants"); // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project function useFetchJson(_ref) { var url = _ref.url, rasterTileType = _ref.rasterTileType, options = _ref.options, process = _ref.process; var _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), error = _useState2[0], setError = _useState2[1]; var _useState3 = (0, _react.useState)(null), _useState4 = (0, _slicedToArray2["default"])(_useState3, 2), data = _useState4[0], setData = _useState4[1]; var _useState5 = (0, _react.useState)(false), _useState6 = (0, _slicedToArray2["default"])(_useState5, 2), loading = _useState6[0], setLoading = _useState6[1]; (0, _react.useEffect)(function () { var getAndProcessMetadata = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var rawMetadata, tileSource, response, processedMetadata; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setError(null); setData(null); if (!url) { _context.next = 31; break; } setLoading(true); _context.prev = 4; rawMetadata = null; if (!(rasterTileType === _constants.RasterTileType.PMTILES)) { _context.next = 13; break; } tileSource = _pmtiles.PMTilesSource.createDataSource(url, {}); _context.next = 10; return tileSource.metadata; case 10: rawMetadata = _context.sent; _context.next = 21; break; case 13: _context.next = 15; return (0, _global.fetch)(url, options); case 15: response = _context.sent; if (response.ok) { _context.next = 18; break; } throw new Error("Failed Fetch ".concat(url)); case 18: _context.next = 20; return response.json(); case 20: rawMetadata = _context.sent; case 21: if (rawMetadata) { _context.next = 23; break; } throw new Error('Failed to fetch metadata'); case 23: processedMetadata = process(rawMetadata, { rasterTileType: rasterTileType, metadataUrl: url }); if (processedMetadata instanceof Error) { setError(processedMetadata); } else { setError(null); setData(processedMetadata); } _context.next = 30; break; case 27: _context.prev = 27; _context.t0 = _context["catch"](4); setError(_context.t0); case 30: setLoading(false); case 31: case "end": return _context.stop(); } }, _callee, null, [[4, 27]]); })); return function getAndProcessMetadata() { return _ref2.apply(this, arguments); }; }(); getAndProcessMetadata(); }, [url, rasterTileType, options, process]); return { data: data, loading: loading, error: error }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2xvYmFsIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9wbXRpbGVzIiwiX2NvbnN0YW50cyIsInVzZUZldGNoSnNvbiIsIl9yZWYiLCJ1cmwiLCJyYXN0ZXJUaWxlVHlwZSIsIm9wdGlvbnMiLCJwcm9jZXNzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZGF0YSIsInNldERhdGEiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwidXNlRWZmZWN0IiwiZ2V0QW5kUHJvY2Vzc01ldGFkYXRhIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJhd01ldGFkYXRhIiwidGlsZVNvdXJjZSIsInJlc3BvbnNlIiwicHJvY2Vzc2VkTWV0YWRhdGEiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUmFzdGVyVGlsZVR5cGUiLCJQTVRJTEVTIiwiUE1UaWxlc1NvdXJjZSIsImNyZWF0ZURhdGFTb3VyY2UiLCJtZXRhZGF0YSIsInNlbnQiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJjb25jYXQiLCJqc29uIiwibWV0YWRhdGFVcmwiLCJ0MCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtZmV0Y2gtcmFzdGVyLXRpbGUtbWV0YWRhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtmZXRjaH0gZnJvbSAnZ2xvYmFsJztcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge1BNVGlsZXNTb3VyY2UsIFBNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5cbmltcG9ydCB7VmVjdG9yVGlsZU1ldGFkYXRhfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7SnNvbk9iamVjdE9yQXJyYXksIFN0YWNUeXBlc30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1Jhc3RlclRpbGVUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbnR5cGUgUmFzdGVyTWV0YWRhdGFSZXNwb25zZSA9IFZlY3RvclRpbGVNZXRhZGF0YSB8IFN0YWNUeXBlcy5Db21wbGV0ZVNUQUNPYmplY3QgfCBudWxsO1xuXG5leHBvcnQgdHlwZSBGZXRjaEpzb25Qcm9wcyA9IHtcbiAgdXJsOiBzdHJpbmcgfCBudWxsO1xuICByYXN0ZXJUaWxlVHlwZTogUmFzdGVyVGlsZVR5cGU7XG4gIG9wdGlvbnM/OiBKc29uT2JqZWN0T3JBcnJheTtcbiAgcHJvY2VzczogKFxuICAgIGpzb246IFBNVGlsZXNNZXRhZGF0YSB8IEpzb25PYmplY3RPckFycmF5LFxuICAgIG9wdGlvbnM6IHttZXRhZGF0YVVybDogc3RyaW5nOyByYXN0ZXJUaWxlVHlwZTogUmFzdGVyVGlsZVR5cGV9XG4gICkgPT4gUmFzdGVyTWV0YWRhdGFSZXNwb25zZSB8IEVycm9yO1xufTtcblxuZXhwb3J0IHR5cGUgVXNlRmV0Y2hKc29uUmV0dXJuID0ge1xuICBkYXRhOiBSYXN0ZXJNZXRhZGF0YVJlc3BvbnNlO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogRXJyb3IgfCBudWxsO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRmV0Y2hKc29uKHtcbiAgdXJsLFxuICByYXN0ZXJUaWxlVHlwZSxcbiAgb3B0aW9ucyxcbiAgcHJvY2Vzc1xufTogRmV0Y2hKc29uUHJvcHMpOiBVc2VGZXRjaEpzb25SZXR1cm4ge1xuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPEVycm9yIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFJhc3Rlck1ldGFkYXRhUmVzcG9uc2U+KG51bGwpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBnZXRBbmRQcm9jZXNzTWV0YWRhdGEgPSBhc3luYyAoKSA9PiB7XG4gICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgIHNldERhdGEobnVsbCk7XG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgcmF3TWV0YWRhdGE6IFBNVGlsZXNNZXRhZGF0YSB8IEpzb25PYmplY3RPckFycmF5IHwgbnVsbCA9IG51bGw7XG4gICAgICAgICAgaWYgKHJhc3RlclRpbGVUeXBlID09PSBSYXN0ZXJUaWxlVHlwZS5QTVRJTEVTKSB7XG4gICAgICAgICAgICBjb25zdCB0aWxlU291cmNlID0gUE1UaWxlc1NvdXJjZS5jcmVhdGVEYXRhU291cmNlKHVybCwge30pO1xuICAgICAgICAgICAgcmF3TWV0YWRhdGEgPSBhd2FpdCB0aWxlU291cmNlLm1ldGFkYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIEZldGNoICR7dXJsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmF3TWV0YWRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyYXdNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggbWV0YWRhdGEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWRNZXRhZGF0YSA9IHByb2Nlc3MocmF3TWV0YWRhdGEsIHtyYXN0ZXJUaWxlVHlwZSwgbWV0YWRhdGFVcmw6IHVybH0pO1xuICAgICAgICAgIGlmIChwcm9jZXNzZWRNZXRhZGF0YSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihwcm9jZXNzZWRNZXRhZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICAgICAgc2V0RGF0YShwcm9jZXNzZWRNZXRhZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChtZXRhZGF0YUVycm9yKSB7XG4gICAgICAgICAgc2V0RXJyb3IobWV0YWRhdGFFcnJvciBhcyBFcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGdldEFuZFByb2Nlc3NNZXRhZGF0YSgpO1xuICB9LCBbdXJsLCByYXN0ZXJUaWxlVHlwZSwgb3B0aW9ucywgcHJvY2Vzc10pO1xuXG4gIHJldHVybiB7ZGF0YSwgbG9hZGluZywgZXJyb3J9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBSUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBVkE7QUFDQTs7QUE2QmUsU0FBU0ksWUFBWUEsQ0FBQUMsSUFBQSxFQUtHO0VBQUEsSUFKckNDLEdBQUcsR0FBQUQsSUFBQSxDQUFIQyxHQUFHO0lBQ0hDLGNBQWMsR0FBQUYsSUFBQSxDQUFkRSxjQUFjO0lBQ2RDLE9BQU8sR0FBQUgsSUFBQSxD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