@loaders.gl/core 3.1.0-beta.7 → 3.1.3

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 (116) hide show
  1. package/dist/bundle.js +5 -3380
  2. package/dist/dist.min.js +3423 -0
  3. package/dist/es5/bundle.js +1 -1
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/index.js +56 -72
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +119 -14
  8. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  9. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +53 -17
  10. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
  11. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +53 -12
  12. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  13. package/dist/es5/iterators/make-iterator/make-iterator.js +1 -1
  14. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -1
  15. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +161 -24
  16. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  17. package/dist/es5/iterators/make-iterator/make-string-iterator.js +41 -13
  18. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
  19. package/dist/es5/iterators/make-stream/make-dom-stream.js +71 -26
  20. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
  21. package/dist/es5/iterators/make-stream/make-node-stream.js +189 -56
  22. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
  23. package/dist/es5/javascript-utils/is-type.js +58 -18
  24. package/dist/es5/javascript-utils/is-type.js.map +1 -1
  25. package/dist/es5/lib/api/encode.js +242 -46
  26. package/dist/es5/lib/api/encode.js.map +1 -1
  27. package/dist/es5/lib/api/load-in-batches.js +52 -9
  28. package/dist/es5/lib/api/load-in-batches.js.map +1 -1
  29. package/dist/es5/lib/api/load.js +60 -15
  30. package/dist/es5/lib/api/load.js.map +1 -1
  31. package/dist/es5/lib/api/parse-in-batches.js +333 -81
  32. package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
  33. package/dist/es5/lib/api/parse-sync.js +15 -11
  34. package/dist/es5/lib/api/parse-sync.js.map +1 -1
  35. package/dist/es5/lib/api/parse.js +142 -50
  36. package/dist/es5/lib/api/parse.js.map +1 -1
  37. package/dist/es5/lib/api/register-loaders.js +30 -8
  38. package/dist/es5/lib/api/register-loaders.js.map +1 -1
  39. package/dist/es5/lib/api/save.js +37 -4
  40. package/dist/es5/lib/api/save.js.map +1 -1
  41. package/dist/es5/lib/api/select-loader.js +209 -74
  42. package/dist/es5/lib/api/select-loader.js.map +1 -1
  43. package/dist/es5/lib/fetch/fetch-error-message.js +55 -13
  44. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
  45. package/dist/es5/lib/fetch/fetch-file.js +47 -10
  46. package/dist/es5/lib/fetch/fetch-file.js.map +1 -1
  47. package/dist/es5/lib/fetch/read-array-buffer.js +80 -19
  48. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
  49. package/dist/es5/lib/fetch/read-file.js +3 -2
  50. package/dist/es5/lib/fetch/read-file.js.map +1 -1
  51. package/dist/es5/lib/fetch/write-file.js +38 -9
  52. package/dist/es5/lib/fetch/write-file.js.map +1 -1
  53. package/dist/es5/lib/filesystems/browser-filesystem.js +266 -77
  54. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
  55. package/dist/es5/lib/filesystems/read-array-buffer.js +43 -6
  56. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -1
  57. package/dist/es5/lib/init.js +1 -1
  58. package/dist/es5/lib/init.js.map +1 -1
  59. package/dist/es5/lib/loader-utils/check-errors.js +50 -12
  60. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
  61. package/dist/es5/lib/loader-utils/get-data.js +238 -71
  62. package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
  63. package/dist/es5/lib/loader-utils/loader-context.js +19 -8
  64. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
  65. package/dist/es5/lib/loader-utils/loggers.js +81 -36
  66. package/dist/es5/lib/loader-utils/loggers.js.map +1 -1
  67. package/dist/es5/lib/loader-utils/normalize-loader.js +13 -7
  68. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -1
  69. package/dist/es5/lib/loader-utils/option-defaults.js +2 -2
  70. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
  71. package/dist/es5/lib/loader-utils/option-utils.js +85 -51
  72. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  73. package/dist/es5/lib/progress/fetch-progress.js +150 -49
  74. package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
  75. package/dist/es5/lib/utils/mime-type-utils.js +4 -4
  76. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -1
  77. package/dist/es5/lib/utils/resource-utils.js +4 -4
  78. package/dist/es5/lib/utils/resource-utils.js.map +1 -1
  79. package/dist/es5/lib/utils/response-utils.js +215 -88
  80. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  81. package/dist/es5/null-loader.js +137 -10
  82. package/dist/es5/null-loader.js.map +1 -1
  83. package/dist/esm/index.js +1 -3
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/iterators/make-stream/make-dom-stream.js +1 -1
  86. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -1
  87. package/dist/esm/iterators/make-stream/make-node-stream.js +1 -4
  88. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -1
  89. package/dist/esm/lib/init.js +1 -1
  90. package/dist/esm/lib/init.js.map +1 -1
  91. package/dist/esm/null-loader.js +1 -1
  92. package/dist/esm/null-loader.js.map +1 -1
  93. package/dist/index.d.ts +1 -3
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +3 -7
  96. package/dist/iterators/make-stream/make-dom-stream.d.ts +8 -3
  97. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
  98. package/dist/iterators/make-stream/make-dom-stream.js +9 -4
  99. package/dist/iterators/make-stream/make-node-stream.d.ts +2 -3
  100. package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -1
  101. package/dist/iterators/make-stream/make-node-stream.js +3 -5
  102. package/dist/lib/fetch/fetch-file.js +1 -1
  103. package/dist/lib/fetch/read-file.d.ts +1 -1
  104. package/dist/lib/fetch/read-file.d.ts.map +1 -1
  105. package/package.json +8 -9
  106. package/src/index.ts +1 -3
  107. package/src/iterators/make-stream/make-dom-stream.ts +9 -4
  108. package/src/iterators/make-stream/make-node-stream.ts +2 -7
  109. package/dist/es5/iterators/make-stream/make-stream.js +0 -19
  110. package/dist/es5/iterators/make-stream/make-stream.js.map +0 -1
  111. package/dist/esm/iterators/make-stream/make-stream.js +0 -7
  112. package/dist/esm/iterators/make-stream/make-stream.js.map +0 -1
  113. package/dist/iterators/make-stream/make-stream.d.ts +0 -9
  114. package/dist/iterators/make-stream/make-stream.d.ts.map +0 -1
  115. package/dist/iterators/make-stream/make-stream.js +0 -16
  116. package/src/iterators/make-stream/make-stream.ts +0 -19
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -9,46 +11,178 @@ exports.encodeText = encodeText;
9
11
  exports.encodeInBatches = encodeInBatches;
