@loaders.gl/core 3.4.13 → 3.4.15
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 +106 -104
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +55 -55
- package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +14 -86
- 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 -33
- package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-blob-iterator.js +10 -39
- 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 -119
- package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
- package/dist/es5/iterators/make-iterator/make-string-iterator.js +11 -30
- package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
- package/dist/es5/iterators/make-stream/make-dom-stream.js +22 -54
- package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
- package/dist/es5/iterators/make-stream/make-node-stream.js +50 -152
- package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
- package/dist/es5/javascript-utils/is-type.js +18 -56
- package/dist/es5/javascript-utils/is-type.js.map +1 -1
- package/dist/es5/lib/api/encode.js +54 -203
- package/dist/es5/lib/api/encode.js.map +1 -1
- package/dist/es5/lib/api/load-in-batches.js +9 -41
- package/dist/es5/lib/api/load-in-batches.js.map +1 -1
- package/dist/es5/lib/api/load.js +15 -48
- package/dist/es5/lib/api/load.js.map +1 -1
- package/dist/es5/lib/api/loader-options.js +2 -2
- package/dist/es5/lib/api/parse-in-batches.js +71 -259
- package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
- package/dist/es5/lib/api/parse-sync.js +9 -11
- package/dist/es5/lib/api/parse-sync.js.map +1 -1
- package/dist/es5/lib/api/parse.js +62 -125
- package/dist/es5/lib/api/parse.js.map +1 -1
- package/dist/es5/lib/api/register-loaders.js +8 -25
- package/dist/es5/lib/api/register-loaders.js.map +1 -1
- package/dist/es5/lib/api/save.js +4 -28
- package/dist/es5/lib/api/save.js.map +1 -1
- package/dist/es5/lib/api/select-loader.js +76 -170
- package/dist/es5/lib/api/select-loader.js.map +1 -1
- package/dist/es5/lib/fetch/fetch-error-message.js +13 -44
- package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
- package/dist/es5/lib/fetch/fetch-file.js +10 -37
- package/dist/es5/lib/fetch/fetch-file.js.map +1 -1
- package/dist/es5/lib/fetch/read-array-buffer.js +19 -65
- package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
- package/dist/es5/lib/fetch/read-file.js +2 -2
- package/dist/es5/lib/fetch/read-file.js.map +1 -1
- package/dist/es5/lib/fetch/write-file.js +8 -29
- package/dist/es5/lib/fetch/write-file.js.map +1 -1
- package/dist/es5/lib/filesystems/browser-filesystem.js +78 -227
- package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
- package/dist/es5/lib/filesystems/read-array-buffer.js +6 -33
- 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 +11 -39
- package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
- package/dist/es5/lib/loader-utils/get-data.js +62 -187
- package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
- package/dist/es5/lib/loader-utils/get-fetch-function.js +3 -5
- package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -1
- package/dist/es5/lib/loader-utils/loader-context.js +8 -12
- package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
- package/dist/es5/lib/loader-utils/loggers.js +37 -67
- package/dist/es5/lib/loader-utils/loggers.js.map +1 -1
- package/dist/es5/lib/loader-utils/normalize-loader.js +9 -9
- 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 +43 -59
- package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/es5/lib/progress/fetch-progress.js +49 -125
- package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
- package/dist/es5/lib/utils/log.js +1 -1
- package/dist/es5/lib/utils/log.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 +8 -8
- package/dist/es5/lib/utils/resource-utils.js.map +1 -1
- package/dist/es5/lib/utils/response-utils.js +71 -171
- package/dist/es5/lib/utils/response-utils.js.map +1 -1
- package/dist/es5/lib/utils/url-utils.js +2 -2
- package/dist/es5/lib/utils/url-utils.js.map +1 -1
- package/dist/es5/null-loader.js +14 -100
- package/dist/es5/null-loader.js.map +1 -1
- package/dist/esm/lib/init.js +1 -1
- package/dist/esm/null-loader.js +1 -1
- package/dist/null-worker.js +1 -1
- package/package.json +5 -5
- package/src/.DS_Store +0 -0
- package/src/lib/.DS_Store +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-in-batches.js","names":["_normalizeLoader","require","_getFetchFunction","_parseInBatches","loadInBatches","files","loaders","options","context","Array","isArray","isLoaderObject","undefined","fetch","getFetchFunction","loadOneFileInBatches","promises","map","file","
|
|
1
|
+
{"version":3,"file":"load-in-batches.js","names":["_normalizeLoader","require","_getFetchFunction","_parseInBatches","loadInBatches","files","loaders","options","context","Array","isArray","isLoaderObject","undefined","fetch","getFetchFunction","loadOneFileInBatches","promises","map","file","url","response","parseInBatches"],"sources":["../../../../src/lib/api/load-in-batches.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {getFetchFunction} from '../loader-utils/get-fetch-function';\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"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AAyBO,SAASG,aAAaA,CAACC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE;EAE9D,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,OAAO,CAAC,IAAI,CAAC,IAAAK,+BAAc,EAACL,OAAO,CAAC,EAAE;IACvDE,OAAO,GAAGI,SAAS;IACnBL,OAAO,GAAGD,OAAO;IACjBA,OAAO,GAAG,IAAI;EAChB;EAGA,MAAMO,KAAK,GAAG,IAAAC,kCAAgB,EAACP,OAAO,IAAI,CAAC,CAAC,CAAC;EAG7C,IAAI,CAACE,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;IACzB,OAAOU,oBAAoB,CAACV,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEM,KAAK,CAAC;EAC7D;EAGA,MAAMG,QAAQ,GAAGX,KAAK,CAACY,GAAG,CAAEC,IAAI,IAAKH,oBAAoB,CAACG,IAAI,EAAEZ,OAAO,EAAEC,OAAO,EAAEM,KAAK,CAAC,CAAC;EAGzF,OAAOG,QAAQ;AACjB;AAEA,eAAeD,oBAAoBA,CAACG,IAAI,EAAEZ,OAAO,EAAEC,OAAO,EAAEM,KAAK,EAAE;EACjE,IAAI,OAAOK,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMC,GAAG,GAAGD,IAAI;IAChB,MAAME,QAAQ,GAAG,MAAMP,KAAK,CAACM,GAAG,CAAC;IACjC,OAAO,MAAM,IAAAE,8BAAc,EAACD,QAAQ,EAAEd,OAAO,EAAEC,OAAO,CAAC;EACzD;EACA,OAAO,MAAM,IAAAc,8BAAc,EAACH,IAAI,EAAEZ,OAAO,EAAEC,OAAO,CAAC;AACrD"}
|
package/dist/es5/lib/api/load.js
CHANGED
|
@@ -1,60 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.load = load;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
7
|
var _isType = require("../../javascript-utils/is-type");
|
|
11
8
|
var _normalizeLoader = require("../loader-utils/normalize-loader");
|
|
12
9
|
var _getFetchFunction = require("../loader-utils/get-fetch-function");
|
|
13
10
|
var _parse = require("./parse");
|
|
14
|
-
function load(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
data = url;
|
|
30
|
-
if (!(typeof url === 'string')) {
|
|
31
|
-
_context.next = 7;
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
_context.next = 6;
|
|
35
|
-
return fetch(url);
|
|
36
|
-
case 6:
|
|
37
|
-
data = _context.sent;
|
|
38
|
-
case 7:
|
|
39
|
-
if (!(0, _isType.isBlob)(url)) {
|
|
40
|
-
_context.next = 11;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
_context.next = 10;
|
|
44
|
-
return fetch(url);
|
|
45
|
-
case 10:
|
|
46
|
-
data = _context.sent;
|
|
47
|
-
case 11:
|
|
48
|
-
_context.next = 13;
|
|
49
|
-
return (0, _parse.parse)(data, loaders, options);
|
|
50
|
-
case 13:
|
|
51
|
-
return _context.abrupt("return", _context.sent);
|
|
52
|
-
case 14:
|
|
53
|
-
case "end":
|
|
54
|
-
return _context.stop();
|
|
55
|
-
}
|
|
56
|
-
}, _callee);
|
|
57
|
-
}));
|
|
58
|
-
return _load.apply(this, arguments);
|
|
11
|
+
async function load(url, loaders, options, context) {
|
|
12
|
+
if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
|
|
13
|
+
context = undefined;
|
|
14
|
+
options = loaders;
|
|
15
|
+
loaders = undefined;
|
|
16
|
+
}
|
|
17
|
+
const fetch = (0, _getFetchFunction.getFetchFunction)(options);
|
|
18
|
+
let data = url;
|
|
19
|
+
if (typeof url === 'string') {
|
|
20
|
+
data = await fetch(url);
|
|
21
|
+
}
|
|
22
|
+
if ((0, _isType.isBlob)(url)) {
|
|
23
|
+
data = await fetch(url);
|
|
24
|
+
}
|
|
25
|
+
return await (0, _parse.parse)(data, loaders, options);
|
|
59
26
|
}
|
|
60
27
|
//# sourceMappingURL=load.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","names":["_isType","require","_normalizeLoader","_getFetchFunction","_parse","load","
|
|
1
|
+
{"version":3,"file":"load.js","names":["_isType","require","_normalizeLoader","_getFetchFunction","_parse","load","url","loaders","options","context","Array","isArray","isLoaderObject","undefined","fetch","getFetchFunction","data","isBlob","parse"],"sources":["../../../../src/lib/api/load.ts"],"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/get-fetch-function';\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 // @ts-expect-error TODO - This may not work for overridden fetch functions\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 as Loader[], options);\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AAYO,eAAeI,IAAIA,CACxBC,GAAsB,EACtBC,OAA2C,EAC3CC,OAAuB,EACvBC,OAAuB,EACT;EAEd,IAAI,CAACC,KAAK,CAACC,OAAO,CAACJ,OAAO,CAAC,IAAI,CAAC,IAAAK,+BAAc,EAACL,OAAO,CAAC,EAAE;IACvDE,OAAO,GAAGI,SAAS;IACnBL,OAAO,GAAGD,OAAwB;IAClCA,OAAO,GAAGM,SAAS;EACrB;EAGA,MAAMC,KAAK,GAAG,IAAAC,kCAAgB,EAACP,OAAO,CAAC;EAGvC,IAAIQ,IAAI,GAAGV,GAAG;EAEd,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3BU,IAAI,GAAG,MAAMF,KAAK,CAACR,GAAG,CAAC;EAEzB;EAEA,IAAI,IAAAW,cAAM,EAACX,GAAG,CAAC,EAAE;IAGfU,IAAI,GAAG,MAAMF,KAAK,CAACR,GAAG,CAAC;EACzB;EAGA,OAAO,MAAM,IAAAY,YAAK,EAACF,IAAI,EAAET,OAAO,EAAcC,OAAO,CAAC;AACxD"}
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "getLoaderOptions", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: function
|
|
8
|
+
get: function () {
|
|
9
9
|
return _optionUtils.getGlobalLoaderOptions;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "setLoaderOptions", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function
|
|
14
|
+
get: function () {
|
|
15
15
|
return _optionUtils.setGlobalOptions;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.parseInBatches = parseInBatches;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
-
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
|
|
13
|
-
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
|
|
14
|
-
var _asyncGeneratorDelegate2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncGeneratorDelegate"));
|
|
15
7
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
16
8
|
var _normalizeLoader = require("../loader-utils/normalize-loader");
|
|
17
9
|
var _optionUtils = require("../loader-utils/option-utils");
|
|
@@ -20,259 +12,79 @@ var _getData = require("../loader-utils/get-data");
|
|
|
20
12
|
var _resourceUtils = require("../utils/resource-utils");
|
|
21
13
|
var _selectLoader = require("./select-loader");
|
|
22
14
|
var _parse = require("./parse");
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
async function parseInBatches(data, loaders, options, context) {
|
|
16
|
+
(0, _loaderUtils.assert)(!context || typeof context === 'object');
|
|
17
|
+
const loaderArray = Array.isArray(loaders) ? loaders : undefined;
|
|
18
|
+
if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
|
|
19
|
+
context = undefined;
|
|
20
|
+
options = loaders;
|
|
21
|
+
loaders = undefined;
|
|
22
|
+
}
|
|
23
|
+
data = await data;
|
|
24
|
+
options = options || {};
|
|
25
|
+
const url = (0, _resourceUtils.getResourceUrl)(data);
|
|
26
|
+
const loader = await (0, _selectLoader.selectLoader)(data, loaders, options);
|
|
27
|
+
if (!loader) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
options = (0, _optionUtils.normalizeOptions)(options, loader, loaderArray, url);
|
|
31
|
+
context = (0, _loaderContext.getLoaderContext)({
|
|
32
|
+
url,
|
|
33
|
+
parseInBatches,
|
|
34
|
+
parse: _parse.parse,
|
|
35
|
+
loaders: loaderArray
|
|
36
|
+
}, options, context || null);
|
|
37
|
+
return await parseWithLoaderInBatches(loader, data, options, context);
|
|
29
38
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
_context.next = 10;
|
|
50
|
-
return (0, _selectLoader.selectLoader)(data, loaders, options);
|
|
51
|
-
case 10:
|
|
52
|
-
loader = _context.sent;
|
|
53
|
-
if (loader) {
|
|
54
|
-
_context.next = 13;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
return _context.abrupt("return", null);
|
|
58
|
-
case 13:
|
|
59
|
-
options = (0, _optionUtils.normalizeOptions)(options, loader, loaderArray, url);
|
|
60
|
-
context = (0, _loaderContext.getLoaderContext)({
|
|
61
|
-
url: url,
|
|
62
|
-
parseInBatches: parseInBatches,
|
|
63
|
-
parse: _parse.parse,
|
|
64
|
-
loaders: loaderArray
|
|
65
|
-
}, options, context || null);
|
|
66
|
-
_context.next = 17;
|
|
67
|
-
return parseWithLoaderInBatches(loader, data, options, context);
|
|
68
|
-
case 17:
|
|
69
|
-
return _context.abrupt("return", _context.sent);
|
|
70
|
-
case 18:
|
|
71
|
-
case "end":
|
|
72
|
-
return _context.stop();
|
|
73
|
-
}
|
|
74
|
-
}, _callee);
|
|
75
|
-
}));
|
|
76
|
-
return _parseInBatches.apply(this, arguments);
|
|
39
|
+
async function parseWithLoaderInBatches(loader, data, options, context) {
|
|
40
|
+
const outputIterator = await parseToOutputIterator(loader, data, options, context);
|
|
41
|
+
if (!options.metadata) {
|
|
42
|
+
return outputIterator;
|
|
43
|
+
}
|
|
44
|
+
const metadataBatch = {
|
|
45
|
+
batchType: 'metadata',
|
|
46
|
+
metadata: {
|
|
47
|
+
_loader: loader,
|
|
48
|
+
_context: context
|
|
49
|
+
},
|
|
50
|
+
data: [],
|
|
51
|
+
bytesUsed: 0
|
|
52
|
+
};
|
|
53
|
+
async function* makeMetadataBatchIterator(iterator) {
|
|
54
|
+
yield metadataBatch;
|
|
55
|
+
yield* iterator;
|
|
56
|
+
}
|
|
57
|
+
return makeMetadataBatchIterator(outputIterator);
|
|
77
58
|
}
|
|
78
|
-
function
|
|
79
|
-
|
|
59
|
+
async function parseToOutputIterator(loader, data, options, context) {
|
|
60
|
+
const inputIterator = await (0, _getData.getAsyncIterableFromData)(data, options);
|
|
61
|
+
const transformedIterator = await applyInputTransforms(inputIterator, (options === null || options === void 0 ? void 0 : options.transforms) || []);
|
|
62
|
+
if (loader.parseInBatches) {
|
|
63
|
+
return loader.parseInBatches(transformedIterator, options, context);
|
|
64
|
+
}
|
|
65
|
+
async function* parseChunkInBatches() {
|
|
66
|
+
const arrayBuffer = await (0, _loaderUtils.concatenateArrayBuffersAsync)(transformedIterator);
|
|
67
|
+
const parsedData = await (0, _parse.parse)(arrayBuffer, loader, {
|
|
68
|
+
...options,
|
|
69
|
+
mimeType: loader.mimeTypes[0]
|
|
70
|
+
}, context);
|
|
71
|
+
const batch = {
|
|
72
|
+
mimeType: loader.mimeTypes[0],
|
|
73
|
+
shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',
|
|
74
|
+
batchType: 'data',
|
|
75
|
+
data: parsedData,
|
|
76
|
+
length: Array.isArray(parsedData) ? parsedData.length : 1
|
|
77
|
+
};
|
|
78
|
+
yield batch;
|
|
79
|
+
}
|
|
80
|
+
return parseChunkInBatches();
|
|
80
81
|
}
|
|
81
|
-
function
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
_makeMetadataBatchIterator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2(iterator) {
|
|
89
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
90
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
91
|
-
case 0:
|
|
92
|
-
_context2.next = 2;
|
|
93
|
-
return metadataBatch;
|
|
94
|
-
case 2:
|
|
95
|
-
return _context2.delegateYield((0, _asyncGeneratorDelegate2.default)(_asyncIterator(iterator), _awaitAsyncGenerator2.default), "t0", 3);
|
|
96
|
-
case 3:
|
|
97
|
-
case "end":
|
|
98
|
-
return _context2.stop();
|
|
99
|
-
}
|
|
100
|
-
}, _callee2);
|
|
101
|
-
}));
|
|
102
|
-
return _makeMetadataBatchIterator.apply(this, arguments);
|
|
103
|
-
};
|
|
104
|
-
makeMetadataBatchIterator = function _makeMetadataBatchIte(_x) {
|
|
105
|
-
return _makeMetadataBatchIterator.apply(this, arguments);
|
|
106
|
-
};
|
|
107
|
-
_context3.next = 4;
|
|
108
|
-
return parseToOutputIterator(loader, data, options, context);
|
|
109
|
-
case 4:
|
|
110
|
-
outputIterator = _context3.sent;
|
|
111
|
-
if (options.metadata) {
|
|
112
|
-
_context3.next = 7;
|
|
113
|
-
break;
|
|
114
|
-
}
|
|
115
|
-
return _context3.abrupt("return", outputIterator);
|
|
116
|
-
case 7:
|
|
117
|
-
metadataBatch = {
|
|
118
|
-
batchType: 'metadata',
|
|
119
|
-
metadata: {
|
|
120
|
-
_loader: loader,
|
|
121
|
-
_context: context
|
|
122
|
-
},
|
|
123
|
-
data: [],
|
|
124
|
-
bytesUsed: 0
|
|
125
|
-
};
|
|
126
|
-
return _context3.abrupt("return", makeMetadataBatchIterator(outputIterator));
|
|
127
|
-
case 9:
|
|
128
|
-
case "end":
|
|
129
|
-
return _context3.stop();
|
|
130
|
-
}
|
|
131
|
-
}, _callee3);
|
|
132
|
-
}));
|
|
133
|
-
return _parseWithLoaderInBatches.apply(this, arguments);
|
|
134
|
-
}
|
|
135
|
-
function parseToOutputIterator(_x10, _x11, _x12, _x13) {
|
|
136
|
-
return _parseToOutputIterator.apply(this, arguments);
|
|
137
|
-
}
|
|
138
|
-
function _parseToOutputIterator() {
|
|
139
|
-
_parseToOutputIterator = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(loader, data, options, context) {
|
|
140
|
-
var inputIterator, transformedIterator, parseChunkInBatches, _parseChunkInBatches;
|
|
141
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
142
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
143
|
-
case 0:
|
|
144
|
-
_parseChunkInBatches = function _parseChunkInBatches3() {
|
|
145
|
-
_parseChunkInBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee4() {
|
|
146
|
-
var arrayBuffer, parsedData, batch;
|
|
147
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
148
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
149
|
-
case 0:
|
|
150
|
-
_context4.next = 2;
|
|
151
|
-
return (0, _awaitAsyncGenerator2.default)((0, _loaderUtils.concatenateArrayBuffersAsync)(transformedIterator));
|
|
152
|
-
case 2:
|
|
153
|
-
arrayBuffer = _context4.sent;
|
|
154
|
-
_context4.next = 5;
|
|
155
|
-
return (0, _awaitAsyncGenerator2.default)((0, _parse.parse)(arrayBuffer, loader, _objectSpread(_objectSpread({}, options), {}, {
|
|
156
|
-
mimeType: loader.mimeTypes[0]
|
|
157
|
-
}), context));
|
|
158
|
-
case 5:
|
|
159
|
-
parsedData = _context4.sent;
|
|
160
|
-
batch = {
|
|
161
|
-
mimeType: loader.mimeTypes[0],
|
|
162
|
-
shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',
|
|
163
|
-
batchType: 'data',
|
|
164
|
-
data: parsedData,
|
|
165
|
-
length: Array.isArray(parsedData) ? parsedData.length : 1
|
|
166
|
-
};
|
|
167
|
-
_context4.next = 9;
|
|
168
|
-
return batch;
|
|
169
|
-
case 9:
|
|
170
|
-
case "end":
|
|
171
|
-
return _context4.stop();
|
|
172
|
-
}
|
|
173
|
-
}, _callee4);
|
|
174
|
-
}));
|
|
175
|
-
return _parseChunkInBatches.apply(this, arguments);
|
|
176
|
-
};
|
|
177
|
-
parseChunkInBatches = function _parseChunkInBatches2() {
|
|
178
|
-
return _parseChunkInBatches.apply(this, arguments);
|
|
179
|
-
};
|
|
180
|
-
_context5.next = 4;
|
|
181
|
-
return (0, _getData.getAsyncIterableFromData)(data, options);
|
|
182
|
-
case 4:
|
|
183
|
-
inputIterator = _context5.sent;
|
|
184
|
-
_context5.next = 7;
|
|
185
|
-
return applyInputTransforms(inputIterator, (options === null || options === void 0 ? void 0 : options.transforms) || []);
|
|
186
|
-
case 7:
|
|
187
|
-
transformedIterator = _context5.sent;
|
|
188
|
-
if (!loader.parseInBatches) {
|
|
189
|
-
_context5.next = 10;
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
return _context5.abrupt("return", loader.parseInBatches(transformedIterator, options, context));
|
|
193
|
-
case 10:
|
|
194
|
-
return _context5.abrupt("return", parseChunkInBatches());
|
|
195
|
-
case 11:
|
|
196
|
-
case "end":
|
|
197
|
-
return _context5.stop();
|
|
198
|
-
}
|
|
199
|
-
}, _callee5);
|
|
200
|
-
}));
|
|
201
|
-
return _parseToOutputIterator.apply(this, arguments);
|
|
202
|
-
}
|
|
203
|
-
function applyInputTransforms(_x14) {
|
|
204
|
-
return _applyInputTransforms.apply(this, arguments);
|
|
205
|
-
}
|
|
206
|
-
function _applyInputTransforms() {
|
|
207
|
-
_applyInputTransforms = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(inputIterator) {
|
|
208
|
-
var transforms,
|
|
209
|
-
iteratorChain,
|
|
210
|
-
_iteratorAbruptCompletion,
|
|
211
|
-
_didIteratorError,
|
|
212
|
-
_iteratorError,
|
|
213
|
-
_iterator,
|
|
214
|
-
_step,
|
|
215
|
-
transformBatches,
|
|
216
|
-
_args6 = arguments;
|
|
217
|
-
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
218
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
219
|
-
case 0:
|
|
220
|
-
transforms = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : [];
|
|
221
|
-
iteratorChain = inputIterator;
|
|
222
|
-
_iteratorAbruptCompletion = false;
|
|
223
|
-
_didIteratorError = false;
|
|
224
|
-
_context6.prev = 4;
|
|
225
|
-
_iterator = _asyncIterator(transforms);
|
|
226
|
-
case 6:
|
|
227
|
-
_context6.next = 8;
|
|
228
|
-
return _iterator.next();
|
|
229
|
-
case 8:
|
|
230
|
-
if (!(_iteratorAbruptCompletion = !(_step = _context6.sent).done)) {
|
|
231
|
-
_context6.next = 14;
|
|
232
|
-
break;
|
|
233
|
-
}
|
|
234
|
-
transformBatches = _step.value;
|
|
235
|
-
iteratorChain = transformBatches(iteratorChain);
|
|
236
|
-
case 11:
|
|
237
|
-
_iteratorAbruptCompletion = false;
|
|
238
|
-
_context6.next = 6;
|
|
239
|
-
break;
|
|
240
|
-
case 14:
|
|
241
|
-
_context6.next = 20;
|
|
242
|
-
break;
|
|
243
|
-
case 16:
|
|
244
|
-
_context6.prev = 16;
|
|
245
|
-
_context6.t0 = _context6["catch"](4);
|
|
246
|
-
_didIteratorError = true;
|
|
247
|
-
_iteratorError = _context6.t0;
|
|
248
|
-
case 20:
|
|
249
|
-
_context6.prev = 20;
|
|
250
|
-
_context6.prev = 21;
|
|
251
|
-
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
252
|
-
_context6.next = 25;
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
_context6.next = 25;
|
|
256
|
-
return _iterator.return();
|
|
257
|
-
case 25:
|
|
258
|
-
_context6.prev = 25;
|
|
259
|
-
if (!_didIteratorError) {
|
|
260
|
-
_context6.next = 28;
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
throw _iteratorError;
|
|
264
|
-
case 28:
|
|
265
|
-
return _context6.finish(25);
|
|
266
|
-
case 29:
|
|
267
|
-
return _context6.finish(20);
|
|
268
|
-
case 30:
|
|
269
|
-
return _context6.abrupt("return", iteratorChain);
|
|
270
|
-
case 31:
|
|
271
|
-
case "end":
|
|
272
|
-
return _context6.stop();
|
|
273
|
-
}
|
|
274
|
-
}, _callee6, null, [[4, 16, 20, 30], [21,, 25, 29]]);
|
|
275
|
-
}));
|
|
276
|
-
return _applyInputTransforms.apply(this, arguments);
|
|
82
|
+
async function applyInputTransforms(inputIterator) {
|
|
83
|
+
let transforms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
84
|
+
let iteratorChain = inputIterator;
|
|
85
|
+
for await (const transformBatches of transforms) {
|
|
86
|
+
iteratorChain = transformBatches(iteratorChain);
|
|
87
|
+
}
|
|
88
|
+
return iteratorChain;
|
|
277
89
|
}
|
|
278
90
|
//# sourceMappingURL=parse-in-batches.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-in-batches.js","names":["_loaderUtils","require","_normalizeLoader","_optionUtils","_loaderContext","_getData","_resourceUtils","_selectLoader","_parse","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","parseInBatches","_x2","_x3","_x4","_x5","_parseInBatches","_asyncToGenerator2","_regenerator","mark","_callee","data","loaders","options","context","loaderArray","url","loader","wrap","_callee$","_context","prev","assert","_typeof2","Array","isArray","undefined","isLoaderObject","sent","getResourceUrl","selectLoader","abrupt","normalizeOptions","getLoaderContext","parse","parseWithLoaderInBatches","stop","_x6","_x7","_x8","_x9","_parseWithLoaderInBatches","_callee3","outputIterator","metadataBatch","makeMetadataBatchIterator","_makeMetadataBatchIterator","_callee3$","_context3","_makeMetadataBatchIte2","_wrapAsyncGenerator2","_callee2","_callee2$","_context2","delegateYield","_asyncGeneratorDelegate2","_awaitAsyncGenerator2","_makeMetadataBatchIte","_x","parseToOutputIterator","metadata","batchType","_loader","bytesUsed","_x10","_x11","_x12","_x13","_parseToOutputIterator","_callee5","inputIterator","transformedIterator","parseChunkInBatches","_parseChunkInBatches","_callee5$","_context5","_parseChunkInBatches3","_callee4","arrayBuffer","parsedData","batch","_callee4$","_context4","concatenateArrayBuffersAsync","mimeType","mimeTypes","shape","_parseChunkInBatches2","getAsyncIterableFromData","applyInputTransforms","transforms","_x14","_applyInputTransforms","_callee6","iteratorChain","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","transformBatches","_args6","_callee6$","_context6","t0","finish"],"sources":["../../../../src/lib/api/parse-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {\n BatchableDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n const loaderArray = Array.isArray(loaders) ? loaders : undefined;\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\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 data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader | Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, loaderArray, url);\n context = getLoaderContext(\n {url, parseInBatches, parse, loaders: loaderArray},\n options,\n context || null\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-in-batches.js","names":["_loaderUtils","require","_normalizeLoader","_optionUtils","_loaderContext","_getData","_resourceUtils","_selectLoader","_parse","parseInBatches","data","loaders","options","context","assert","loaderArray","Array","isArray","undefined","isLoaderObject","url","getResourceUrl","loader","selectLoader","normalizeOptions","getLoaderContext","parse","parseWithLoaderInBatches","outputIterator","parseToOutputIterator","metadata","metadataBatch","batchType","_loader","_context","bytesUsed","makeMetadataBatchIterator","iterator","inputIterator","getAsyncIterableFromData","transformedIterator","applyInputTransforms","transforms","parseChunkInBatches","arrayBuffer","concatenateArrayBuffersAsync","parsedData","mimeType","mimeTypes","batch","shape","length","arguments","iteratorChain","transformBatches"],"sources":["../../../../src/lib/api/parse-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {\n BatchableDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrl} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n const loaderArray = Array.isArray(loaders) ? loaders : undefined;\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\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 data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader | Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, loaderArray, url);\n context = getLoaderContext(\n {url, parseInBatches, parse, loaders: loaderArray},\n options,\n context || null\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.parseSync = parseSync;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
7
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
10
8
|
var _selectLoader = require("./select-loader");
|
|
11
9
|
var _normalizeLoader = require("../loader-utils/normalize-loader");
|
|
@@ -14,28 +12,28 @@ var _getData = require("../loader-utils/get-data");
|
|
|
14
12
|
var _loaderContext = require("../loader-utils/loader-context");
|
|
15
13
|
var _resourceUtils = require("../utils/resource-utils");
|
|
16
14
|
function parseSync(data, loaders, options, context) {
|
|
17
|
-
(0, _loaderUtils.assert)(!context ||
|
|
15
|
+
(0, _loaderUtils.assert)(!context || typeof context === 'object');
|
|
18
16
|
if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
|
|
19
17
|
context = undefined;
|
|
20
18
|
options = loaders;
|
|
21
19
|
loaders = undefined;
|
|
22
20
|
}
|
|
23
21
|
options = options || {};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
const typedLoaders = loaders;
|
|
23
|
+
const candidateLoaders = (0, _loaderContext.getLoadersFromContext)(typedLoaders, context);
|
|
24
|
+
const loader = (0, _selectLoader.selectLoaderSync)(data, candidateLoaders, options);
|
|
27
25
|
if (!loader) {
|
|
28
26
|
return null;
|
|
29
27
|
}
|
|
30
28
|
options = (0, _optionUtils.normalizeOptions)(options, loader, candidateLoaders);
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const url = (0, _resourceUtils.getResourceUrl)(data);
|
|
30
|
+
const parse = () => {
|
|
33
31
|
throw new Error('parseSync called parse (which is async');
|
|
34
32
|
};
|
|
35
33
|
context = (0, _loaderContext.getLoaderContext)({
|
|
36
|
-
url
|
|
37
|
-
parseSync
|
|
38
|
-
parse
|
|
34
|
+
url,
|
|
35
|
+
parseSync,
|
|
36
|
+
parse,
|
|
39
37
|
loaders: loaders
|
|
40
38
|
}, options, context || null);
|
|
41
39
|
return parseWithLoaderSync(loader, data, options, context);
|