@loaders.gl/core 3.1.0-alpha.4 → 3.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/dist.min.js +1 -1
  2. package/dist/dist.min.js.map +1 -1
  3. package/dist/es5/bundle.js +1 -1
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/index.js +56 -56
  6. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +14 -119
  7. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  8. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +17 -53
  9. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
  10. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +12 -53
  11. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  12. package/dist/es5/iterators/make-iterator/make-iterator.js +1 -1
  13. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -1
  14. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +24 -161
  15. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  16. package/dist/es5/iterators/make-iterator/make-string-iterator.js +13 -41
  17. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
  18. package/dist/es5/iterators/make-stream/make-dom-stream.js +24 -69
  19. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
  20. package/dist/es5/iterators/make-stream/make-node-stream.js +53 -189
  21. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
  22. package/dist/es5/javascript-utils/is-type.js +18 -58
  23. package/dist/es5/javascript-utils/is-type.js.map +1 -1
  24. package/dist/es5/lib/api/encode.js +46 -242
  25. package/dist/es5/lib/api/encode.js.map +1 -1
  26. package/dist/es5/lib/api/load-in-batches.js +9 -52
  27. package/dist/es5/lib/api/load-in-batches.js.map +1 -1
  28. package/dist/es5/lib/api/load.js +15 -60
  29. package/dist/es5/lib/api/load.js.map +1 -1
  30. package/dist/es5/lib/api/parse-in-batches.js +81 -333
  31. package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
  32. package/dist/es5/lib/api/parse-sync.js +11 -15
  33. package/dist/es5/lib/api/parse-sync.js.map +1 -1
  34. package/dist/es5/lib/api/parse.js +50 -142
  35. package/dist/es5/lib/api/parse.js.map +1 -1
  36. package/dist/es5/lib/api/register-loaders.js +8 -30
  37. package/dist/es5/lib/api/register-loaders.js.map +1 -1
  38. package/dist/es5/lib/api/save.js +4 -37
  39. package/dist/es5/lib/api/save.js.map +1 -1
  40. package/dist/es5/lib/api/select-loader.js +74 -209
  41. package/dist/es5/lib/api/select-loader.js.map +1 -1
  42. package/dist/es5/lib/fetch/fetch-error-message.js +13 -55
  43. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
  44. package/dist/es5/lib/fetch/fetch-file.js +10 -47
  45. package/dist/es5/lib/fetch/fetch-file.js.map +1 -1
  46. package/dist/es5/lib/fetch/read-array-buffer.js +19 -80
  47. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
  48. package/dist/es5/lib/fetch/read-file.js +2 -3
  49. package/dist/es5/lib/fetch/read-file.js.map +1 -1
  50. package/dist/es5/lib/fetch/write-file.js +9 -38
  51. package/dist/es5/lib/fetch/write-file.js.map +1 -1
  52. package/dist/es5/lib/filesystems/browser-filesystem.js +77 -266
  53. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
  54. package/dist/es5/lib/filesystems/read-array-buffer.js +6 -43
  55. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -1
  56. package/dist/es5/lib/init.js +1 -1
  57. package/dist/es5/lib/init.js.map +1 -1
  58. package/dist/es5/lib/loader-utils/check-errors.js +12 -50
  59. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
  60. package/dist/es5/lib/loader-utils/get-data.js +71 -238
  61. package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
  62. package/dist/es5/lib/loader-utils/loader-context.js +8 -19
  63. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
  64. package/dist/es5/lib/loader-utils/loggers.js +36 -81
  65. package/dist/es5/lib/loader-utils/loggers.js.map +1 -1
  66. package/dist/es5/lib/loader-utils/normalize-loader.js +7 -13
  67. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -1
  68. package/dist/es5/lib/loader-utils/option-defaults.js +2 -2
  69. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
  70. package/dist/es5/lib/loader-utils/option-utils.js +51 -85
  71. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  72. package/dist/es5/lib/progress/fetch-progress.js +49 -150
  73. package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
  74. package/dist/es5/lib/utils/mime-type-utils.js +4 -4
  75. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -1
  76. package/dist/es5/lib/utils/resource-utils.js +4 -4
  77. package/dist/es5/lib/utils/resource-utils.js.map +1 -1
  78. package/dist/es5/lib/utils/response-utils.js +88 -215
  79. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  80. package/dist/es5/null-loader.js +10 -137
  81. package/dist/es5/null-loader.js.map +1 -1
  82. package/dist/esm/lib/api/encode.js +1 -1
  83. package/dist/esm/lib/api/encode.js.map +1 -1
  84. package/dist/esm/lib/api/parse-sync.js +1 -1
  85. package/dist/esm/lib/api/parse-sync.js.map +1 -1
  86. package/dist/esm/lib/api/parse.js +1 -1
  87. package/dist/esm/lib/api/parse.js.map +1 -1
  88. package/dist/esm/lib/api/select-loader.js +4 -4
  89. package/dist/esm/lib/api/select-loader.js.map +1 -1
  90. package/dist/esm/lib/fetch/fetch-error-message.js +2 -2
  91. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -1
  92. package/dist/esm/lib/init.js +1 -1
  93. package/dist/esm/lib/loader-utils/check-errors.js +4 -4
  94. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -1
  95. package/dist/esm/lib/loader-utils/option-utils.js +5 -5
  96. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
  97. package/dist/esm/lib/utils/response-utils.js +7 -7
  98. package/dist/esm/lib/utils/response-utils.js.map +1 -1
  99. package/dist/esm/null-loader.js +1 -1
  100. package/dist/null-worker.js +1 -1
  101. package/dist/null-worker.js.map +1 -1
  102. package/package.json +4 -4
  103. package/src/lib/api/encode.ts +1 -0
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -11,178 +9,46 @@ exports.encodeText = encodeText;
11
9
  exports.encodeInBatches = encodeInBatches;