10
12
  exports.encodeURLtoURL = encodeURLtoURL;
11
13
 
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
+
12
20
  var _loaderUtils = require("@loaders.gl/loader-utils");
13
21
 
14
22
  var _writeFile = require("../fetch/write-file");
15
23
 
16
24
  var _fetchFile = require("../fetch/fetch-file");
17
25
 
18
- async function encode(data, writer, options) {
19
- if (writer.encode) {
20
- return await writer.encode(data, options);
21
- }
26
+ function encode(_x, _x2, _x3) {
27
+ return _encode.apply(this, arguments);
28
+ }
22
29
 
23
- if (writer.encodeSync) {
24
- return writer.encodeSync(data, options);
25
- }
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;
26
33
 
27
- if (writer.encodeText) {
28
- return new TextEncoder().encode(await writer.encodeText(data, options));
29
- }
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
+ }
30
42
 
31
- if (writer.encodeInBatches) {
32
- const batches = encodeInBatches(data, writer, options);
33
- const chunks = [];
43
+ _context.next = 3;
44
+ return writer.encode(data, options);
34
45
 
35
- for await (const batch of batches) {
36
- chunks.push(batch);
37
- }
46
+ case 3:
47
+ return _context.abrupt("return", _context.sent);
38
48
 
39
- return (0, _loaderUtils.concatenateArrayBuffers)(...chunks);
40
- }
49
+ case 4:
50
+ if (!writer.encodeSync) {
51
+ _context.next = 6;
52
+ break;
53
+ }
41
54
 
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
- }
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
+ }
50
128
 
51
- throw new Error('Writer could not encode data');
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));
150
+
151
+ case 49:
152
+ if (!(!_loaderUtils.isBrowser && writer.encodeURLtoURL)) {
153
+ _context.next = 61;
154
+ break;
155
+ }
156
+
157
+ tmpInputFilename = getTemporaryFilename('input');
158
+ _context.next = 53;
159
+ return (0, _writeFile.writeFile)(tmpInputFilename, data);
160
+
161
+ case 53:
162
+ tmpOutputFilename = getTemporaryFilename('output');
163
+ _context.next = 56;
164
+ return encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
165
+
166
+ case 56:
167
+ outputFilename = _context.sent;
168
+ _context.next = 59;
169
+ return (0, _fetchFile.fetchFile)(outputFilename);
170
+
171
+ case 59:
172
+ response = _context.sent;
173
+ return _context.abrupt("return", response.arrayBuffer());
174
+
175
+ case 61:
176
+ throw new Error('Writer could not encode data');
177
+
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);
52
186
  }
53
187
 
54
188
  function encodeSync(data, writer, options) {
@@ -59,42 +193,104 @@ function encodeSync(data, writer, options) {
59
193
  throw new Error('Writer could not synchronously encode data');
60
194
  }
61
195
 
62
- async function encodeText(data, writer, options) {
63
- if (writer.text && writer.encodeText) {
64
- return await writer.encodeText(data, options);
65
- }
196
+ function encodeText(_x4, _x5, _x6) {
197
+ return _encodeText.apply(this, arguments);
198
+ }
66
199
 
67
- if (writer.text && (writer.encode || writer.encodeInBatches)) {
68
- const arrayBuffer = await encode(data, writer, options);
69
- return new TextDecoder().decode(arrayBuffer);
70
- }
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));
71
230
 
