@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.
- package/dist/dist.min.js +1 -1
- package/dist/dist.min.js.map +1 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +56 -56
- package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +14 -119
- package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +17 -53
- package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-blob-iterator.js +12 -53
- package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-iterator.js +1 -1
- package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-stream-iterator.js +24 -161
- package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-string-iterator.js +13 -41
- package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
- package/dist/es5/iterators/make-stream/make-dom-stream.js +24 -69
- package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
- package/dist/es5/iterators/make-stream/make-node-stream.js +53 -189
- package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
- package/dist/es5/javascript-utils/is-type.js +18 -58
- package/dist/es5/javascript-utils/is-type.js.map +1 -1
- package/dist/es5/lib/api/encode.js +46 -242
- package/dist/es5/lib/api/encode.js.map +1 -1
- package/dist/es5/lib/api/load-in-batches.js +9 -52
- package/dist/es5/lib/api/load-in-batches.js.map +1 -1
- package/dist/es5/lib/api/load.js +15 -60
- package/dist/es5/lib/api/load.js.map +1 -1
- package/dist/es5/lib/api/parse-in-batches.js +81 -333
- package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
- package/dist/es5/lib/api/parse-sync.js +11 -15
- package/dist/es5/lib/api/parse-sync.js.map +1 -1
- package/dist/es5/lib/api/parse.js +50 -142
- package/dist/es5/lib/api/parse.js.map +1 -1
- package/dist/es5/lib/api/register-loaders.js +8 -30
- package/dist/es5/lib/api/register-loaders.js.map +1 -1
- package/dist/es5/lib/api/save.js +4 -37
- package/dist/es5/lib/api/save.js.map +1 -1
- package/dist/es5/lib/api/select-loader.js +74 -209
- package/dist/es5/lib/api/select-loader.js.map +1 -1
- package/dist/es5/lib/fetch/fetch-error-message.js +13 -55
- package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
- package/dist/es5/lib/fetch/fetch-file.js +10 -47
- package/dist/es5/lib/fetch/fetch-file.js.map +1 -1
- package/dist/es5/lib/fetch/read-array-buffer.js +19 -80
- package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
- package/dist/es5/lib/fetch/read-file.js +2 -3
- package/dist/es5/lib/fetch/read-file.js.map +1 -1
- package/dist/es5/lib/fetch/write-file.js +9 -38
- package/dist/es5/lib/fetch/write-file.js.map +1 -1
- package/dist/es5/lib/filesystems/browser-filesystem.js +77 -266
- package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
- package/dist/es5/lib/filesystems/read-array-buffer.js +6 -43
- package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -1
- package/dist/es5/lib/init.js +1 -1
- package/dist/es5/lib/init.js.map +1 -1
- package/dist/es5/lib/loader-utils/check-errors.js +12 -50
- package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
- package/dist/es5/lib/loader-utils/get-data.js +71 -238
- package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
- package/dist/es5/lib/loader-utils/loader-context.js +8 -19
- package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
- package/dist/es5/lib/loader-utils/loggers.js +36 -81
- package/dist/es5/lib/loader-utils/loggers.js.map +1 -1
- package/dist/es5/lib/loader-utils/normalize-loader.js +7 -13
- package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -1
- package/dist/es5/lib/loader-utils/option-defaults.js +2 -2
- package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
- package/dist/es5/lib/loader-utils/option-utils.js +51 -85
- package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/es5/lib/progress/fetch-progress.js +49 -150
- package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
- package/dist/es5/lib/utils/mime-type-utils.js +4 -4
- package/dist/es5/lib/utils/mime-type-utils.js.map +1 -1
- package/dist/es5/lib/utils/resource-utils.js +4 -4
- package/dist/es5/lib/utils/resource-utils.js.map +1 -1
- package/dist/es5/lib/utils/response-utils.js +88 -215
- package/dist/es5/lib/utils/response-utils.js.map +1 -1
- package/dist/es5/null-loader.js +10 -137
- package/dist/es5/null-loader.js.map +1 -1
- package/dist/esm/lib/api/encode.js +1 -1
- package/dist/esm/lib/api/encode.js.map +1 -1
- package/dist/esm/lib/api/parse-sync.js +1 -1
- package/dist/esm/lib/api/parse-sync.js.map +1 -1
- package/dist/esm/lib/api/parse.js +1 -1
- package/dist/esm/lib/api/parse.js.map +1 -1
- package/dist/esm/lib/api/select-loader.js +4 -4
- package/dist/esm/lib/api/select-loader.js.map +1 -1
- package/dist/esm/lib/fetch/fetch-error-message.js +2 -2
- package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -1
- package/dist/esm/lib/init.js +1 -1
- package/dist/esm/lib/loader-utils/check-errors.js +4 -4
- package/dist/esm/lib/loader-utils/check-errors.js.map +1 -1
- package/dist/esm/lib/loader-utils/option-utils.js +5 -5
- package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/esm/lib/utils/response-utils.js +7 -7
- package/dist/esm/lib/utils/response-utils.js.map +1 -1
- package/dist/esm/null-loader.js +1 -1
- package/dist/null-worker.js +1 -1
- package/dist/null-worker.js.map +1 -1
- package/package.json +4 -4
- 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(
|
|
27
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
23
|
+
if (writer.encodeSync) {
|
|
24
|
+
return writer.encodeSync(data, options);
|
|
25
|
+
}
|
|
156
26
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
27
|
+
if (writer.encodeText) {
|
|
28
|
+
return new TextEncoder().encode(await writer.encodeText(data, options));
|
|
29
|
+
}
|
|
160
30
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
|
|
31
|
+
if (writer.encodeInBatches) {
|
|
32
|
+
const batches = encodeInBatches(data, writer, options);
|
|
33
|
+
const chunks = [];
|
|
165
34
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return (0, _fetchFile.fetchFile)(outputFilename);
|
|
35
|
+
for await (const batch of batches) {
|
|
36
|
+
chunks.push(batch);
|
|
37
|
+
}
|
|
170
38
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return _context.abrupt("return", response.arrayBuffer());
|
|
39
|
+
return (0, _loaderUtils.concatenateArrayBuffers)(...chunks);
|
|
40
|
+
}
|
|
174
41
|
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
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(
|
|
197
|
-
|
|
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
|
-
|
|
232
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
254
|
-
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
-
|
|
283
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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":"
|
|
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"}
|
package/dist/es5/lib/api/load.js
CHANGED
|
@@ -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(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
63
|
-
|
|
23
|
+
const fetch = (0, _optionUtils.getFetchFunction)(options);
|
|
24
|
+
let data = url;
|
|
64
25
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
26
|
+
if (typeof url === 'string') {
|
|
27
|
+
data = await fetch(url);
|
|
28
|
+
}
|
|
68
29
|
|
|
69
|
-
|
|
70
|
-
|
|
30
|
+
if ((0, _isType.isBlob)(url)) {
|
|
31
|
+
data = await fetch(url);
|
|
32
|
+
}
|
|
71
33
|
|
|
72
|
-
|
|
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":"
|
|
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"}
|