12
10
  exports.encodeURLtoURL = encodeURLtoURL;
13
11
 
14
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
19
-
20
12
  var _loaderUtils = require("@loaders.gl/loader-utils");
21
13
 
22
14
  var _writeFile = require("../fetch/write-file");
23
15
 
24
16
  var _fetchFile = require("../fetch/fetch-file");
25
17
 
26
- function encode(_x, _x2, _x3) {
27
- return _encode.apply(this, arguments);
28
- }
29
-
30
- function _encode() {
31
- _encode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, writer, options) {
32
- var batches, chunks, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, batch, tmpInputFilename, tmpOutputFilename, outputFilename, response;
33
-
34
- return _regenerator.default.wrap(function _callee$(_context) {
35
- while (1) {
36
- switch (_context.prev = _context.next) {
37
- case 0:
38
- if (!writer.encode) {
39
- _context.next = 4;
40
- break;
41
- }
42
-
43
- _context.next = 3;
44
- return writer.encode(data, options);
45
-
46
- case 3:
47
- return _context.abrupt("return", _context.sent);
48
-
49
- case 4:
50
- if (!writer.encodeSync) {
51
- _context.next = 6;
52
- break;
53
- }
54
-
55
- return _context.abrupt("return", writer.encodeSync(data, options));
56
-
57
- case 6:
58
- if (!writer.encodeText) {
59
- _context.next = 12;
60
- break;
61
- }
62
-
63
- _context.t0 = new TextEncoder();
64
- _context.next = 10;
65
- return writer.encodeText(data, options);
66
-
67
- case 10:
68
- _context.t1 = _context.sent;
69
- return _context.abrupt("return", _context.t0.encode.call(_context.t0, _context.t1));
70
-
71
- case 12:
72
- if (!writer.encodeInBatches) {
73
- _context.next = 49;
74
- break;
75
- }
76
-
77
- batches = encodeInBatches(data, writer, options);
78
- chunks = [];
79
- _iteratorNormalCompletion = true;
80
- _didIteratorError = false;
81
- _context.prev = 17;
82
- _iterator = (0, _asyncIterator2.default)(batches);
83
-
84
- case 19:
85
- _context.next = 21;
86
- return _iterator.next();
87
-
88
- case 21:
89
- _step = _context.sent;
90
- _iteratorNormalCompletion = _step.done;
91
- _context.next = 25;
92
- return _step.value;
93
-
94
- case 25:
95
- _value = _context.sent;
96
-
97
- if (_iteratorNormalCompletion) {
98
- _context.next = 32;
99
- break;
100
- }
101
-
102
- batch = _value;
103
- chunks.push(batch);
104
-
105
- case 29:
106
- _iteratorNormalCompletion = true;
107
- _context.next = 19;
108
- break;
109
-
110
- case 32:
111
- _context.next = 38;
112
- break;
113
-
114
- case 34:
115
- _context.prev = 34;
116
- _context.t2 = _context["catch"](17);
117
- _didIteratorError = true;
118
- _iteratorError = _context.t2;
119
-
120
- case 38:
121
- _context.prev = 38;
122
- _context.prev = 39;
123
-
124
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
125
- _context.next = 43;
126
- break;
127
- }
128
-
129
- _context.next = 43;
130
- return _iterator.return();
131
-
132
- case 43:
133
- _context.prev = 43;
134
-
135
- if (!_didIteratorError) {
136
- _context.next = 46;
137
- break;
138
- }
139
-
140
- throw _iteratorError;
141
-
142
- case 46:
143
- return _context.finish(43);
144
-
145
- case 47:
146
- return _context.finish(38);
147
-
148
- case 48:
149
- return _context.abrupt("return", _loaderUtils.concatenateArrayBuffers.apply(void 0, chunks));
18
+ async function encode(data, writer, options) {
19
+ if (writer.encode) {
20
+ return await writer.encode(data, options);
21
+ }
150
22
 
151
- case 49:
152
- if (!(!_loaderUtils.isBrowser && writer.encodeURLtoURL)) {
153
- _context.next = 61;
154
- break;
155
- }
23
+ if (writer.encodeSync) {
24
+ return writer.encodeSync(data, options);
25
+ }
156
26
 
157
- tmpInputFilename = getTemporaryFilename('input');
158
- _context.next = 53;
159
- return (0, _writeFile.writeFile)(tmpInputFilename, data);
27
+ if (writer.encodeText) {
28
+ return new TextEncoder().encode(await writer.encodeText(data, options));
29
+ }
160
30
 
161
- case 53:
162
- tmpOutputFilename = getTemporaryFilename('output');
163
- _context.next = 56;
164
- return encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
31
+ if (writer.encodeInBatches) {
32
+ const batches = encodeInBatches(data, writer, options);
33
+ const chunks = [];
165
34
 
166
- case 56:
167
- outputFilename = _context.sent;
168
- _context.next = 59;
169
- return (0, _fetchFile.fetchFile)(outputFilename);
35
+ for await (const batch of batches) {
36
+ chunks.push(batch);
37
+ }
170
38
 
171
- case 59:
172
- response = _context.sent;
173
- return _context.abrupt("return", response.arrayBuffer());
39
+ return (0, _loaderUtils.concatenateArrayBuffers)(...chunks);
40
+ }
174
41
 
175
- case 61:
176
- throw new Error('Writer could not encode data');
42
+ if (!_loaderUtils.isBrowser && writer.encodeURLtoURL) {
43
+ const tmpInputFilename = getTemporaryFilename('input');
44
+ await (0, _writeFile.writeFile)(tmpInputFilename, data);
45
+ const tmpOutputFilename = getTemporaryFilename('output');
46
+ const outputFilename = await encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
47
+ const response = await (0, _fetchFile.fetchFile)(outputFilename);
48
+ return response.arrayBuffer();
49
+ }
177
50
 
178
- case 62:
179
- case "end":
180
- return _context.stop();
181
- }
182
- }
183
- }, _callee, null, [[17, 34, 38, 48], [39,, 43, 47]]);
184
- }));
185
- return _encode.apply(this, arguments);
51
+ throw new Error('Writer could not encode data');
186
52
  }