72
- throw new Error('Writer could not encode data as text');
231
+ case 9:
232
+ throw new Error('Writer could not encode data as text');
233
+
234
+ case 10:
235
+ case "end":
236
+ return _context2.stop();
237
+ }
238
+ }
239
+ }, _callee2);
240
+ }));
241
+ return _encodeText.apply(this, arguments);
73
242
  }
74
243
 
75
244
  function encodeInBatches(data, writer, options) {
76
245
  if (writer.encodeInBatches) {
77
- const dataIterator = getIterator(data);
246
+ var dataIterator = getIterator(data);
78
247
  return writer.encodeInBatches(dataIterator, options);
79
248
  }
80
249
 
81
250
  throw new Error('Writer could not encode data in batches');
82
251
  }
83
252
 
84
- async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
85
- inputUrl = (0, _loaderUtils.resolvePath)(inputUrl);
86
- outputUrl = (0, _loaderUtils.resolvePath)(outputUrl);
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);
87
266
 
88
- if (_loaderUtils.isBrowser || !writer.encodeURLtoURL) {
89
- throw new Error();
90
- }
267
+ if (!(_loaderUtils.isBrowser || !writer.encodeURLtoURL)) {
268
+ _context3.next = 4;
269
+ break;
270
+ }
271
+
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);
91
281
 
92
- const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
93
- return outputFilename;
282
+ case 8:
283
+ case "end":
284
+ return _context3.stop();
285
+ }
286
+ }
287
+ }, _callee3);
288
+ }));
289
+ return _encodeURLtoURL.apply(this, arguments);
94
290
  }
95
291
 
96
292
  function getIterator(data) {
97
- const dataIterator = [{
293
+ var dataIterator = [{
98
294
  table: data,
99
295
  start: 0,
100
296
  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","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
+ {"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 // 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,10 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.loadInBatches = loadInBatches;
7
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
8
14
  var _normalizeLoader = require("../loader-utils/normalize-loader");
9
15
 
10
16
  var _optionUtils = require("../loader-utils/option-utils");
@@ -18,23 +24,60 @@ function loadInBatches(files, loaders, options, context) {
18
24
  loaders = null;
19
25
  }
20
26
 
21
- const fetch = (0, _optionUtils.getFetchFunction)(options || {});
27
+ var fetch = (0, _optionUtils.getFetchFunction)(options || {});
22
28
 
23
29
  if (!Array.isArray(files)) {
24
30
  return loadOneFileInBatches(files, loaders, options, fetch);
25
31
  }
26
32
 
27
- const promises = files.map(file => loadOneFileInBatches(file, loaders, options, fetch));
33
+ var promises = files.map(function (file) {
34
+ return loadOneFileInBatches(file, loaders, options, fetch);
35
+ });
28
36
  return promises;
29
37
  }
30
38
 
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
- }
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);
37
73
 
38
- return await (0, _parseInBatches.parseInBatches)(file, loaders, options);
74
+ case 11:
75
+ case "end":
76
+ return _context.stop();
77
+ }
78
+ }
79
+ }, _callee);
80
+ }));
81
+ return _loadOneFileInBatches.apply(this, arguments);
39
82
  }
40
83
  //# 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,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
+ {"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,10 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.load = load;
7
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
8
14
  var _isType = require("../../javascript-utils/is-type");
9
15
 
10
16
  var _normalizeLoader = require("../loader-utils/normalize-loader");
@@ -13,24 +19,63 @@ var _optionUtils = require("../loader-utils/option-utils");
13
19
 
14
20
  var _parse = require("./parse");
15
21
 
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
- }
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);
22
61
 
23
- const fetch = (0, _optionUtils.getFetchFunction)(options);
24
- let data = url;
62
+ case 10:
63
+ data = _context.sent;
25
64
 
26
- if (typeof url === 'string') {
27
- data = await fetch(url);
28
- }
65
+ case 11:
66
+ _context.next = 13;
67
+ return (0, _parse.parse)(data, loaders, options);
29
68
 
30
- if ((0, _isType.isBlob)(url)) {
31
- data = await fetch(url);
32
- }
69
+ case 13:
70
+ return _context.abrupt("return", _context.sent);
33
71
 
34
- return await (0, _parse.parse)(data, loaders, options);
72
+ case 14:
73
+ case "end":
74
+ return _context.stop();
75
+ }
76
+ }
77
+ }, _callee);
78
+ }));
79
+ return _load.apply(this, arguments);
35
80
  }
36
81
  //# 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;;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"}
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"}