@loaders.gl/core 3.2.0-alpha.2 → 3.2.0
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 +23 -6
- package/dist/es5/lib/api/parse.js +36 -17
- package/dist/es5/lib/api/parse.js.map +1 -1
- package/dist/es5/lib/init.js +1 -1
- package/dist/es5/lib/init.js.map +1 -1
- package/dist/es5/null-loader.js +22 -11
- package/dist/es5/null-loader.js.map +1 -1
- package/dist/esm/lib/api/parse.js +24 -0
- package/dist/esm/lib/api/parse.js.map +1 -1
- package/dist/esm/lib/init.js +1 -1
- package/dist/esm/lib/init.js.map +1 -1
- package/dist/esm/null-loader.js +19 -6
- package/dist/esm/null-loader.js.map +1 -1
- package/dist/lib/api/parse.d.ts.map +1 -1
- package/dist/lib/api/parse.js +8 -0
- package/dist/null-loader.d.ts.map +1 -1
- package/dist/null-loader.js +17 -5
- package/dist/null-worker.js +16 -7
- package/package.json +4 -4
- package/src/lib/api/parse.ts +9 -0
- package/src/null-loader.ts +17 -5
package/dist/dist.min.js
CHANGED
|
@@ -672,10 +672,12 @@
|
|
|
672
672
|
const workerFarm = WorkerFarm.getWorkerFarm(options);
|
|
673
673
|
const workerPool = workerFarm.getWorkerPool({ name, url });
|
|
674
674
|
options = JSON.parse(JSON.stringify(options));
|
|
675
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
675
676
|
const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
|
|
676
677
|
job.postMessage("process", {
|
|
677
678
|
input: data,
|
|
678
|
-
options
|
|
679
|
+
options,
|
|
680
|
+
context
|
|
679
681
|
});
|
|
680
682
|
const result = await job.result;
|
|
681
683
|
return await result.result;
|
|
@@ -3604,6 +3606,12 @@
|
|
|
3604
3606
|
}
|
|
3605
3607
|
async function parseWithLoader(loader, data, options, context) {
|
|
3606
3608
|
validateWorkerVersion(loader);
|
|
3609
|
+
if (isResponse(data)) {
|
|
3610
|
+
const response = data;
|
|
3611
|
+
const { ok, redirected, status, statusText, type, url } = response;
|
|
3612
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
3613
|
+
context.response = { headers, ok, redirected, status, statusText, type, url };
|
|
3614
|
+
}
|
|
3607
3615
|
data = await getArrayBufferOrStringFromData(data, loader, options);
|
|
3608
3616
|
if (loader.parseTextSync && typeof data === "string") {
|
|
3609
3617
|
options.dataType = "text";
|
|
@@ -3626,6 +3634,7 @@
|
|
|
3626
3634
|
init_src();
|
|
3627
3635
|
init_src2();
|
|
3628
3636
|
init_normalize_loader();
|
|
3637
|
+
init_is_type();
|
|
3629
3638
|
init_option_utils();
|
|
3630
3639
|
init_get_data();
|
|
3631
3640
|
init_loader_context();
|
|
@@ -3946,6 +3955,12 @@
|
|
|
3946
3955
|
});
|
|
3947
3956
|
|
|
3948
3957
|
// src/null-loader.ts
|
|
3958
|
+
function parseSync2(arrayBuffer, options, context) {
|
|
3959
|
+
if (!options.null.echoParameters)
|
|
3960
|
+
return null;
|
|
3961
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
3962
|
+
return { arrayBuffer, options, context };
|
|
3963
|
+
}
|
|
3949
3964
|
var VERSION6, NullWorkerLoader, NullLoader;
|
|
3950
3965
|
var init_null_loader = __esm({
|
|
3951
3966
|
"src/null-loader.ts"() {
|
|
@@ -3970,16 +3985,18 @@
|
|
|
3970
3985
|
version: VERSION6,
|
|
3971
3986
|
mimeTypes: ["application/x.empty"],
|
|
3972
3987
|
extensions: ["null"],
|
|
3973
|
-
parse: async (arrayBuffer) => arrayBuffer,
|
|
3974
|
-
parseSync:
|
|
3975
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
3988
|
+
parse: async (arrayBuffer, options, context) => parseSync2(arrayBuffer, options, context),
|
|
3989
|
+
parseSync: parseSync2,
|
|
3990
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
3976
3991
|
for await (const batch of asyncIterator) {
|
|
3977
|
-
yield batch;
|
|
3992
|
+
yield parseSync2(batch, options, context);
|
|
3978
3993
|
}
|
|
3979
3994
|
},
|
|
3980
3995
|
tests: [() => false],
|
|
3981
3996
|
options: {
|
|
3982
|
-
null: {
|
|
3997
|
+
null: {
|
|
3998
|
+
echoParameters: false
|
|
3999
|
+
}
|
|
3983
4000
|
}
|
|
3984
4001
|
};
|
|
3985
4002
|
}
|
|
@@ -19,6 +19,8 @@ var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
|
19
19
|
|
|
20
20
|
var _normalizeLoader = require("../loader-utils/normalize-loader");
|
|
21
21
|
|
|
22
|
+
var _isType = require("../../javascript-utils/is-type");
|
|
23
|
+
|
|
22
24
|
var _optionUtils = require("../loader-utils/option-utils");
|
|
23
25
|
|
|
24
26
|
var _getData = require("../loader-utils/get-data");
|
|
@@ -100,66 +102,83 @@ function parseWithLoader(_x5, _x6, _x7, _x8) {
|
|
|
100
102
|
|
|
101
103
|
function _parseWithLoader() {
|
|
102
104
|
_parseWithLoader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(loader, data, options, context) {
|
|
105
|
+
var response, ok, redirected, status, statusText, type, url, headers;
|
|
103
106
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
104
107
|
while (1) {
|
|
105
108
|
switch (_context2.prev = _context2.next) {
|
|
106
109
|
case 0:
|
|
107
110
|
(0, _workerUtils.validateWorkerVersion)(loader);
|
|
108
|
-
|
|
111
|
+
|
|
112
|
+
if ((0, _isType.isResponse)(data)) {
|
|
113
|
+
response = data;
|
|
114
|
+
ok = response.ok, redirected = response.redirected, status = response.status, statusText = response.statusText, type = response.type, url = response.url;
|
|
115
|
+
headers = Object.fromEntries(response.headers.entries());
|
|
116
|
+
context.response = {
|
|
117
|
+
headers: headers,
|
|
118
|
+
ok: ok,
|
|
119
|
+
redirected: redirected,
|
|
120
|
+
status: status,
|
|
121
|
+
statusText: statusText,
|
|
122
|
+
type: type,
|
|
123
|
+
url: url
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
_context2.next = 4;
|
|
109
128
|
return (0, _getData.getArrayBufferOrStringFromData)(data, loader, options);
|
|
110
129
|
|
|
111
|
-
case
|
|
130
|
+
case 4:
|
|
112
131
|
data = _context2.sent;
|
|
113
132
|
|
|
114
133
|
if (!(loader.parseTextSync && typeof data === 'string')) {
|
|
115
|
-
_context2.next =
|
|
134
|
+
_context2.next = 8;
|
|
116
135
|
break;
|
|
117
136
|
}
|
|
118
137
|
|
|
119
138
|
options.dataType = 'text';
|
|
120
139
|
return _context2.abrupt("return", loader.parseTextSync(data, options, context, loader));
|
|
121
140
|
|
|
122
|
-
case
|
|
141
|
+
case 8:
|
|
123
142
|
if (!(0, _loaderUtils.canParseWithWorker)(loader, options)) {
|
|
124
|
-
_context2.next =
|
|
143
|
+
_context2.next = 12;
|
|
125
144
|
break;
|
|
126
145
|
}
|
|
127
146
|
|
|
128
|
-
_context2.next =
|
|
147
|
+
_context2.next = 11;
|
|
129
148
|
return (0, _loaderUtils.parseWithWorker)(loader, data, options, context, parse);
|
|
130
149
|
|
|
131
|
-
case
|
|
150
|
+
case 11:
|
|
132
151
|
return _context2.abrupt("return", _context2.sent);
|
|
133
152
|
|
|
134
|
-
case
|
|
153
|
+
case 12:
|
|
135
154
|
if (!(loader.parseText && typeof data === 'string')) {
|
|
136
|
-
_context2.next =
|
|
155
|
+
_context2.next = 16;
|
|
137
156
|
break;
|
|
138
157
|
}
|
|
139
158
|
|
|
140
|
-
_context2.next =
|
|
159
|
+
_context2.next = 15;
|
|
141
160
|
return loader.parseText(data, options, context, loader);
|
|
142
161
|
|
|
143
|
-
case
|
|
162
|
+
case 15:
|
|
144
163
|
return _context2.abrupt("return", _context2.sent);
|
|
145
164
|
|
|
146
|
-
case
|
|
165
|
+
case 16:
|
|
147
166
|
if (!loader.parse) {
|
|
148
|
-
_context2.next =
|
|
167
|
+
_context2.next = 20;
|
|
149
168
|
break;
|
|
150
169
|
}
|
|
151
170
|
|
|
152
|
-
_context2.next =
|
|
171
|
+
_context2.next = 19;
|
|
153
172
|
return loader.parse(data, options, context, loader);
|
|
154
173
|
|
|
155
|
-
case
|
|
174
|
+
case 19:
|
|
156
175
|
return _context2.abrupt("return", _context2.sent);
|
|
157
176
|
|
|
158
|
-
case
|
|
177
|
+
case 20:
|
|
159
178
|
(0, _workerUtils.assert)(!loader.parseSync);
|
|
160
179
|
throw new Error("".concat(loader.id, " loader - no parser found and worker is disabled"));
|
|
161
180
|
|
|
162
|
-
case
|
|
181
|
+
case 22:
|
|
163
182
|
case "end":
|
|
164
183
|
return _context2.stop();
|
|
165
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/api/parse.ts"],"names":["parse","data","loaders","options","context","Array","isArray","undefined","url","typedLoaders","candidateLoaders","loader","parseWithLoader","parseTextSync","dataType","parseText","parseSync","Error","id"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;SASsBA,K;;;;;qEAAf,iBACLC,IADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK;AAAA;;AAAA;AAAA;AAAA;AAAA;AAML,qCAAO,CAACA,OAAD,IAAY,sBAAOA,OAAP,MAAmB,QAAtC;;AAIA,gBAAIF,OAAO,IAAI,CAACG,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAZ,IAAsC,CAAC,qCAAeA,OAAf,CAA3C,EAAoE;AAClEE,cAAAA,OAAO,GAAGG,SAAV;AACAJ,cAAAA,OAAO,GAAGD,OAAV;AACAA,cAAAA,OAAO,GAAGK,SAAV;AACD;;AAdI;AAAA,mBAgBQN,IAhBR;;AAAA;AAgBLA,YAAAA,IAhBK;AAiBLE,YAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;AAjBK,oCAoBS,0CAAsBF,IAAtB,CApBT,EAoBEO,GApBF,yBAoBEA,GApBF;AAwBCC,YAAAA,YAxBD,GAwBgBP,OAxBhB;AAyBCQ,YAAAA,gBAzBD,GAyBoB,0CAAsBD,YAAtB,EAAoCL,OAApC,CAzBpB;AAAA;AAAA,mBA2BgB,gCAAaH,IAAb,EAAkCS,gBAAlC,EAAoDP,OAApD,CA3BhB;;AAAA;AA2BCQ,YAAAA,MA3BD;;AAAA,gBA6BAA,MA7BA;AAAA;AAAA;AAAA;;AAAA,6CA8BI,IA9BJ;;AAAA;AAkCLR,YAAAA,OAAO,GAAG,mCAAiBA,OAAjB,EAA0BQ,MAA1B,EAAkCD,gBAAlC,EAAoDF,GAApD,CAAV;AAGAJ,YAAAA,OAAO,GAAG,qCAAiB;AAACI,cAAAA,GAAG,EAAHA,GAAD;AAAMR,cAAAA,KAAK,EAALA,KAAN;AAAaE,cAAAA,OAAO,EAAEQ;AAAtB,aAAjB,EAA0DP,OAA1D,EAAmEC,OAAnE,CAAV;AArCK;AAAA,mBAuCQQ,eAAe,CAACD,MAAD,EAASV,IAAT,EAAeE,OAAf,EAAwBC,OAAxB,CAvCvB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SA4CQQ,e;;;;;+EAAf,kBAA+BD,MAA/B,EAAuCV,IAAvC,EAA6CE,OAA7C,EAAsDC,OAAtD;AAAA;AAAA;AAAA;AAAA;AACE,oDAAsBO,MAAtB;
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api/parse.ts"],"names":["parse","data","loaders","options","context","Array","isArray","undefined","url","typedLoaders","candidateLoaders","loader","parseWithLoader","response","ok","redirected","status","statusText","type","headers","Object","fromEntries","entries","parseTextSync","dataType","parseText","parseSync","Error","id"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;SASsBA,K;;;;;qEAAf,iBACLC,IADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK;AAAA;;AAAA;AAAA;AAAA;AAAA;AAML,qCAAO,CAACA,OAAD,IAAY,sBAAOA,OAAP,MAAmB,QAAtC;;AAIA,gBAAIF,OAAO,IAAI,CAACG,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAZ,IAAsC,CAAC,qCAAeA,OAAf,CAA3C,EAAoE;AAClEE,cAAAA,OAAO,GAAGG,SAAV;AACAJ,cAAAA,OAAO,GAAGD,OAAV;AACAA,cAAAA,OAAO,GAAGK,SAAV;AACD;;AAdI;AAAA,mBAgBQN,IAhBR;;AAAA;AAgBLA,YAAAA,IAhBK;AAiBLE,YAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;AAjBK,oCAoBS,0CAAsBF,IAAtB,CApBT,EAoBEO,GApBF,yBAoBEA,GApBF;AAwBCC,YAAAA,YAxBD,GAwBgBP,OAxBhB;AAyBCQ,YAAAA,gBAzBD,GAyBoB,0CAAsBD,YAAtB,EAAoCL,OAApC,CAzBpB;AAAA;AAAA,mBA2BgB,gCAAaH,IAAb,EAAkCS,gBAAlC,EAAoDP,OAApD,CA3BhB;;AAAA;AA2BCQ,YAAAA,MA3BD;;AAAA,gBA6BAA,MA7BA;AAAA;AAAA;AAAA;;AAAA,6CA8BI,IA9BJ;;AAAA;AAkCLR,YAAAA,OAAO,GAAG,mCAAiBA,OAAjB,EAA0BQ,MAA1B,EAAkCD,gBAAlC,EAAoDF,GAApD,CAAV;AAGAJ,YAAAA,OAAO,GAAG,qCAAiB;AAACI,cAAAA,GAAG,EAAHA,GAAD;AAAMR,cAAAA,KAAK,EAALA,KAAN;AAAaE,cAAAA,OAAO,EAAEQ;AAAtB,aAAjB,EAA0DP,OAA1D,EAAmEC,OAAnE,CAAV;AArCK;AAAA,mBAuCQQ,eAAe,CAACD,MAAD,EAASV,IAAT,EAAeE,OAAf,EAAwBC,OAAxB,CAvCvB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SA4CQQ,e;;;;;+EAAf,kBAA+BD,MAA/B,EAAuCV,IAAvC,EAA6CE,OAA7C,EAAsDC,OAAtD;AAAA;AAAA;AAAA;AAAA;AAAA;AACE,oDAAsBO,MAAtB;;AAEA,gBAAI,wBAAWV,IAAX,CAAJ,EAAsB;AAEdY,cAAAA,QAFc,GAEHZ,IAFG;AAGba,cAAAA,EAHa,GAGoCD,QAHpC,CAGbC,EAHa,EAGTC,UAHS,GAGoCF,QAHpC,CAGTE,UAHS,EAGGC,MAHH,GAGoCH,QAHpC,CAGGG,MAHH,EAGWC,UAHX,GAGoCJ,QAHpC,CAGWI,UAHX,EAGuBC,IAHvB,GAGoCL,QAHpC,CAGuBK,IAHvB,EAG6BV,GAH7B,GAGoCK,QAHpC,CAG6BL,GAH7B;AAIdW,cAAAA,OAJc,GAIJC,MAAM,CAACC,WAAP,CAAmBR,QAAQ,CAACM,OAAT,CAAiBG,OAAjB,EAAnB,CAJI;AAKpBlB,cAAAA,OAAO,CAACS,QAAR,GAAmB;AAACM,gBAAAA,OAAO,EAAPA,OAAD;AAAUL,gBAAAA,EAAE,EAAFA,EAAV;AAAcC,gBAAAA,UAAU,EAAVA,UAAd;AAA0BC,gBAAAA,MAAM,EAANA,MAA1B;AAAkCC,gBAAAA,UAAU,EAAVA,UAAlC;AAA8CC,gBAAAA,IAAI,EAAJA,IAA9C;AAAoDV,gBAAAA,GAAG,EAAHA;AAApD,eAAnB;AACD;;AATH;AAAA,mBAWe,6CAA+BP,IAA/B,EAAqCU,MAArC,EAA6CR,OAA7C,CAXf;;AAAA;AAWEF,YAAAA,IAXF;;AAAA,kBAcMU,MAAM,CAACY,aAAP,IAAwB,OAAOtB,IAAP,KAAgB,QAd9C;AAAA;AAAA;AAAA;;AAeIE,YAAAA,OAAO,CAACqB,QAAR,GAAmB,MAAnB;AAfJ,8CAgBWb,MAAM,CAACY,aAAP,CAAqBtB,IAArB,EAA2BE,OAA3B,EAAoCC,OAApC,EAA6CO,MAA7C,CAhBX;;AAAA;AAAA,iBAoBM,qCAAmBA,MAAnB,EAA2BR,OAA3B,CApBN;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAqBiB,kCAAgBQ,MAAhB,EAAwBV,IAAxB,EAA8BE,OAA9B,EAAuCC,OAAvC,EAAgDJ,KAAhD,CArBjB;;AAAA;AAAA;;AAAA;AAAA,kBAyBMW,MAAM,CAACc,SAAP,IAAoB,OAAOxB,IAAP,KAAgB,QAzB1C;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA0BiBU,MAAM,CAACc,SAAP,CAAiBxB,IAAjB,EAAuBE,OAAvB,EAAgCC,OAAhC,EAAyCO,MAAzC,CA1BjB;;AAAA;AAAA;;AAAA;AAAA,iBA6BMA,MAAM,CAACX,KA7Bb;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA8BiBW,MAAM,CAACX,KAAP,CAAaC,IAAb,EAAmBE,OAAnB,EAA4BC,OAA5B,EAAqCO,MAArC,CA9BjB;;AAAA;AAAA;;AAAA;AAkCE,qCAAO,CAACA,MAAM,CAACe,SAAf;AAlCF,kBAqCQ,IAAIC,KAAJ,WAAahB,MAAM,CAACiB,EAApB,sDArCR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';\nimport {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {isResponse} from '../../javascript-utils/is-type';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromData} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\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 parse(\n data: DataType | Promise<DataType>,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any> {\n assert(!context || typeof context === 'object'); // parse no longer accepts final url\n\n // Signature: parse(data, options, context | url)\n // Uses registered loaders\n if (loaders && !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} = getResourceUrlAndType(data);\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n // todo hacky type cast\n const loader = await selectLoader(data as ArrayBuffer, candidateLoaders, options);\n // Note: if no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders, url);\n\n // Get a context (if already present, will be unchanged)\n context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context);\n\n return await parseWithLoader(loader, data, options, context);\n}\n\n// TODO: support progress and abort\n// TODO - should accept loader.parseAsyncIterator and concatenate.\nasync function parseWithLoader(loader, data, options, context) {\n validateWorkerVersion(loader);\n\n if (isResponse(data)) {\n // Serialize to support passing the response to web worker\n const response = data as Response;\n const {ok, redirected, status, statusText, type, url} = response;\n const headers = Object.fromEntries(response.headers.entries());\n context.response = {headers, ok, redirected, status, statusText, type, url};\n }\n\n data = await getArrayBufferOrStringFromData(data, loader, options);\n\n // First check for synchronous text parser, wrap results in promises\n if (loader.parseTextSync && typeof data === 'string') {\n options.dataType = 'text';\n return loader.parseTextSync(data, options, context, loader);\n }\n\n // If we have a workerUrl and the loader can parse the given options efficiently in a worker\n if (canParseWithWorker(loader, options)) {\n return await parseWithWorker(loader, data, options, context, parse);\n }\n\n // Check for asynchronous parser\n if (loader.parseText && typeof data === 'string') {\n return await loader.parseText(data, options, context, loader);\n }\n\n if (loader.parse) {\n return await loader.parse(data, options, context, loader);\n }\n\n // This should not happen, all sync loaders should also offer `parse` function\n assert(!loader.parseSync);\n\n // TBD - If asynchronous parser not available, return null\n throw new Error(`${loader.id} loader - no parser found and worker is disabled`);\n}\n"],"file":"parse.js"}
|
package/dist/es5/lib/init.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _log = require("./utils/log");
|
|
9
9
|
|
|
10
|
-
var version = typeof "3.2.0
|
|
10
|
+
var version = typeof "3.2.0" !== 'undefined' ? "3.2.0" : '';
|
|
11
11
|
|
|
12
12
|
if (!globalThis.loaders) {
|
|
13
13
|
_log.log.log(1, "loaders.gl ".concat(version))();
|
package/dist/es5/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/init.ts"],"names":["version","globalThis","loaders","log","Object","assign","VERSION"],"mappings":";;;;;;;AACA;;AAGA,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/init.ts"],"names":["version","globalThis","loaders","log","Object","assign","VERSION"],"mappings":";;;;;;;AACA;;AAGA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,EAAnE;;AAGA,IAAI,CAACC,UAAU,CAACC,OAAhB,EAAyB;AACvBC,WAAIA,GAAJ,CAAQ,CAAR,uBAAyBH,OAAzB;;AAEAC,EAAAA,UAAU,CAACC,OAAX,GAAqBE,MAAM,CAACC,MAAP,CAAcJ,UAAU,CAACC,OAAX,IAAsB,EAApC,EAAwC;AAC3DI,IAAAA,OAAO,EAAEN,OADkD;AAE3DG,IAAAA,GAAG,EAAHA;AAF2D,GAAxC,CAArB;AAID;;eAEcF,UAAU,CAACC,O","sourcesContent":["// loaders.gl, MIT license\nimport {log} from './utils/log';\n\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';\n\n// @ts-ignore\nif (!globalThis.loaders) {\n log.log(1, `loaders.gl ${version}`)();\n\n globalThis.loaders = Object.assign(globalThis.loaders || {}, {\n VERSION: version,\n log\n });\n}\n// @ts-ignore\nexport default globalThis.loaders;\n"],"file":"init.js"}
|
package/dist/es5/null-loader.js
CHANGED
|
@@ -17,7 +17,7 @@ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helper
|
|
|
17
17
|
|
|
18
18
|
var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
|
|
19
19
|
|
|
20
|
-
var VERSION = typeof "3.2.0
|
|
20
|
+
var VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
21
21
|
var NullWorkerLoader = {
|
|
22
22
|
name: 'Null loader',
|
|
23
23
|
id: 'null',
|
|
@@ -34,6 +34,17 @@ var NullWorkerLoader = {
|
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
36
|
exports.NullWorkerLoader = NullWorkerLoader;
|
|
37
|
+
|
|
38
|
+
function parseSync(arrayBuffer, options, context) {
|
|
39
|
+
if (!options.null.echoParameters) return null;
|
|
40
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
41
|
+
return {
|
|
42
|
+
arrayBuffer: arrayBuffer,
|
|
43
|
+
options: options,
|
|
44
|
+
context: context
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
37
48
|
var NullLoader = {
|
|
38
49
|
name: 'Null loader',
|
|
39
50
|
id: 'null',
|
|
@@ -42,12 +53,12 @@ var NullLoader = {
|
|
|
42
53
|
mimeTypes: ['application/x.empty'],
|
|
43
54
|
extensions: ['null'],
|
|
44
55
|
parse: function () {
|
|
45
|
-
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer) {
|
|
56
|
+
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options, context) {
|
|
46
57
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
47
58
|
while (1) {
|
|
48
59
|
switch (_context.prev = _context.next) {
|
|
49
60
|
case 0:
|
|
50
|
-
return _context.abrupt("return", arrayBuffer);
|
|
61
|
+
return _context.abrupt("return", parseSync(arrayBuffer, options, context));
|
|
51
62
|
|
|
52
63
|
case 1:
|
|
53
64
|
case "end":
|
|
@@ -57,17 +68,15 @@ var NullLoader = {
|
|
|
57
68
|
}, _callee);
|
|
58
69
|
}));
|
|
59
70
|
|
|
60
|
-
function parse(
|
|
71
|
+
function parse(_x4, _x5, _x6) {
|
|
61
72
|
return _parse.apply(this, arguments);
|
|
62
73
|
}
|
|
63
74
|
|
|
64
75
|
return parse;
|
|
65
76
|
}(),
|
|
66
|
-
parseSync:
|
|
67
|
-
return arrayBuffer;
|
|
68
|
-
},
|
|
77
|
+
parseSync: parseSync,
|
|
69
78
|
parseInBatches: function () {
|
|
70
|
-
var _generator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2(asyncIterator) {
|
|
79
|
+
var _generator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2(asyncIterator, options, context) {
|
|
71
80
|
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, batch;
|
|
72
81
|
|
|
73
82
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
@@ -99,7 +108,7 @@ var NullLoader = {
|
|
|
99
108
|
|
|
100
109
|
batch = _value;
|
|
101
110
|
_context2.next = 15;
|
|
102
|
-
return batch;
|
|
111
|
+
return parseSync(batch, options, context);
|
|
103
112
|
|
|
104
113
|
case 15:
|
|
105
114
|
_iteratorNormalCompletion = true;
|
|
@@ -152,7 +161,7 @@ var NullLoader = {
|
|
|
152
161
|
}, _callee2, null, [[2, 20, 24, 34], [25,, 29, 33]]);
|
|
153
162
|
}));
|
|
154
163
|
|
|
155
|
-
function generator(_x) {
|
|
164
|
+
function generator(_x, _x2, _x3) {
|
|
156
165
|
return _generator.apply(this, arguments);
|
|
157
166
|
}
|
|
158
167
|
|
|
@@ -162,7 +171,9 @@ var NullLoader = {
|
|
|
162
171
|
return false;
|
|
163
172
|
}],
|
|
164
173
|
options: {
|
|
165
|
-
null: {
|
|
174
|
+
null: {
|
|
175
|
+
echoParameters: false
|
|
176
|
+
}
|
|
166
177
|
}
|
|
167
178
|
};
|
|
168
179
|
exports.NullLoader = NullLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/null-loader.ts"],"names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","
|
|
1
|
+
{"version":3,"sources":["../../src/null-loader.ts"],"names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","parseSync","arrayBuffer","context","echoParameters","JSON","parse","stringify","NullLoader","parseInBatches","asyncIterator","batch","generator"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAOO,IAAMC,gBAAwB,GAAG;AACtCC,EAAAA,IAAI,EAAE,aADgC;AAEtCC,EAAAA,EAAE,EAAE,MAFkC;AAGtCC,EAAAA,MAAM,EAAE,MAH8B;AAItCC,EAAAA,OAAO,EAAEL,OAJ6B;AAKtCM,EAAAA,MAAM,EAAE,IAL8B;AAMtCC,EAAAA,SAAS,EAAE,CAAC,qBAAD,CAN2B;AAOtCC,EAAAA,UAAU,EAAE,CAAC,MAAD,CAP0B;AAQtCC,EAAAA,KAAK,EAAE,CAAC;AAAA,WAAM,KAAN;AAAA,GAAD,CAR+B;AAStCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AAT6B,CAAjC;;;AAkBP,SAASC,SAAT,CAAmBC,WAAnB,EAAgCH,OAAhC,EAAyCI,OAAzC,EAAkD;AAChD,MAAI,CAACJ,OAAO,CAACC,IAAR,CAAaI,cAAlB,EAAkC,OAAO,IAAP;AAClCD,EAAAA,OAAO,GAAGA,OAAO,IAAIE,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeJ,OAAf,CAAX,CAArB;AACA,SAAO;AAACD,IAAAA,WAAW,EAAXA,WAAD;AAAcH,IAAAA,OAAO,EAAPA,OAAd;AAAuBI,IAAAA,OAAO,EAAPA;AAAvB,GAAP;AACD;;AAKM,IAAMK,UAA4B,GAAG;AAC1CjB,EAAAA,IAAI,EAAE,aADoC;AAE1CC,EAAAA,EAAE,EAAE,MAFsC;AAG1CC,EAAAA,MAAM,EAAE,MAHkC;AAI1CC,EAAAA,OAAO,EAAEL,OAJiC;AAK1CO,EAAAA,SAAS,EAAE,CAAC,qBAAD,CAL+B;AAM1CC,EAAAA,UAAU,EAAE,CAAC,MAAD,CAN8B;AAO1CS,EAAAA,KAAK;AAAA,2EAAE,iBAAOJ,WAAP,EAAoBH,OAApB,EAA6BI,OAA7B;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAyCF,SAAS,CAACC,WAAD,EAAcH,OAAd,EAAuBI,OAAvB,CAAlD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAPqC;AAQ1CF,EAAAA,SAAS,EAATA,SAR0C;AAS1CQ,EAAAA,cAAc;AAAA,iFAAE,kBAA0BC,aAA1B,EAAyCX,OAAzC,EAAkDI,OAAlD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uDACYO,aADZ;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AACGC,cAAAA,KADH;AAAA;AAEZ,qBAAMV,SAAS,CAACU,KAAD,EAAQZ,OAAR,EAAiBI,OAAjB,CAAf;;AAFY;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA,aAAkBS,SAAlB;AAAA;AAAA;;AAAA,WAAkBA,SAAlB;AAAA,KAT4B;AAc1Cd,EAAAA,KAAK,EAAE,CAAC;AAAA,WAAM,KAAN;AAAA,GAAD,CAdmC;AAe1CC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AACJI,MAAAA,cAAc,EAAE;AADZ;AADC;AAfiC,CAArC","sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullWorkerLoader: Loader = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n worker: true,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n tests: [() => false],\n options: {\n null: {}\n }\n};\n\n/**\n * Returns arguments passed to the parse API in a format that can be transfered to a\n * web worker. The `context` parameter is stripped using JSON.stringify & parse.\n */\nfunction parseSync(arrayBuffer, options, context) {\n if (!options.null.echoParameters) return null;\n context = context && JSON.parse(JSON.stringify(context));\n return {arrayBuffer, options, context};\n}\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullLoader: LoaderWithParser = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),\n parseSync,\n parseInBatches: async function* generator(asyncIterator, options, context) {\n for await (const batch of asyncIterator) {\n yield parseSync(batch, options, context);\n }\n },\n tests: [() => false],\n options: {\n null: {\n echoParameters: false\n }\n }\n};\n"],"file":"null-loader.js"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { assert, validateWorkerVersion } from '@loaders.gl/worker-utils';
|
|
2
2
|
import { parseWithWorker, canParseWithWorker } from '@loaders.gl/loader-utils';
|
|
3
3
|
import { isLoaderObject } from '../loader-utils/normalize-loader';
|
|
4
|
+
import { isResponse } from '../../javascript-utils/is-type';
|
|
4
5
|
import { normalizeOptions } from '../loader-utils/option-utils';
|
|
5
6
|
import { getArrayBufferOrStringFromData } from '../loader-utils/get-data';
|
|
6
7
|
import { getLoaderContext, getLoadersFromContext } from '../loader-utils/loader-context';
|
|
@@ -39,6 +40,29 @@ export async function parse(data, loaders, options, context) {
|
|
|
39
40
|
|
|
40
41
|
async function parseWithLoader(loader, data, options, context) {
|
|
41
42
|
validateWorkerVersion(loader);
|
|
43
|
+
|
|
44
|
+
if (isResponse(data)) {
|
|
45
|
+
const response = data;
|
|
46
|
+
const {
|
|
47
|
+
ok,
|
|
48
|
+
redirected,
|
|
49
|
+
status,
|
|
50
|
+
statusText,
|
|
51
|
+
type,
|
|
52
|
+
url
|
|
53
|
+
} = response;
|
|
54
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
55
|
+
context.response = {
|
|
56
|
+
headers,
|
|
57
|
+
ok,
|
|
58
|
+
redirected,
|
|
59
|
+
status,
|
|
60
|
+
statusText,
|
|
61
|
+
type,
|
|
62
|
+
url
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
42
66
|
data = await getArrayBufferOrStringFromData(data, loader, options);
|
|
43
67
|
|
|
44
68
|
if (loader.parseTextSync && typeof data === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/api/parse.ts"],"names":["assert","validateWorkerVersion","parseWithWorker","canParseWithWorker","isLoaderObject","normalizeOptions","getArrayBufferOrStringFromData","getLoaderContext","getLoadersFromContext","getResourceUrlAndType","selectLoader","parse","data","loaders","options","context","Array","isArray","undefined","url","typedLoaders","candidateLoaders","loader","parseWithLoader","parseTextSync","dataType","parseText","parseSync","Error","id"],"mappings":"AACA,SAAQA,MAAR,EAAgBC,qBAAhB,QAA4C,0BAA5C;AACA,SAAQC,eAAR,EAAyBC,kBAAzB,QAAkD,0BAAlD;AACA,SAAQC,cAAR,QAA6B,kCAA7B;AACA,SAAQC,gBAAR,QAA+B,8BAA/B;AACA,SAAQC,8BAAR,QAA6C,0BAA7C;AACA,SAAQC,gBAAR,EAA0BC,qBAA1B,QAAsD,gCAAtD;AACA,SAAQC,qBAAR,QAAoC,yBAApC;AACA,SAAQC,YAAR,QAA2B,iBAA3B;AASA,OAAO,eAAeC,KAAf,CACLC,IADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK,EAKS;
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/api/parse.ts"],"names":["assert","validateWorkerVersion","parseWithWorker","canParseWithWorker","isLoaderObject","isResponse","normalizeOptions","getArrayBufferOrStringFromData","getLoaderContext","getLoadersFromContext","getResourceUrlAndType","selectLoader","parse","data","loaders","options","context","Array","isArray","undefined","url","typedLoaders","candidateLoaders","loader","parseWithLoader","response","ok","redirected","status","statusText","type","headers","Object","fromEntries","entries","parseTextSync","dataType","parseText","parseSync","Error","id"],"mappings":"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","sourcesContent":["import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';\nimport {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {isResponse} from '../../javascript-utils/is-type';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromData} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\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 parse(\n data: DataType | Promise<DataType>,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<any> {\n assert(!context || typeof context === 'object'); // parse no longer accepts final url\n\n // Signature: parse(data, options, context | url)\n // Uses registered loaders\n if (loaders && !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} = getResourceUrlAndType(data);\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n // todo hacky type cast\n const loader = await selectLoader(data as ArrayBuffer, candidateLoaders, options);\n // Note: if no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders, url);\n\n // Get a context (if already present, will be unchanged)\n context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context);\n\n return await parseWithLoader(loader, data, options, context);\n}\n\n// TODO: support progress and abort\n// TODO - should accept loader.parseAsyncIterator and concatenate.\nasync function parseWithLoader(loader, data, options, context) {\n validateWorkerVersion(loader);\n\n if (isResponse(data)) {\n // Serialize to support passing the response to web worker\n const response = data as Response;\n const {ok, redirected, status, statusText, type, url} = response;\n const headers = Object.fromEntries(response.headers.entries());\n context.response = {headers, ok, redirected, status, statusText, type, url};\n }\n\n data = await getArrayBufferOrStringFromData(data, loader, options);\n\n // First check for synchronous text parser, wrap results in promises\n if (loader.parseTextSync && typeof data === 'string') {\n options.dataType = 'text';\n return loader.parseTextSync(data, options, context, loader);\n }\n\n // If we have a workerUrl and the loader can parse the given options efficiently in a worker\n if (canParseWithWorker(loader, options)) {\n return await parseWithWorker(loader, data, options, context, parse);\n }\n\n // Check for asynchronous parser\n if (loader.parseText && typeof data === 'string') {\n return await loader.parseText(data, options, context, loader);\n }\n\n if (loader.parse) {\n return await loader.parse(data, options, context, loader);\n }\n\n // This should not happen, all sync loaders should also offer `parse` function\n assert(!loader.parseSync);\n\n // TBD - If asynchronous parser not available, return null\n throw new Error(`${loader.id} loader - no parser found and worker is disabled`);\n}\n"],"file":"parse.js"}
|
package/dist/esm/lib/init.js
CHANGED
package/dist/esm/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/init.ts"],"names":["log","version","globalThis","loaders","Object","assign","VERSION"],"mappings":"AACA,SAAQA,GAAR,QAAkB,aAAlB;AAGA,MAAMC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/init.ts"],"names":["log","version","globalThis","loaders","Object","assign","VERSION"],"mappings":"AACA,SAAQA,GAAR,QAAkB,aAAlB;AAGA,MAAMC,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,EAAnE;;AAGA,IAAI,CAACC,UAAU,CAACC,OAAhB,EAAyB;AACvBH,EAAAA,GAAG,CAACA,GAAJ,CAAQ,CAAR,uBAAyBC,OAAzB;AAEAC,EAAAA,UAAU,CAACC,OAAX,GAAqBC,MAAM,CAACC,MAAP,CAAcH,UAAU,CAACC,OAAX,IAAsB,EAApC,EAAwC;AAC3DG,IAAAA,OAAO,EAAEL,OADkD;AAE3DD,IAAAA;AAF2D,GAAxC,CAArB;AAID;;AAED,eAAeE,UAAU,CAACC,OAA1B","sourcesContent":["// loaders.gl, MIT license\nimport {log} from './utils/log';\n\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';\n\n// @ts-ignore\nif (!globalThis.loaders) {\n log.log(1, `loaders.gl ${version}`)();\n\n globalThis.loaders = Object.assign(globalThis.loaders || {}, {\n VERSION: version,\n log\n });\n}\n// @ts-ignore\nexport default globalThis.loaders;\n"],"file":"init.js"}
|
package/dist/esm/null-loader.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const VERSION = typeof "3.2.0
|
|
1
|
+
const VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
2
2
|
export const NullWorkerLoader = {
|
|
3
3
|
name: 'Null loader',
|
|
4
4
|
id: 'null',
|
|
@@ -12,6 +12,17 @@ export const NullWorkerLoader = {
|
|
|
12
12
|
null: {}
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
+
|
|
16
|
+
function parseSync(arrayBuffer, options, context) {
|
|
17
|
+
if (!options.null.echoParameters) return null;
|
|
18
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
19
|
+
return {
|
|
20
|
+
arrayBuffer,
|
|
21
|
+
options,
|
|
22
|
+
context
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
15
26
|
export const NullLoader = {
|
|
16
27
|
name: 'Null loader',
|
|
17
28
|
id: 'null',
|
|
@@ -19,16 +30,18 @@ export const NullLoader = {
|
|
|
19
30
|
version: VERSION,
|
|
20
31
|
mimeTypes: ['application/x.empty'],
|
|
21
32
|
extensions: ['null'],
|
|
22
|
-
parse: async arrayBuffer => arrayBuffer,
|
|
23
|
-
parseSync
|
|
24
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
33
|
+
parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
|
|
34
|
+
parseSync,
|
|
35
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
25
36
|
for await (const batch of asyncIterator) {
|
|
26
|
-
yield batch;
|
|
37
|
+
yield parseSync(batch, options, context);
|
|
27
38
|
}
|
|
28
39
|
},
|
|
29
40
|
tests: [() => false],
|
|
30
41
|
options: {
|
|
31
|
-
null: {
|
|
42
|
+
null: {
|
|
43
|
+
echoParameters: false
|
|
44
|
+
}
|
|
32
45
|
}
|
|
33
46
|
};
|
|
34
47
|
//# sourceMappingURL=null-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/null-loader.ts"],"names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","
|
|
1
|
+
{"version":3,"sources":["../../src/null-loader.ts"],"names":["VERSION","NullWorkerLoader","name","id","module","version","worker","mimeTypes","extensions","tests","options","null","parseSync","arrayBuffer","context","echoParameters","JSON","parse","stringify","NullLoader","parseInBatches","generator","asyncIterator","batch"],"mappings":"AAEA,MAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAOA,OAAO,MAAMC,gBAAwB,GAAG;AACtCC,EAAAA,IAAI,EAAE,aADgC;AAEtCC,EAAAA,EAAE,EAAE,MAFkC;AAGtCC,EAAAA,MAAM,EAAE,MAH8B;AAItCC,EAAAA,OAAO,EAAEL,OAJ6B;AAKtCM,EAAAA,MAAM,EAAE,IAL8B;AAMtCC,EAAAA,SAAS,EAAE,CAAC,qBAAD,CAN2B;AAOtCC,EAAAA,UAAU,EAAE,CAAC,MAAD,CAP0B;AAQtCC,EAAAA,KAAK,EAAE,CAAC,MAAM,KAAP,CAR+B;AAStCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AAT6B,CAAjC;;AAkBP,SAASC,SAAT,CAAmBC,WAAnB,EAAgCH,OAAhC,EAAyCI,OAAzC,EAAkD;AAChD,MAAI,CAACJ,OAAO,CAACC,IAAR,CAAaI,cAAlB,EAAkC,OAAO,IAAP;AAClCD,EAAAA,OAAO,GAAGA,OAAO,IAAIE,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeJ,OAAf,CAAX,CAArB;AACA,SAAO;AAACD,IAAAA,WAAD;AAAcH,IAAAA,OAAd;AAAuBI,IAAAA;AAAvB,GAAP;AACD;;AAKD,OAAO,MAAMK,UAA4B,GAAG;AAC1CjB,EAAAA,IAAI,EAAE,aADoC;AAE1CC,EAAAA,EAAE,EAAE,MAFsC;AAG1CC,EAAAA,MAAM,EAAE,MAHkC;AAI1CC,EAAAA,OAAO,EAAEL,OAJiC;AAK1CO,EAAAA,SAAS,EAAE,CAAC,qBAAD,CAL+B;AAM1CC,EAAAA,UAAU,EAAE,CAAC,MAAD,CAN8B;AAO1CS,EAAAA,KAAK,EAAE,OAAOJ,WAAP,EAAoBH,OAApB,EAA6BI,OAA7B,KAAyCF,SAAS,CAACC,WAAD,EAAcH,OAAd,EAAuBI,OAAvB,CAPf;AAQ1CF,EAAAA,SAR0C;AAS1CQ,EAAAA,cAAc,EAAE,gBAAgBC,SAAhB,CAA0BC,aAA1B,EAAyCZ,OAAzC,EAAkDI,OAAlD,EAA2D;AACzE,eAAW,MAAMS,KAAjB,IAA0BD,aAA1B,EAAyC;AACvC,YAAMV,SAAS,CAACW,KAAD,EAAQb,OAAR,EAAiBI,OAAjB,CAAf;AACD;AACF,GAbyC;AAc1CL,EAAAA,KAAK,EAAE,CAAC,MAAM,KAAP,CAdmC;AAe1CC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AACJI,MAAAA,cAAc,EAAE;AADZ;AADC;AAfiC,CAArC","sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nimport {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullWorkerLoader: Loader = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n worker: true,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n tests: [() => false],\n options: {\n null: {}\n }\n};\n\n/**\n * Returns arguments passed to the parse API in a format that can be transfered to a\n * web worker. The `context` parameter is stripped using JSON.stringify & parse.\n */\nfunction parseSync(arrayBuffer, options, context) {\n if (!options.null.echoParameters) return null;\n context = context && JSON.parse(JSON.stringify(context));\n return {arrayBuffer, options, context};\n}\n\n/**\n * Loads any data and returns null (or optionally passes through data unparsed)\n */\nexport const NullLoader: LoaderWithParser = {\n name: 'Null loader',\n id: 'null',\n module: 'core',\n version: VERSION,\n mimeTypes: ['application/x.empty'],\n extensions: ['null'],\n parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),\n parseSync,\n parseInBatches: async function* generator(asyncIterator, options, context) {\n for await (const batch of asyncIterator) {\n yield parseSync(batch, options, context);\n }\n },\n tests: [() => false],\n options: {\n null: {\n echoParameters: false\n }\n }\n};\n"],"file":"null-loader.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAW7F;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAClC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,GAAG,CAAC,CAmCd"}
|
package/dist/lib/api/parse.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.parse = void 0;
|
|
|
4
4
|
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
5
5
|
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
6
6
|
const normalize_loader_1 = require("../loader-utils/normalize-loader");
|
|
7
|
+
const is_type_1 = require("../../javascript-utils/is-type");
|
|
7
8
|
const option_utils_1 = require("../loader-utils/option-utils");
|
|
8
9
|
const get_data_1 = require("../loader-utils/get-data");
|
|
9
10
|
const loader_context_1 = require("../loader-utils/loader-context");
|
|
@@ -50,6 +51,13 @@ exports.parse = parse;
|
|
|
50
51
|
// TODO - should accept loader.parseAsyncIterator and concatenate.
|
|
51
52
|
async function parseWithLoader(loader, data, options, context) {
|
|
52
53
|
(0, worker_utils_1.validateWorkerVersion)(loader);
|
|
54
|
+
if ((0, is_type_1.isResponse)(data)) {
|
|
55
|
+
// Serialize to support passing the response to web worker
|
|
56
|
+
const response = data;
|
|
57
|
+
const { ok, redirected, status, statusText, type, url } = response;
|
|
58
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
59
|
+
context.response = { headers, ok, redirected, status, statusText, type, url };
|
|
60
|
+
}
|
|
53
61
|
data = await (0, get_data_1.getArrayBufferOrStringFromData)(data, loader, options);
|
|
54
62
|
// First check for synchronous text parser, wrap results in promises
|
|
55
63
|
if (loader.parseTextSync && typeof data === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null-loader.d.ts","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAY9B,CAAC;
|
|
1
|
+
{"version":3,"file":"null-loader.d.ts","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAY9B,CAAC;AAYF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAoBxB,CAAC"}
|
package/dist/null-loader.js
CHANGED
|
@@ -20,6 +20,16 @@ exports.NullWorkerLoader = {
|
|
|
20
20
|
null: {}
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Returns arguments passed to the parse API in a format that can be transfered to a
|
|
25
|
+
* web worker. The `context` parameter is stripped using JSON.stringify & parse.
|
|
26
|
+
*/
|
|
27
|
+
function parseSync(arrayBuffer, options, context) {
|
|
28
|
+
if (!options.null.echoParameters)
|
|
29
|
+
return null;
|
|
30
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
31
|
+
return { arrayBuffer, options, context };
|
|
32
|
+
}
|
|
23
33
|
/**
|
|
24
34
|
* Loads any data and returns null (or optionally passes through data unparsed)
|
|
25
35
|
*/
|
|
@@ -30,15 +40,17 @@ exports.NullLoader = {
|
|
|
30
40
|
version: VERSION,
|
|
31
41
|
mimeTypes: ['application/x.empty'],
|
|
32
42
|
extensions: ['null'],
|
|
33
|
-
parse: async (arrayBuffer) => arrayBuffer,
|
|
34
|
-
parseSync
|
|
35
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
43
|
+
parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
|
|
44
|
+
parseSync,
|
|
45
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
36
46
|
for await (const batch of asyncIterator) {
|
|
37
|
-
yield batch;
|
|
47
|
+
yield parseSync(batch, options, context);
|
|
38
48
|
}
|
|
39
49
|
},
|
|
40
50
|
tests: [() => false],
|
|
41
51
|
options: {
|
|
42
|
-
null: {
|
|
52
|
+
null: {
|
|
53
|
+
echoParameters: false
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
};
|
package/dist/null-worker.js
CHANGED
|
@@ -118,12 +118,13 @@
|
|
|
118
118
|
switch (type) {
|
|
119
119
|
case "process":
|
|
120
120
|
try {
|
|
121
|
-
const { input, options = {} } = payload;
|
|
121
|
+
const { input, options = {}, context = {} } = payload;
|
|
122
122
|
const result = await parseData({
|
|
123
123
|
loader,
|
|
124
124
|
arrayBuffer: input,
|
|
125
125
|
options,
|
|
126
126
|
context: {
|
|
127
|
+
...context,
|
|
127
128
|
parse: parseOnMainThread
|
|
128
129
|
}
|
|
129
130
|
});
|
|
@@ -183,7 +184,13 @@
|
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
// src/null-loader.ts
|
|
186
|
-
var VERSION = true ? "3.2.0
|
|
187
|
+
var VERSION = true ? "3.2.0" : "latest";
|
|
188
|
+
function parseSync(arrayBuffer, options, context) {
|
|
189
|
+
if (!options.null.echoParameters)
|
|
190
|
+
return null;
|
|
191
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
192
|
+
return { arrayBuffer, options, context };
|
|
193
|
+
}
|
|
187
194
|
var NullLoader = {
|
|
188
195
|
name: "Null loader",
|
|
189
196
|
id: "null",
|
|
@@ -191,16 +198,18 @@
|
|
|
191
198
|
version: VERSION,
|
|
192
199
|
mimeTypes: ["application/x.empty"],
|
|
193
200
|
extensions: ["null"],
|
|
194
|
-
parse: async (arrayBuffer) => arrayBuffer,
|
|
195
|
-
parseSync
|
|
196
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
201
|
+
parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
|
|
202
|
+
parseSync,
|
|
203
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
197
204
|
for await (const batch of asyncIterator) {
|
|
198
|
-
yield batch;
|
|
205
|
+
yield parseSync(batch, options, context);
|
|
199
206
|
}
|
|
200
207
|
},
|
|
201
208
|
tests: [() => false],
|
|
202
209
|
options: {
|
|
203
|
-
null: {
|
|
210
|
+
null: {
|
|
211
|
+
echoParameters: false
|
|
212
|
+
}
|
|
204
213
|
}
|
|
205
214
|
};
|
|
206
215
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/core",
|
|
3
|
-
"version": "3.2.0
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Framework-independent loaders for 3D graphics formats",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/runtime": "^7.3.1",
|
|
45
|
-
"@loaders.gl/loader-utils": "3.2.0
|
|
46
|
-
"@loaders.gl/worker-utils": "3.2.0
|
|
45
|
+
"@loaders.gl/loader-utils": "3.2.0",
|
|
46
|
+
"@loaders.gl/worker-utils": "3.2.0",
|
|
47
47
|
"@probe.gl/log": "^3.5.0",
|
|
48
48
|
"probe.gl": "^3.4.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "6660dc9291526752c40063b73a3f9dd97cc0ccc5"
|
|
51
51
|
}
|
package/src/lib/api/parse.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/l
|
|
|
2
2
|
import {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';
|
|
3
3
|
import {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';
|
|
4
4
|
import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
5
|
+
import {isResponse} from '../../javascript-utils/is-type';
|
|
5
6
|
import {normalizeOptions} from '../loader-utils/option-utils';
|
|
6
7
|
import {getArrayBufferOrStringFromData} from '../loader-utils/get-data';
|
|
7
8
|
import {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';
|
|
@@ -62,6 +63,14 @@ export async function parse(
|
|
|
62
63
|
async function parseWithLoader(loader, data, options, context) {
|
|
63
64
|
validateWorkerVersion(loader);
|
|
64
65
|
|
|
66
|
+
if (isResponse(data)) {
|
|
67
|
+
// Serialize to support passing the response to web worker
|
|
68
|
+
const response = data as Response;
|
|
69
|
+
const {ok, redirected, status, statusText, type, url} = response;
|
|
70
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
71
|
+
context.response = {headers, ok, redirected, status, statusText, type, url};
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
data = await getArrayBufferOrStringFromData(data, loader, options);
|
|
66
75
|
|
|
67
76
|
// First check for synchronous text parser, wrap results in promises
|
package/src/null-loader.ts
CHANGED
|
@@ -21,6 +21,16 @@ export const NullWorkerLoader: Loader = {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Returns arguments passed to the parse API in a format that can be transfered to a
|
|
26
|
+
* web worker. The `context` parameter is stripped using JSON.stringify & parse.
|
|
27
|
+
*/
|
|
28
|
+
function parseSync(arrayBuffer, options, context) {
|
|
29
|
+
if (!options.null.echoParameters) return null;
|
|
30
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
31
|
+
return {arrayBuffer, options, context};
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
/**
|
|
25
35
|
* Loads any data and returns null (or optionally passes through data unparsed)
|
|
26
36
|
*/
|
|
@@ -31,15 +41,17 @@ export const NullLoader: LoaderWithParser = {
|
|
|
31
41
|
version: VERSION,
|
|
32
42
|
mimeTypes: ['application/x.empty'],
|
|
33
43
|
extensions: ['null'],
|
|
34
|
-
parse: async (arrayBuffer) => arrayBuffer,
|
|
35
|
-
parseSync
|
|
36
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
44
|
+
parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
|
|
45
|
+
parseSync,
|
|
46
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
37
47
|
for await (const batch of asyncIterator) {
|
|
38
|
-
yield batch;
|
|
48
|
+
yield parseSync(batch, options, context);
|
|
39
49
|
}
|
|
40
50
|
},
|
|
41
51
|
tests: [() => false],
|
|
42
52
|
options: {
|
|
43
|
-
null: {
|
|
53
|
+
null: {
|
|
54
|
+
echoParameters: false
|
|
55
|
+
}
|
|
44
56
|
}
|
|
45
57
|
};
|