187
53
 
188
54
  function encodeSync(data, writer, options) {
@@ -193,104 +59,42 @@ function encodeSync(data, writer, options) {
193
59
  throw new Error('Writer could not synchronously encode data');
194
60
  }
195
61
 
196
- function encodeText(_x4, _x5, _x6) {
197
- return _encodeText.apply(this, arguments);
198
- }
199
-
200
- function _encodeText() {
201
- _encodeText = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(data, writer, options) {
202
- var arrayBuffer;
203
- return _regenerator.default.wrap(function _callee2$(_context2) {
204
- while (1) {
205
- switch (_context2.prev = _context2.next) {
206
- case 0:
207
- if (!(writer.text && writer.encodeText)) {
208
- _context2.next = 4;
209
- break;
210
- }
211
-
212
- _context2.next = 3;
213
- return writer.encodeText(data, options);
214
-
215
- case 3:
216
- return _context2.abrupt("return", _context2.sent);
217
-
218
- case 4:
219
- if (!(writer.text && (writer.encode || writer.encodeInBatches))) {
220
- _context2.next = 9;
221
- break;
222
- }
223
-
224
- _context2.next = 7;
225
- return encode(data, writer, options);
226
-
227
- case 7:
228
- arrayBuffer = _context2.sent;
229
- return _context2.abrupt("return", new TextDecoder().decode(arrayBuffer));
62
+ async function encodeText(data, writer, options) {
63
+ if (writer.text && writer.encodeText) {
64
+ return await writer.encodeText(data, options);
65
+ }
230
66
 
231
- case 9:
232
- throw new Error('Writer could not encode data as text');
67
+ if (writer.text && (writer.encode || writer.encodeInBatches)) {
68
+ const arrayBuffer = await encode(data, writer, options);
69
+ return new TextDecoder().decode(arrayBuffer);
70
+ }
233
71
 
234
- case 10:
235
- case "end":
236
- return _context2.stop();
237
- }
238
- }
239
- }, _callee2);
240
- }));
241
- return _encodeText.apply(this, arguments);
72
+ throw new Error('Writer could not encode data as text');
242
73
  }
243
74
 
244
75
  function encodeInBatches(data, writer, options) {
245
76
  if (writer.encodeInBatches) {
246
- var dataIterator = getIterator(data);
77
+ const dataIterator = getIterator(data);
247
78
  return writer.encodeInBatches(dataIterator, options);
248
79
  }
249
80
 
250
81
  throw new Error('Writer could not encode data in batches');
251
82
  }
252
83
 
253
- function encodeURLtoURL(_x7, _x8, _x9, _x10) {
254
- return _encodeURLtoURL.apply(this, arguments);
255
- }
256
-
257
- function _encodeURLtoURL() {
258
- _encodeURLtoURL = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(inputUrl, outputUrl, writer, options) {
259
- var outputFilename;
260
- return _regenerator.default.wrap(function _callee3$(_context3) {
261
- while (1) {
262
- switch (_context3.prev = _context3.next) {
263
- case 0:
264
- inputUrl = (0, _loaderUtils.resolvePath)(inputUrl);
265
- outputUrl = (0, _loaderUtils.resolvePath)(outputUrl);
266
-
267
- if (!(_loaderUtils.isBrowser || !writer.encodeURLtoURL)) {
268
- _context3.next = 4;
269
- break;
270
- }
84
+ async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
85
+ inputUrl = (0, _loaderUtils.resolvePath)(inputUrl);
86
+ outputUrl = (0, _loaderUtils.resolvePath)(outputUrl);
271
87
 
272
- throw new Error();
273
-
274
- case 4:
275
- _context3.next = 6;
276
- return writer.encodeURLtoURL(inputUrl, outputUrl, options);
277
-
278
- case 6:
279
- outputFilename = _context3.sent;
280
- return _context3.abrupt("return", outputFilename);
88
+ if (_loaderUtils.isBrowser || !writer.encodeURLtoURL) {
89
+ throw new Error();
90
+ }
281
91
 
282
- case 8:
283
- case "end":
284
- return _context3.stop();
285
- }
286
- }
287
- }, _callee3);
288
- }));
289
- return _encodeURLtoURL.apply(this, arguments);
92
+ const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
93
+ return outputFilename;
290
94
  }
291
95
 
292
96
  function getIterator(data) {
293
- var dataIterator = [{
97
+ const dataIterator = [{
294
98
  table: data,
295
99
  start: 0,
296
100
  end: data.length
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/encode.ts"],"names":["encode","data","writer","options","encodeSync","encodeText","TextEncoder","encodeInBatches","batches","chunks","batch","push","concatenateArrayBuffers","isBrowser","encodeURLtoURL","tmpInputFilename","getTemporaryFilename","tmpOutputFilename","outputFilename","response","arrayBuffer","Error","text","TextDecoder","decode","dataIterator","getIterator","inputUrl","outputUrl","table","start","end","length","filename"],"mappings":"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","sourcesContent":["import type {Writer, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/loader-utils';\nimport {writeFile} from '../fetch/write-file';\nimport {fetchFile} from '../fetch/fetch-file';\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport async function encode(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): Promise<ArrayBuffer> {\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n\n if (writer.encodeText) {\n return new TextEncoder().encode(await writer.encodeText(data, options));\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: any[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n // @ts-ignore\n return concatenateArrayBuffers(...chunks);\n }\n\n if (!isBrowser && writer.encodeURLtoURL) {\n // TODO - how to generate filenames with correct extensions?\n const tmpInputFilename = getTemporaryFilename('input');\n await writeFile(tmpInputFilename, data);\n\n const tmpOutputFilename = getTemporaryFilename('output');\n\n const outputFilename = await encodeURLtoURL(\n tmpInputFilename,\n tmpOutputFilename,\n writer,\n options\n );\n\n const response = await fetchFile(outputFilename);\n return response.arrayBuffer();\n }\n\n throw new Error('Writer could not encode data');\n}\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport function encodeSync(data: any, writer: Writer, options?: LoaderOptions): ArrayBuffer {\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n throw new Error('Writer could not synchronously encode data');\n}\n\n/**\n * Encode loaded data to text using the specified Writer\n * @note This is a convenience function not intended for production use on large input data.\n * It is not optimized for performance. Data maybe converted from text to binary and back.\n * @throws if the writer does not generate text output\n */\nexport async function encodeText(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encode(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n\n throw new Error('Writer could not encode data as text');\n}\n\n/**\n * Encode loaded data into a sequence (iterator) of binary ArrayBuffers using the specified Writer.\n */\nexport function encodeInBatches(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\n/**\n * Encode data stored in a file (on disk) to another file.\n * @note Node.js only. This function enables using command-line converters as \"writers\".\n */\nexport async function encodeURLtoURL(\n inputUrl,\n outputUrl,\n writer: Writer,\n options\n): Promise<string> {\n inputUrl = resolvePath(inputUrl);\n outputUrl = resolvePath(outputUrl);\n if (isBrowser || !writer.encodeURLtoURL) {\n throw new Error();\n }\n const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);\n return outputFilename;\n}\n\n/**\n * @todo TODO - this is an unacceptable hack!!!\n */\nfunction getIterator(data) {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n\n/**\n * @todo Move to utils\n */\nfunction getTemporaryFilename(filename: string): string {\n return `/tmp/${filename}`;\n}\n"],"file":"encode.js"}
1
+ {"version":3,"sources":["../../../../src/lib/api/encode.ts"],"names":["encode","data","writer","options","encodeSync","encodeText","TextEncoder","encodeInBatches","batches","chunks","batch","push","isBrowser","encodeURLtoURL","tmpInputFilename","getTemporaryFilename","tmpOutputFilename","outputFilename","response","arrayBuffer","Error","text","TextDecoder","decode","dataIterator","getIterator","inputUrl","outputUrl","table","start","end","length","filename"],"mappings":"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","sourcesContent":["import type {Writer, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/loader-utils';\nimport {writeFile} from '../fetch/write-file';\nimport {fetchFile} from '../fetch/fetch-file';\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport async function encode(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): Promise<ArrayBuffer> {\n // TODO Merge default writer options with options argument like it is done in load module.\n if (writer.encode) {\n return await writer.encode(data, options);\n }\n\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n\n if (writer.encodeText) {\n return new TextEncoder().encode(await writer.encodeText(data, options));\n }\n\n if (writer.encodeInBatches) {\n // Create an iterator representing the data\n // TODO - Assumes this is a table\n const batches = encodeInBatches(data, writer, options);\n\n // Concatenate the output\n const chunks: any[] = [];\n for await (const batch of batches) {\n chunks.push(batch);\n }\n // @ts-ignore\n return concatenateArrayBuffers(...chunks);\n }\n\n if (!isBrowser && writer.encodeURLtoURL) {\n // TODO - how to generate filenames with correct extensions?\n const tmpInputFilename = getTemporaryFilename('input');\n await writeFile(tmpInputFilename, data);\n\n const tmpOutputFilename = getTemporaryFilename('output');\n\n const outputFilename = await encodeURLtoURL(\n tmpInputFilename,\n tmpOutputFilename,\n writer,\n options\n );\n\n const response = await fetchFile(outputFilename);\n return response.arrayBuffer();\n }\n\n throw new Error('Writer could not encode data');\n}\n\n/**\n * Encode loaded data into a binary ArrayBuffer using the specified Writer.\n */\nexport function encodeSync(data: any, writer: Writer, options?: LoaderOptions): ArrayBuffer {\n if (writer.encodeSync) {\n return writer.encodeSync(data, options);\n }\n throw new Error('Writer could not synchronously encode data');\n}\n\n/**\n * Encode loaded data to text using the specified Writer\n * @note This is a convenience function not intended for production use on large input data.\n * It is not optimized for performance. Data maybe converted from text to binary and back.\n * @throws if the writer does not generate text output\n */\nexport async function encodeText(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): Promise<string> {\n if (writer.text && writer.encodeText) {\n return await writer.encodeText(data, options);\n }\n\n if (writer.text && (writer.encode || writer.encodeInBatches)) {\n const arrayBuffer = await encode(data, writer, options);\n return new TextDecoder().decode(arrayBuffer);\n }\n\n throw new Error('Writer could not encode data as text');\n}\n\n/**\n * Encode loaded data into a sequence (iterator) of binary ArrayBuffers using the specified Writer.\n */\nexport function encodeInBatches(\n data: any,\n writer: Writer,\n options?: LoaderOptions\n): AsyncIterable<ArrayBuffer> {\n if (writer.encodeInBatches) {\n const dataIterator = getIterator(data);\n return writer.encodeInBatches(dataIterator, options);\n }\n // TODO -fall back to atomic encode?\n throw new Error('Writer could not encode data in batches');\n}\n\n/**\n * Encode data stored in a file (on disk) to another file.\n * @note Node.js only. This function enables using command-line converters as \"writers\".\n */\nexport async function encodeURLtoURL(\n inputUrl,\n outputUrl,\n writer: Writer,\n options\n): Promise<string> {\n inputUrl = resolvePath(inputUrl);\n outputUrl = resolvePath(outputUrl);\n if (isBrowser || !writer.encodeURLtoURL) {\n throw new Error();\n }\n const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);\n return outputFilename;\n}\n\n/**\n * @todo TODO - this is an unacceptable hack!!!\n */\nfunction getIterator(data) {\n const dataIterator = [{table: data, start: 0, end: data.length}];\n return dataIterator;\n}\n\n/**\n * @todo Move to utils\n */\nfunction getTemporaryFilename(filename: string): string {\n return `/tmp/${filename}`;\n}\n"],"file":"encode.js"}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.loadInBatches = loadInBatches;
9
7
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
8
  var _normalizeLoader = require("../loader-utils/normalize-loader");
15
9
 
16
10
  var _optionUtils = require("../loader-utils/option-utils");
@@ -24,60 +18,23 @@ function loadInBatches(files, loaders, options, context) {
24
18
  loaders = null;
25
19
  }
26
20
 
27
- var fetch = (0, _optionUtils.getFetchFunction)(options || {});
21
+ const fetch = (0, _optionUtils.getFetchFunction)(options || {});
28
22
 
29
23
  if (!Array.isArray(files)) {
30
24
  return loadOneFileInBatches(files, loaders, options, fetch);
31
25
  }
32
26
 
33
- var promises = files.map(function (file) {
34
- return loadOneFileInBatches(file, loaders, options, fetch);
35
- });
27
+ const promises = files.map(file => loadOneFileInBatches(file, loaders, options, fetch));
36
28
  return promises;
37
29
  }
38
30
 
39
- function loadOneFileInBatches(_x, _x2, _x3, _x4) {
40
- return _loadOneFileInBatches.apply(this, arguments);
41
- }
42
-
43
- function _loadOneFileInBatches() {
44
- _loadOneFileInBatches = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(file, loaders, options, fetch) {
45
- var url, response;
46
- return _regenerator.default.wrap(function _callee$(_context) {
47
- while (1) {
48
- switch (_context.prev = _context.next) {
49
- case 0:
50
- if (!(typeof file === 'string')) {
51
- _context.next = 8;
52
- break;
53
- }
54
-
55
- url = file;
56
- _context.next = 4;
57
- return fetch(url);
58
-
59
- case 4:
60
- response = _context.sent;
61
- _context.next = 7;
62
- return (0, _parseInBatches.parseInBatches)(response, loaders, options);
63
-
64
- case 7:
65
- return _context.abrupt("return", _context.sent);
66
-
67
- case 8:
68
- _context.next = 10;
69
- return (0, _parseInBatches.parseInBatches)(file, loaders, options);
70
-
71
- case 10:
72
- return _context.abrupt("return", _context.sent);
31
+ async function loadOneFileInBatches(file, loaders, options, fetch) {
32
+ if (typeof file === 'string') {
33
+ const url = file;
34
+ const response = await fetch(url);
35
+ return await (0, _parseInBatches.parseInBatches)(response, loaders, options);
36
+ }
73
37
 
74
- case 11:
75
- case "end":
76
- return _context.stop();
77
- }
78
- }
79
- }, _callee);
80
- }));
81
- return _loadOneFileInBatches.apply(this, arguments);
38
+ return await (0, _parseInBatches.parseInBatches)(file, loaders, options);
82
39
  }
83
40
  //# sourceMappingURL=load-in-batches.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/load-in-batches.ts"],"names":["loadInBatches","files","loaders","options","context","Array","isArray","undefined","fetch","loadOneFileInBatches","promises","map","file","url","response"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AAEA;;AAyBO,SAASA,aAAT,CAAuBC,KAAvB,EAA8BC,OAA9B,EAAuCC,OAAvC,EAAgDC,OAAhD,EAAyD;AAE9D,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAD,IAA2B,CAAC,qCAAeA,OAAf,CAAhC,EAAyD;AACvDE,IAAAA,OAAO,GAAGG,SAAV;AACAJ,IAAAA,OAAO,GAAGD,OAAV;AACAA,IAAAA,OAAO,GAAG,IAAV;AACD;;AAGD,MAAMM,KAAK,GAAG,mCAAiBL,OAAO,IAAI,EAA5B,CAAd;;AAGA,MAAI,CAACE,KAAK,CAACC,OAAN,CAAcL,KAAd,CAAL,EAA2B;AACzB,WAAOQ,oBAAoB,CAACR,KAAD,EAAQC,OAAR,EAAiBC,OAAjB,EAA0BK,KAA1B,CAA3B;AACD;;AAGD,MAAME,QAAQ,GAAGT,KAAK,CAACU,GAAN,CAAU,UAACC,IAAD;AAAA,WAAUH,oBAAoB,CAACG,IAAD,EAAOV,OAAP,EAAgBC,OAAhB,EAAyBK,KAAzB,CAA9B;AAAA,GAAV,CAAjB;AAGA,SAAOE,QAAP;AACD;;SAEcD,oB;;;;;oFAAf,iBAAoCG,IAApC,EAA0CV,OAA1C,EAAmDC,OAAnD,EAA4DK,KAA5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBACM,OAAOI,IAAP,KAAgB,QADtB;AAAA;AAAA;AAAA;;AAEUC,YAAAA,GAFV,GAEgBD,IAFhB;AAAA;AAAA,mBAG2BJ,KAAK,CAACK,GAAD,CAHhC;;AAAA;AAGUC,YAAAA,QAHV;AAAA;AAAA,mBAIiB,oCAAeA,QAAf,EAAyBZ,OAAzB,EAAkCC,OAAlC,CAJjB;;AAAA;AAAA;;AAAA;AAAA;AAAA,mBAMe,oCAAeS,IAAf,EAAqBV,OAArB,EAA8BC,OAA9B,CANf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/option-utils';\n\nimport {parseInBatches} from './parse-in-batches';\n\ntype FileType = string | File | Blob | Response | (string | File | Blob | Response)[] | FileList;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function loadInBatches(\n files: FileType,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(\n files: FileType[] | FileList,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(files, loaders, options, context) {\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders;\n loaders = null;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options || {});\n\n // Single url/file\n if (!Array.isArray(files)) {\n return loadOneFileInBatches(files, loaders, options, fetch);\n }\n\n // Multiple URLs / files\n const promises = files.map((file) => loadOneFileInBatches(file, loaders, options, fetch));\n\n // No point in waiting here for all responses before starting to stream individual streams?\n return promises;\n}\n\nasync function loadOneFileInBatches(file, loaders, options, fetch) {\n if (typeof file === 'string') {\n const url = file;\n const response = await fetch(url);\n return await parseInBatches(response, loaders, options);\n }\n return await parseInBatches(file, loaders, options);\n}\n"],"file":"load-in-batches.js"}
1
+ {"version":3,"sources":["../../../../src/lib/api/load-in-batches.ts"],"names":["loadInBatches","files","loaders","options","context","Array","isArray","undefined","fetch","loadOneFileInBatches","promises","map","file","url","response"],"mappings":";;;;;;;AACA;;AACA;;AAEA;;AAyBO,SAASA,aAAT,CAAuBC,KAAvB,EAA8BC,OAA9B,EAAuCC,OAAvC,EAAgDC,OAAhD,EAAyD;AAE9D,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAD,IAA2B,CAAC,qCAAeA,OAAf,CAAhC,EAAyD;AACvDE,IAAAA,OAAO,GAAGG,SAAV;AACAJ,IAAAA,OAAO,GAAGD,OAAV;AACAA,IAAAA,OAAO,GAAG,IAAV;AACD;;AAGD,QAAMM,KAAK,GAAG,mCAAiBL,OAAO,IAAI,EAA5B,CAAd;;AAGA,MAAI,CAACE,KAAK,CAACC,OAAN,CAAcL,KAAd,CAAL,EAA2B;AACzB,WAAOQ,oBAAoB,CAACR,KAAD,EAAQC,OAAR,EAAiBC,OAAjB,EAA0BK,KAA1B,CAA3B;AACD;;AAGD,QAAME,QAAQ,GAAGT,KAAK,CAACU,GAAN,CAAWC,IAAD,IAAUH,oBAAoB,CAACG,IAAD,EAAOV,OAAP,EAAgBC,OAAhB,EAAyBK,KAAzB,CAAxC,CAAjB;AAGA,SAAOE,QAAP;AACD;;AAED,eAAeD,oBAAf,CAAoCG,IAApC,EAA0CV,OAA1C,EAAmDC,OAAnD,EAA4DK,KAA5D,EAAmE;AACjE,MAAI,OAAOI,IAAP,KAAgB,QAApB,EAA8B;AAC5B,UAAMC,GAAG,GAAGD,IAAZ;AACA,UAAME,QAAQ,GAAG,MAAMN,KAAK,CAACK,GAAD,CAA5B;AACA,WAAO,MAAM,oCAAeC,QAAf,EAAyBZ,OAAzB,EAAkCC,OAAlC,CAAb;AACD;;AACD,SAAO,MAAM,oCAAeS,IAAf,EAAqBV,OAArB,EAA8BC,OAA9B,CAAb;AACD","sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/option-utils';\n\nimport {parseInBatches} from './parse-in-batches';\n\ntype FileType = string | File | Blob | Response | (string | File | Blob | Response)[] | FileList;\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function loadInBatches(\n files: FileType,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(\n files: FileType[] | FileList,\n loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>>;\n\nexport function loadInBatches(files, loaders, options, context) {\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders;\n loaders = null;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options || {});\n\n // Single url/file\n if (!Array.isArray(files)) {\n return loadOneFileInBatches(files, loaders, options, fetch);\n }\n\n // Multiple URLs / files\n const promises = files.map((file) => loadOneFileInBatches(file, loaders, options, fetch));\n\n // No point in waiting here for all responses before starting to stream individual streams?\n return promises;\n}\n\nasync function loadOneFileInBatches(file, loaders, options, fetch) {\n if (typeof file === 'string') {\n const url = file;\n const response = await fetch(url);\n return await parseInBatches(response, loaders, options);\n }\n return await parseInBatches(file, loaders, options);\n}\n"],"file":"load-in-batches.js"}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.load = load;
9
7
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
8
  var _isType = require("../../javascript-utils/is-type");
15
9
 
16
10
  var _normalizeLoader = require("../loader-utils/normalize-loader");
@@ -19,63 +13,24 @@ var _optionUtils = require("../loader-utils/option-utils");
19
13
 
20
14
  var _parse = require("./parse");
21
15
 
22
- function load(_x, _x2, _x3, _x4) {
23
- return _load.apply(this, arguments);
24
- }
25
-
26
- function _load() {
27
- _load = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(url, loaders, options, context) {
28
- var fetch, data;
29
- return _regenerator.default.wrap(function _callee$(_context) {
30
- while (1) {
31
- switch (_context.prev = _context.next) {
32
- case 0:
33
- if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
34
- context = undefined;
35
- options = loaders;
36
- loaders = undefined;
37
- }
38
-
39
- fetch = (0, _optionUtils.getFetchFunction)(options);
40
- data = url;
41
-
42
- if (!(typeof url === 'string')) {
43
- _context.next = 7;
44
- break;
45
- }
46
-
47
- _context.next = 6;
48
- return fetch(url);
49
-
50
- case 6:
51
- data = _context.sent;
52
-
53
- case 7:
54
- if (!(0, _isType.isBlob)(url)) {
55
- _context.next = 11;
56
- break;
57
- }
58
-
59
- _context.next = 10;
60
- return fetch(url);
16
+ async function load(url, loaders, options, context) {
17
+ if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
18
+ context = undefined;
19
+ options = loaders;
20
+ loaders = undefined;
21
+ }
61
22
 
62
- case 10:
63
- data = _context.sent;
23
+ const fetch = (0, _optionUtils.getFetchFunction)(options);
24
+ let data = url;
64
25
 
65
- case 11:
66
- _context.next = 13;
67
- return (0, _parse.parse)(data, loaders, options);
26
+ if (typeof url === 'string') {
27
+ data = await fetch(url);
28
+ }
68
29
 
69
- case 13:
70
- return _context.abrupt("return", _context.sent);
30
+ if ((0, _isType.isBlob)(url)) {
31
+ data = await fetch(url);
32
+ }
71
33
 
72
- case 14:
73
- case "end":
74
- return _context.stop();
75
- }
76
- }
77
- }, _callee);
78
- }));
79
- return _load.apply(this, arguments);
34
+ return await (0, _parse.parse)(data, loaders, options);
80
35
  }
81
36
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/load.ts"],"names":["load","url","loaders","options","context","Array","isArray","undefined","fetch","data"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;SAYsBA,I;;;;;oEAAf,iBACLC,GADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK;AAAA;AAAA;AAAA;AAAA;AAAA;AAOL,gBAAI,CAACC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAD,IAA2B,CAAC,qCAAeA,OAAf,CAAhC,EAAyD;AACvDE,cAAAA,OAAO,GAAGG,SAAV;AACAJ,cAAAA,OAAO,GAAGD,OAAV;AACAA,cAAAA,OAAO,GAAGK,SAAV;AACD;;AAGKC,YAAAA,KAdD,GAcS,mCAAiBL,OAAjB,CAdT;AAiBDM,YAAAA,IAjBC,GAiBMR,GAjBN;;AAAA,kBAmBD,OAAOA,GAAP,KAAe,QAnBd;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAoBUO,KAAK,CAACP,GAAD,CApBf;;AAAA;AAoBHQ,YAAAA,IApBG;;AAAA;AAAA,iBAwBD,oBAAOR,GAAP,CAxBC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA0BUO,KAAK,CAACP,GAAD,CA1Bf;;AAAA;AA0BHQ,YAAAA,IA1BG;;AAAA;AAAA;AAAA,mBA8BQ,kBAAMA,IAAN,EAAYP,OAAZ,EAAqBC,OAArB,CA9BR;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {isBlob} from '../../javascript-utils/is-type';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/option-utils';\n\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * Note: Load does duplicate a lot of parse.\n * it can also call fetchFile on string urls, which `parse` won't do.\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function load(\n url: string | DataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any> {\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options);\n\n // at this point, `url` could be already loaded binary data\n let data = url;\n // url is a string, fetch the url\n if (typeof url === 'string') {\n data = await fetch(url);\n // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)\n }\n\n if (isBlob(url)) {\n // The fetch response object will contain blob.name\n data = await fetch(url);\n }\n\n // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`\n return await parse(data, loaders, options);\n}\n"],"file":"load.js"}
1
+ {"version":3,"sources":["../../../../src/lib/api/load.ts"],"names":["load","url","loaders","options","context","Array","isArray","undefined","fetch","data"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAEA;;AAYO,eAAeA,IAAf,CACLC,GADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK,EAKS;AAEd,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAD,IAA2B,CAAC,qCAAeA,OAAf,CAAhC,EAAyD;AACvDE,IAAAA,OAAO,GAAGG,SAAV;AACAJ,IAAAA,OAAO,GAAGD,OAAV;AACAA,IAAAA,OAAO,GAAGK,SAAV;AACD;;AAGD,QAAMC,KAAK,GAAG,mCAAiBL,OAAjB,CAAd;AAGA,MAAIM,IAAI,GAAGR,GAAX;;AAEA,MAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AAC3BQ,IAAAA,IAAI,GAAG,MAAMD,KAAK,CAACP,GAAD,CAAlB;AAED;;AAED,MAAI,oBAAOA,GAAP,CAAJ,EAAiB;AAEfQ,IAAAA,IAAI,GAAG,MAAMD,KAAK,CAACP,GAAD,CAAlB;AACD;;AAGD,SAAO,MAAM,kBAAMQ,IAAN,EAAYP,OAAZ,EAAqBC,OAArB,CAAb;AACD","sourcesContent":["import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {isBlob} from '../../javascript-utils/is-type';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/option-utils';\n\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * Note: Load does duplicate a lot of parse.\n * it can also call fetchFile on string urls, which `parse` won't do.\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function load(\n url: string | DataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any> {\n // Signature: load(url, options)\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n // Select fetch function\n const fetch = getFetchFunction(options);\n\n // at this point, `url` could be already loaded binary data\n let data = url;\n // url is a string, fetch the url\n if (typeof url === 'string') {\n data = await fetch(url);\n // URL is Blob or File, fetchFile handles it (alt: we could generate ObjectURL here)\n }\n\n if (isBlob(url)) {\n // The fetch response object will contain blob.name\n data = await fetch(url);\n }\n\n // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`\n return await parse(data, loaders, options);\n}\n"],"file":"load.js"}