@loaders.gl/loader-utils 3.2.0-alpha.1 → 3.2.0-alpha.4
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/es5/index.js +8 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/json-loader.js +1 -1
- package/dist/es5/lib/worker-loader-utils/create-loader-worker.js +4 -4
- package/dist/es5/lib/worker-loader-utils/create-loader-worker.js.map +1 -1
- package/dist/es5/lib/worker-loader-utils/encode-with-worker.js +23 -0
- package/dist/es5/lib/worker-loader-utils/encode-with-worker.js.map +1 -0
- package/dist/es5/lib/worker-loader-utils/parse-with-worker.js +10 -8
- package/dist/es5/lib/worker-loader-utils/parse-with-worker.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/json-loader.js +1 -1
- package/dist/esm/lib/worker-loader-utils/create-loader-worker.js +3 -2
- package/dist/esm/lib/worker-loader-utils/create-loader-worker.js.map +1 -1
- package/dist/esm/lib/worker-loader-utils/encode-with-worker.js +14 -0
- package/dist/esm/lib/worker-loader-utils/encode-with-worker.js.map +1 -0
- package/dist/esm/lib/worker-loader-utils/parse-with-worker.js +3 -1
- package/dist/esm/lib/worker-loader-utils/parse-with-worker.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -1
- package/dist/lib/worker-loader-utils/create-loader-worker.js +2 -1
- package/dist/lib/worker-loader-utils/encode-with-worker.d.ts +8 -0
- package/dist/lib/worker-loader-utils/encode-with-worker.d.ts.map +1 -0
- package/dist/lib/worker-loader-utils/encode-with-worker.js +21 -0
- package/dist/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -1
- package/dist/lib/worker-loader-utils/parse-with-worker.js +4 -1
- package/dist/types.d.ts +9 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/lib/worker-loader-utils/create-loader-worker.ts +2 -1
- package/src/lib/worker-loader-utils/encode-with-worker.ts +21 -0
- package/src/lib/worker-loader-utils/parse-with-worker.ts +4 -1
- package/src/types.ts +9 -2
package/dist/es5/index.js
CHANGED
|
@@ -73,6 +73,12 @@ Object.defineProperty(exports, "canParseWithWorker", {
|
|
|
73
73
|
return _parseWithWorker.canParseWithWorker;
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
+
Object.defineProperty(exports, "canEncodeWithWorker", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function get() {
|
|
79
|
+
return _encodeWithWorker.canEncodeWithWorker;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
76
82
|
Object.defineProperty(exports, "parseJSON", {
|
|
77
83
|
enumerable: true,
|
|
78
84
|
get: function get() {
|
|
@@ -281,6 +287,8 @@ var _createLoaderWorker = require("./lib/worker-loader-utils/create-loader-worke
|
|
|
281
287
|
|
|
282
288
|
var _parseWithWorker = require("./lib/worker-loader-utils/parse-with-worker");
|
|
283
289
|
|
|
290
|
+
var _encodeWithWorker = require("./lib/worker-loader-utils/encode-with-worker");
|
|
291
|
+
|
|
284
292
|
var _parseJson = require("./lib/parser-utils/parse-json");
|
|
285
293
|
|
|
286
294
|
var _arrayBufferUtils = require("./lib/binary-utils/array-buffer-utils");
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;AACA;;AAWA;;AACA;;AACA;;AAGA;;AAGA;;AAOA;;AACA;;AAIA;;AAKA;;AAGA;;AAMA;;AAGA;;AAGA;;AAIA;;AAOA;;;;AAIA;;AAKA;;;;AAMA;;;;AAIA","sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"file":"index.js"}
|
package/dist/es5/json-loader.js
CHANGED
|
@@ -11,7 +11,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
11
11
|
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
13
|
|
|
14
|
-
var VERSION = typeof "3.2.0-alpha.
|
|
14
|
+
var VERSION = typeof "3.2.0-alpha.4" !== 'undefined' ? "3.2.0-alpha.4" : 'latest';
|
|
15
15
|
var JSONLoader = {
|
|
16
16
|
name: 'JSON',
|
|
17
17
|
id: 'json',
|
|
@@ -28,7 +28,7 @@ function createLoaderWorker(loader) {
|
|
|
28
28
|
|
|
29
29
|
_workerUtils.WorkerBody.onmessage = function () {
|
|
30
30
|
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(type, payload) {
|
|
31
|
-
var input, _payload$options, options, result, message;
|
|
31
|
+
var input, _payload$options, options, _payload$context, context, result, message;
|
|
32
32
|
|
|
33
33
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
34
34
|
while (1) {
|
|
@@ -40,15 +40,15 @@ function createLoaderWorker(loader) {
|
|
|
40
40
|
|
|
41
41
|
case 3:
|
|
42
42
|
_context.prev = 3;
|
|
43
|
-
input = payload.input, _payload$options = payload.options, options = _payload$options === void 0 ? {} : _payload$options;
|
|
43
|
+
input = payload.input, _payload$options = payload.options, options = _payload$options === void 0 ? {} : _payload$options, _payload$context = payload.context, context = _payload$context === void 0 ? {} : _payload$context;
|
|
44
44
|
_context.next = 7;
|
|
45
45
|
return parseData({
|
|
46
46
|
loader: loader,
|
|
47
47
|
arrayBuffer: input,
|
|
48
48
|
options: options,
|
|
49
|
-
context: {
|
|
49
|
+
context: _objectSpread(_objectSpread({}, context), {}, {
|
|
50
50
|
parse: parseOnMainThread
|
|
51
|
-
}
|
|
51
|
+
})
|
|
52
52
|
});
|
|
53
53
|
|
|
54
54
|
case 7:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":["requestId","createLoaderWorker","loader","WorkerBody","inWorkerThread","onmessage","type","payload","input","options","
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":["requestId","createLoaderWorker","loader","WorkerBody","inWorkerThread","onmessage","type","payload","input","options","context","parseData","arrayBuffer","parse","parseOnMainThread","result","postMessage","message","Error","error","Promise","resolve","reject","id","onMessage","removeEventListener","addEventListener","parseSync","data","parser","parseTextSync","textDecoder","TextDecoder","decode","name","modules","worker"],"mappings":";;;;;;;;;;;;;;;AAEA;;;;;;AAGA,IAAIA,SAAS,GAAG,CAAhB;;AAMO,SAASC,kBAAT,CAA4BC,MAA5B,EAAsD;AAE3D,MAAI,CAACC,wBAAWC,cAAX,EAAL,EAAkC;AAChC;AACD;;AAEDD,0BAAWE,SAAX;AAAA,yEAAuB,iBAAOC,IAAP,EAAaC,OAAb;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,4BACbD,IADa;AAAA,8CAEd,SAFc;AAAA;;AAAA;AAAA;AAMRE,cAAAA,KANQ,GAM6BD,OAN7B,CAMRC,KANQ,qBAM6BD,OAN7B,CAMDE,OANC,EAMDA,OANC,iCAMS,EANT,wCAM6BF,OAN7B,CAMaG,OANb,EAMaA,OANb,iCAMuB,EANvB;AAAA;AAAA,qBAQMC,SAAS,CAAC;AAC7BT,gBAAAA,MAAM,EAANA,MAD6B;AAE7BU,gBAAAA,WAAW,EAAEJ,KAFgB;AAG7BC,gBAAAA,OAAO,EAAPA,OAH6B;AAI7BC,gBAAAA,OAAO,kCACFA,OADE;AAELG,kBAAAA,KAAK,EAAEC;AAFF;AAJsB,eAAD,CARf;;AAAA;AAQTC,cAAAA,MARS;;AAiBfZ,sCAAWa,WAAX,CAAuB,MAAvB,EAA+B;AAACD,gBAAAA,MAAM,EAANA;AAAD,eAA/B;;AAjBe;AAAA;;AAAA;AAAA;AAAA;AAmBTE,cAAAA,OAnBS,GAmBC,uBAAiBC,KAAjB,GAAyB,YAAMD,OAA/B,GAAyC,EAnB1C;;AAoBfd,sCAAWa,WAAX,CAAuB,OAAvB,EAAgC;AAACG,gBAAAA,KAAK,EAAEF;AAAR,eAAhC;;AApBe;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAvB;;AAAA;AAAA;AAAA;AAAA;AA0BD;;AAED,SAASH,iBAAT,CAA2BF,WAA3B,EAAqDH,OAArD,EAAmG;AACjG,SAAO,IAAIW,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMC,EAAE,GAAGvB,SAAS,EAApB;;AAIA,QAAMwB,SAAS,GAAG,SAAZA,SAAY,CAAClB,IAAD,EAAOC,OAAP,EAAmB;AACnC,UAAIA,OAAO,CAACgB,EAAR,KAAeA,EAAnB,EAAuB;AAErB;AACD;;AAED,cAAQjB,IAAR;AACE,aAAK,MAAL;AACEH,kCAAWsB,mBAAX,CAA+BD,SAA/B;;AACAH,UAAAA,OAAO,CAACd,OAAO,CAACQ,MAAT,CAAP;AACA;;AAEF,aAAK,OAAL;AACEZ,kCAAWsB,mBAAX,CAA+BD,SAA/B;;AACAF,UAAAA,MAAM,CAACf,OAAO,CAACY,KAAT,CAAN;AACA;;AAEF;AAXF;AAcD,KApBD;;AAsBAhB,4BAAWuB,gBAAX,CAA4BF,SAA5B;;AAGA,QAAMjB,OAAO,GAAG;AAACgB,MAAAA,EAAE,EAAFA,EAAD;AAAKf,MAAAA,KAAK,EAAEI,WAAZ;AAAyBH,MAAAA,OAAO,EAAPA;AAAzB,KAAhB;;AACAN,4BAAWa,WAAX,CAAuB,SAAvB,EAAkCT,OAAlC;AACD,GAhCM,CAAP;AAiCD;;SAMcI,S;;;;;yEAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0BT,YAAAA,MAA1B,SAA0BA,MAA1B,EAAkCU,WAAlC,SAAkCA,WAAlC,EAA+CH,OAA/C,SAA+CA,OAA/C,EAAwDC,OAAxD,SAAwDA,OAAxD;;AAAA,kBAGMR,MAAM,CAACyB,SAAP,IAAoBzB,MAAM,CAACW,KAHjC;AAAA;AAAA;AAAA;;AAIIe,YAAAA,IAAI,GAAGhB,WAAP;AACAiB,YAAAA,MAAM,GAAG3B,MAAM,CAACyB,SAAP,IAAoBzB,MAAM,CAACW,KAApC;AALJ;AAAA;;AAAA;AAAA,iBAMaX,MAAM,CAAC4B,aANpB;AAAA;AAAA;AAAA;;AAOUC,YAAAA,WAPV,GAOwB,IAAIC,WAAJ,EAPxB;AAQIJ,YAAAA,IAAI,GAAGG,WAAW,CAACE,MAAZ,CAAmBrB,WAAnB,CAAP;AACAiB,YAAAA,MAAM,GAAG3B,MAAM,CAAC4B,aAAhB;AATJ;AAAA;;AAAA;AAAA,kBAWU,IAAIZ,KAAJ,oCAAsChB,MAAM,CAACgC,IAA7C,aAXV;;AAAA;AAeEzB,YAAAA,OAAO,mCACFA,OADE;AAEL0B,cAAAA,OAAO,EAAGjC,MAAM,IAAIA,MAAM,CAACO,OAAjB,IAA4BP,MAAM,CAACO,OAAP,CAAe0B,OAA5C,IAAwD,EAF5D;AAGLC,cAAAA,MAAM,EAAE;AAHH,cAAP;AAfF;AAAA,mBAqBeP,MAAM,CAACD,IAAD,oBAAWnB,OAAX,GAAqBC,OAArB,EAA8BR,MAA9B,CArBrB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["/* eslint-disable no-restricted-globals */\nimport type {LoaderWithParser} from '../../types';\nimport {WorkerBody} from '@loaders.gl/worker-utils';\n// import {validateLoaderVersion} from './validate-loader-version';\n\nlet requestId = 0;\n\n/**\n * Set up a WebWorkerGlobalScope to talk with the main thread\n * @param loader\n */\nexport function createLoaderWorker(loader: LoaderWithParser) {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload) => {\n switch (type) {\n case 'process':\n try {\n // validateLoaderVersion(loader, data.source.split('@')[1]);\n\n const {input, options = {}, context = {}} = payload;\n\n const result = await parseData({\n loader,\n arrayBuffer: input,\n options,\n context: {\n ...context,\n parse: parseOnMainThread\n }\n });\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n}\n\nfunction parseOnMainThread(arrayBuffer: ArrayBuffer, options: {[key: string]: any}): Promise<void> {\n return new Promise((resolve, reject) => {\n const id = requestId++;\n\n /**\n */\n const onMessage = (type, payload) => {\n if (payload.id !== id) {\n // not ours\n return;\n }\n\n switch (type) {\n case 'done':\n WorkerBody.removeEventListener(onMessage);\n resolve(payload.result);\n break;\n\n case 'error':\n WorkerBody.removeEventListener(onMessage);\n reject(payload.error);\n break;\n\n default:\n // ignore\n }\n };\n\n WorkerBody.addEventListener(onMessage);\n\n // Ask the main thread to decode data\n const payload = {id, input: arrayBuffer, options};\n WorkerBody.postMessage('process', payload);\n });\n}\n\n// TODO - Support byteOffset and byteLength (enabling parsing of embedded binaries without copies)\n// TODO - Why not support async loader.parse* funcs here?\n// TODO - Why not reuse a common function instead of reimplementing loader.parse* selection logic? Keeping loader small?\n// TODO - Lack of appropriate parser functions can be detected when we create worker, no need to wait until parse\nasync function parseData({loader, arrayBuffer, options, context}) {\n let data;\n let parser;\n if (loader.parseSync || loader.parse) {\n data = arrayBuffer;\n parser = loader.parseSync || loader.parse;\n } else if (loader.parseTextSync) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(arrayBuffer);\n parser = loader.parseTextSync;\n } else {\n throw new Error(`Could not load data with ${loader.name} loader`);\n }\n\n // TODO - proper merge in of loader options...\n options = {\n ...options,\n modules: (loader && loader.options && loader.options.modules) || {},\n worker: false\n };\n\n return await parser(data, {...options}, context, loader);\n}\n"],"file":"create-loader-worker.js"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.canEncodeWithWorker = canEncodeWithWorker;
|
|
7
|
+
|
|
8
|
+
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
9
|
+
|
|
10
|
+
var _globals = require("../env-utils/globals");
|
|
11
|
+
|
|
12
|
+
function canEncodeWithWorker(writer, options) {
|
|
13
|
+
if (!_workerUtils.WorkerFarm.isSupported()) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (!_globals.isBrowser && !(options !== null && options !== void 0 && options._nodeWorkers)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return writer.worker && (options === null || options === void 0 ? void 0 : options.worker);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=encode-with-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/encode-with-worker.ts"],"names":["canEncodeWithWorker","writer","options","WorkerFarm","isSupported","isBrowser","_nodeWorkers","worker"],"mappings":";;;;;;;AAAA;;AAEA;;AAOO,SAASA,mBAAT,CAA6BC,MAA7B,EAA6CC,OAA7C,EAAsE;AAC3E,MAAI,CAACC,wBAAWC,WAAX,EAAL,EAA+B;AAC7B,WAAO,KAAP;AACD;;AAGD,MAAI,CAACC,kBAAD,IAAc,EAACH,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEI,YAAV,CAAlB,EAA0C;AACxC,WAAO,KAAP;AACD;;AAED,SAAOL,MAAM,CAACM,MAAP,KAAiBL,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEK,MAA1B,CAAP;AACD","sourcesContent":["import {WorkerFarm} from '@loaders.gl/worker-utils';\nimport {Writer, WriterOptions} from '../../types';\nimport {isBrowser} from '../env-utils/globals';\n\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canEncodeWithWorker(writer: Writer, options?: WriterOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n // Node workers are still experimental\n if (!isBrowser && !options?._nodeWorkers) {\n return false;\n }\n\n return writer.worker && options?.worker;\n}\n"],"file":"encode-with-worker.js"}
|
|
@@ -45,27 +45,29 @@ function _parseWithWorker() {
|
|
|
45
45
|
url: url
|
|
46
46
|
});
|
|
47
47
|
options = JSON.parse(JSON.stringify(options));
|
|
48
|
-
|
|
48
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
49
|
+
_context.next = 8;
|
|
49
50
|
return workerPool.startJob('process-on-worker', onMessage.bind(null, parseOnMainThread));
|
|
50
51
|
|
|
51
|
-
case
|
|
52
|
+
case 8:
|
|
52
53
|
job = _context.sent;
|
|
53
54
|
job.postMessage('process', {
|
|
54
55
|
input: data,
|
|
55
|
-
options: options
|
|
56
|
+
options: options,
|
|
57
|
+
context: context
|
|
56
58
|
});
|
|
57
|
-
_context.next =
|
|
59
|
+
_context.next = 12;
|
|
58
60
|
return job.result;
|
|
59
61
|
|
|
60
|
-
case
|
|
62
|
+
case 12:
|
|
61
63
|
result = _context.sent;
|
|
62
|
-
_context.next =
|
|
64
|
+
_context.next = 15;
|
|
63
65
|
return result.result;
|
|
64
66
|
|
|
65
|
-
case
|
|
67
|
+
case 15:
|
|
66
68
|
return _context.abrupt("return", _context.sent);
|
|
67
69
|
|
|
68
|
-
case
|
|
70
|
+
case 16:
|
|
69
71
|
case "end":
|
|
70
72
|
return _context.stop();
|
|
71
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":["canParseWithWorker","loader","options","WorkerFarm","isSupported","isBrowser","_nodeWorkers","worker","parseWithWorker","data","context","parseOnMainThread","name","id","url","workerFarm","getWorkerFarm","workerPool","getWorkerPool","JSON","parse","stringify","startJob","onMessage","bind","job","postMessage","input","result","type","payload","done","error","Error","message","console","warn"],"mappings":";;;;;;;;;;;;;;AAAA;;AAcO,SAASA,kBAAT,CAA4BC,MAA5B,EAA4CC,OAA5C,EAAqE;AAC1E,MAAI,CAACC,wBAAWC,WAAX,EAAL,EAA+B;AAC7B,WAAO,KAAP;AACD;;AAGD,MAAI,CAACC,sBAAD,IAAc,EAACH,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEI,YAAV,CAAlB,EAA0C;AACxC,WAAO,KAAP;AACD;;AAED,SAAOL,MAAM,CAACM,MAAP,KAAiBL,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEK,MAA1B,CAAP;AACD;;SAMqBC,e;;;;;+EAAf,iBACLP,MADK,EAELQ,IAFK,EAGLP,OAHK,EAILQ,OAJK,EAKLC,iBALK;AAAA;AAAA;AAAA;AAAA;AAAA;AAOCC,YAAAA,IAPD,GAOQX,MAAM,CAACY,EAPf;AAQCC,YAAAA,GARD,GAQO,+BAAab,MAAb,EAAqBC,OAArB,CARP;AAUCa,YAAAA,UAVD,GAUcZ,wBAAWa,aAAX,CAAyBd,OAAzB,CAVd;AAWCe,YAAAA,UAXD,GAWcF,UAAU,CAACG,aAAX,CAAyB;AAACN,cAAAA,IAAI,EAAJA,IAAD;AAAOE,cAAAA,GAAG,EAAHA;AAAP,aAAzB,CAXd;
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":["canParseWithWorker","loader","options","WorkerFarm","isSupported","isBrowser","_nodeWorkers","worker","parseWithWorker","data","context","parseOnMainThread","name","id","url","workerFarm","getWorkerFarm","workerPool","getWorkerPool","JSON","parse","stringify","startJob","onMessage","bind","job","postMessage","input","result","type","payload","done","error","Error","message","console","warn"],"mappings":"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","sourcesContent":["import {\n WorkerJob,\n WorkerMessageType,\n WorkerMessagePayload,\n isBrowser\n} from '@loaders.gl/worker-utils';\nimport type {Loader, LoaderOptions, LoaderContext} from '../../types';\nimport {WorkerFarm, getWorkerURL} from '@loaders.gl/worker-utils';\n\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canParseWithWorker(loader: Loader, options?: LoaderOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n // Node workers are still experimental\n if (!isBrowser && !options?._nodeWorkers) {\n return false;\n }\n\n return loader.worker && options?.worker;\n}\n\n/**\n * this function expects that the worker function sends certain messages,\n * this can be automated if the worker is wrapper by a call to createLoaderWorker in @loaders.gl/loader-utils.\n */\nexport async function parseWithWorker(\n loader: Loader,\n data: any,\n options?: LoaderOptions,\n context?: LoaderContext,\n parseOnMainThread?: (arrayBuffer: ArrayBuffer, options: {[key: string]: any}) => Promise<void>\n) {\n const name = loader.id; // TODO\n const url = getWorkerURL(loader, options);\n\n const workerFarm = WorkerFarm.getWorkerFarm(options);\n const workerPool = workerFarm.getWorkerPool({name, url});\n\n // options.log object contains functions which cannot be transferred\n // context.fetch & context.parse functions cannot be transferred\n // TODO - decide how to handle logging on workers\n options = JSON.parse(JSON.stringify(options));\n context = JSON.parse(JSON.stringify(context || {}));\n\n const job = await workerPool.startJob(\n 'process-on-worker',\n // @ts-expect-error\n onMessage.bind(null, parseOnMainThread) // eslint-disable-line @typescript-eslint/no-misused-promises\n );\n\n job.postMessage('process', {\n // @ts-ignore\n input: data,\n options,\n context\n });\n\n const result = await job.result;\n // TODO - what is going on here?\n return await result.result;\n}\n\n/**\n * Handle worker's responses to the main thread\n * @param job\n * @param type\n * @param payload\n */\nasync function onMessage(\n parseOnMainThread: (arrayBuffer: ArrayBuffer, options?: {[key: string]: any}) => Promise<void>,\n job: WorkerJob,\n type: WorkerMessageType,\n payload: WorkerMessagePayload\n) {\n switch (type) {\n case 'done':\n job.done(payload);\n break;\n\n case 'error':\n job.error(new Error(payload.error));\n break;\n\n case 'process':\n // Worker is asking for main thread to parseO\n const {id, input, options} = payload;\n try {\n const result = await parseOnMainThread(input, options);\n job.postMessage('done', {id, result});\n } catch (error) {\n const message = error instanceof Error ? error.message : 'unknown error';\n job.postMessage('error', {id, error: message});\n }\n break;\n\n default:\n // eslint-disable-next-line\n console.warn(`parse-with-worker unknown message ${type}`);\n }\n}\n"],"file":"parse-with-worker.js"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export { assert } from './lib/env-utils/assert';
|
|
|
2
2
|
export { isBrowser, isWorker, nodeVersion, self, window, global, document } from './lib/env-utils/globals';
|
|
3
3
|
export { createLoaderWorker } from './lib/worker-loader-utils/create-loader-worker';
|
|
4
4
|
export { parseWithWorker, canParseWithWorker } from './lib/worker-loader-utils/parse-with-worker';
|
|
5
|
+
export { canEncodeWithWorker } from './lib/worker-loader-utils/encode-with-worker';
|
|
5
6
|
export { parseJSON } from './lib/parser-utils/parse-json';
|
|
6
7
|
export { toArrayBuffer, sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
|
|
7
8
|
export { padToNBytes, copyToArray, copyArrayBuffer } from './lib/binary-utils/memory-copy-utils';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","parseJSON","toArrayBuffer","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","path","isBuffer","toBuffer","bufferToArrayBuffer","util","promisify","fs","_NodeFileSystem"],"mappings":"AAgBA,SAAQA,MAAR,QAAqB,wBAArB;AACA,SACEC,SADF,EAEEC,QAFF,EAGEC,WAHF,EAIEC,IAJF,EAKEC,MALF,EAMEC,MANF,EAOEC,QAPF,QAQO,yBARP;AAWA,SAAQC,kBAAR,QAAiC,gDAAjC;AACA,SAAQC,eAAR,EAAyBC,kBAAzB,QAAkD,6CAAlD;AAGA,SAAQC,SAAR,QAAwB,+BAAxB;AAGA,SACEC,aADF,EAEEC,gBAFF,EAGEC,uBAHF,EAIEC,sBAJF,EAKEC,mBALF,QAMO,uCANP;AAOA,SAAQC,WAAR,EAAqBC,WAArB,EAAkCC,eAAlC,QAAwD,sCAAxD;AACA,SACEC,+BADF,EAEEC,0BAFF,QAGO,sCAHP;AAIA,SACEC,wBADF,EAEEC,oBAFF,EAGEC,oBAHF,QAIO,iCAJP;AAKA,SAAQC,kBAAR,EAA4BC,cAA5B,QAAiD,yCAAjD;AAGA,SACEC,uBADF,EAEEC,uBAFF,EAGEC,gBAHF,EAIEC,wBAJF,QAKO,gCALP;AAMA,SAAQC,OAAR,EAAiBC,4BAAjB,QAAoD,iCAApD;AAGA,SAAQC,OAAO,IAAIC,gBAAnB,QAA0C,uCAA1C;AAGA,SAAQC,aAAR,EAAuBC,aAAvB,EAAsCC,WAAtC,QAAwD,+BAAxD;AACA,SAAQC,UAAU,IAAIC,WAAtB,QAAwC,+BAAxC;AAGA,SAAQC,UAAR,QAAyB,eAAzB;AAOA,OAAO,KAAKC,IAAZ,MAAsB,uBAAtB;AACA,SAAQA,IAAR;AAGA,SAAQC,QAAR,EAAkBC,QAAlB,EAA4BC,mBAA5B,QAAsD,iCAAtD;AAKA,OAAO,KAAKC,IAAZ,MAAsB,iBAAtB;AACA,SAAQA,IAAR;AAEA,SAAQC,SAAR,QAAwB,iBAAxB;AAGA,OAAO,KAAKC,EAAZ,MAAoB,eAApB;AACA,SAAQA,EAAR;AAGA,SAAQd,OAAO,IAAIe,eAAnB,QAAyC,mCAAzC","sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","canEncodeWithWorker","parseJSON","toArrayBuffer","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","path","isBuffer","toBuffer","bufferToArrayBuffer","util","promisify","fs","_NodeFileSystem"],"mappings":"AAgBA,SAAQA,MAAR,QAAqB,wBAArB;AACA,SACEC,SADF,EAEEC,QAFF,EAGEC,WAHF,EAIEC,IAJF,EAKEC,MALF,EAMEC,MANF,EAOEC,QAPF,QAQO,yBARP;AAWA,SAAQC,kBAAR,QAAiC,gDAAjC;AACA,SAAQC,eAAR,EAAyBC,kBAAzB,QAAkD,6CAAlD;AACA,SAAQC,mBAAR,QAAkC,8CAAlC;AAGA,SAAQC,SAAR,QAAwB,+BAAxB;AAGA,SACEC,aADF,EAEEC,gBAFF,EAGEC,uBAHF,EAIEC,sBAJF,EAKEC,mBALF,QAMO,uCANP;AAOA,SAAQC,WAAR,EAAqBC,WAArB,EAAkCC,eAAlC,QAAwD,sCAAxD;AACA,SACEC,+BADF,EAEEC,0BAFF,QAGO,sCAHP;AAIA,SACEC,wBADF,EAEEC,oBAFF,EAGEC,oBAHF,QAIO,iCAJP;AAKA,SAAQC,kBAAR,EAA4BC,cAA5B,QAAiD,yCAAjD;AAGA,SACEC,uBADF,EAEEC,uBAFF,EAGEC,gBAHF,EAIEC,wBAJF,QAKO,gCALP;AAMA,SAAQC,OAAR,EAAiBC,4BAAjB,QAAoD,iCAApD;AAGA,SAAQC,OAAO,IAAIC,gBAAnB,QAA0C,uCAA1C;AAGA,SAAQC,aAAR,EAAuBC,aAAvB,EAAsCC,WAAtC,QAAwD,+BAAxD;AACA,SAAQC,UAAU,IAAIC,WAAtB,QAAwC,+BAAxC;AAGA,SAAQC,UAAR,QAAyB,eAAzB;AAOA,OAAO,KAAKC,IAAZ,MAAsB,uBAAtB;AACA,SAAQA,IAAR;AAGA,SAAQC,QAAR,EAAkBC,QAAlB,EAA4BC,mBAA5B,QAAsD,iCAAtD;AAKA,OAAO,KAAKC,IAAZ,MAAsB,iBAAtB;AACA,SAAQA,IAAR;AAEA,SAAQC,SAAR,QAAwB,iBAAxB;AAGA,OAAO,KAAKC,EAAZ,MAAoB,eAApB;AACA,SAAQA,EAAR;AAGA,SAAQd,OAAO,IAAIe,eAAnB,QAAyC,mCAAzC","sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"file":"index.js"}
|
package/dist/esm/json-loader.js
CHANGED
|
@@ -11,13 +11,14 @@ export function createLoaderWorker(loader) {
|
|
|
11
11
|
try {
|
|
12
12
|
const {
|
|
13
13
|
input,
|
|
14
|
-
options = {}
|
|
14
|
+
options = {},
|
|
15
|
+
context = {}
|
|
15
16
|
} = payload;
|
|
16
17
|
const result = await parseData({
|
|
17
18
|
loader,
|
|
18
19
|
arrayBuffer: input,
|
|
19
20
|
options,
|
|
20
|
-
context: {
|
|
21
|
+
context: { ...context,
|
|
21
22
|
parse: parseOnMainThread
|
|
22
23
|
}
|
|
23
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":["WorkerBody","requestId","createLoaderWorker","loader","inWorkerThread","onmessage","type","payload","input","options","result","parseData","arrayBuffer","
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":["WorkerBody","requestId","createLoaderWorker","loader","inWorkerThread","onmessage","type","payload","input","options","context","result","parseData","arrayBuffer","parse","parseOnMainThread","postMessage","error","message","Error","Promise","resolve","reject","id","onMessage","removeEventListener","addEventListener","data","parser","parseSync","parseTextSync","textDecoder","TextDecoder","decode","name","modules","worker"],"mappings":"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","sourcesContent":["/* eslint-disable no-restricted-globals */\nimport type {LoaderWithParser} from '../../types';\nimport {WorkerBody} from '@loaders.gl/worker-utils';\n// import {validateLoaderVersion} from './validate-loader-version';\n\nlet requestId = 0;\n\n/**\n * Set up a WebWorkerGlobalScope to talk with the main thread\n * @param loader\n */\nexport function createLoaderWorker(loader: LoaderWithParser) {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload) => {\n switch (type) {\n case 'process':\n try {\n // validateLoaderVersion(loader, data.source.split('@')[1]);\n\n const {input, options = {}, context = {}} = payload;\n\n const result = await parseData({\n loader,\n arrayBuffer: input,\n options,\n context: {\n ...context,\n parse: parseOnMainThread\n }\n });\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n}\n\nfunction parseOnMainThread(arrayBuffer: ArrayBuffer, options: {[key: string]: any}): Promise<void> {\n return new Promise((resolve, reject) => {\n const id = requestId++;\n\n /**\n */\n const onMessage = (type, payload) => {\n if (payload.id !== id) {\n // not ours\n return;\n }\n\n switch (type) {\n case 'done':\n WorkerBody.removeEventListener(onMessage);\n resolve(payload.result);\n break;\n\n case 'error':\n WorkerBody.removeEventListener(onMessage);\n reject(payload.error);\n break;\n\n default:\n // ignore\n }\n };\n\n WorkerBody.addEventListener(onMessage);\n\n // Ask the main thread to decode data\n const payload = {id, input: arrayBuffer, options};\n WorkerBody.postMessage('process', payload);\n });\n}\n\n// TODO - Support byteOffset and byteLength (enabling parsing of embedded binaries without copies)\n// TODO - Why not support async loader.parse* funcs here?\n// TODO - Why not reuse a common function instead of reimplementing loader.parse* selection logic? Keeping loader small?\n// TODO - Lack of appropriate parser functions can be detected when we create worker, no need to wait until parse\nasync function parseData({loader, arrayBuffer, options, context}) {\n let data;\n let parser;\n if (loader.parseSync || loader.parse) {\n data = arrayBuffer;\n parser = loader.parseSync || loader.parse;\n } else if (loader.parseTextSync) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(arrayBuffer);\n parser = loader.parseTextSync;\n } else {\n throw new Error(`Could not load data with ${loader.name} loader`);\n }\n\n // TODO - proper merge in of loader options...\n options = {\n ...options,\n modules: (loader && loader.options && loader.options.modules) || {},\n worker: false\n };\n\n return await parser(data, {...options}, context, loader);\n}\n"],"file":"create-loader-worker.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WorkerFarm } from '@loaders.gl/worker-utils';
|
|
2
|
+
import { isBrowser } from '../env-utils/globals';
|
|
3
|
+
export function canEncodeWithWorker(writer, options) {
|
|
4
|
+
if (!WorkerFarm.isSupported()) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (!isBrowser && !(options !== null && options !== void 0 && options._nodeWorkers)) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return writer.worker && (options === null || options === void 0 ? void 0 : options.worker);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=encode-with-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/encode-with-worker.ts"],"names":["WorkerFarm","isBrowser","canEncodeWithWorker","writer","options","isSupported","_nodeWorkers","worker"],"mappings":"AAAA,SAAQA,UAAR,QAAyB,0BAAzB;AAEA,SAAQC,SAAR,QAAwB,sBAAxB;AAOA,OAAO,SAASC,mBAAT,CAA6BC,MAA7B,EAA6CC,OAA7C,EAAsE;AAC3E,MAAI,CAACJ,UAAU,CAACK,WAAX,EAAL,EAA+B;AAC7B,WAAO,KAAP;AACD;;AAGD,MAAI,CAACJ,SAAD,IAAc,EAACG,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEE,YAAV,CAAlB,EAA0C;AACxC,WAAO,KAAP;AACD;;AAED,SAAOH,MAAM,CAACI,MAAP,KAAiBH,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEG,MAA1B,CAAP;AACD","sourcesContent":["import {WorkerFarm} from '@loaders.gl/worker-utils';\nimport {Writer, WriterOptions} from '../../types';\nimport {isBrowser} from '../env-utils/globals';\n\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canEncodeWithWorker(writer: Writer, options?: WriterOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n // Node workers are still experimental\n if (!isBrowser && !options?._nodeWorkers) {\n return false;\n }\n\n return writer.worker && options?.worker;\n}\n"],"file":"encode-with-worker.js"}
|
|
@@ -20,10 +20,12 @@ export async function parseWithWorker(loader, data, options, context, parseOnMai
|
|
|
20
20
|
url
|
|
21
21
|
});
|
|
22
22
|
options = JSON.parse(JSON.stringify(options));
|
|
23
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
23
24
|
const job = await workerPool.startJob('process-on-worker', onMessage.bind(null, parseOnMainThread));
|
|
24
25
|
job.postMessage('process', {
|
|
25
26
|
input: data,
|
|
26
|
-
options
|
|
27
|
+
options,
|
|
28
|
+
context
|
|
27
29
|
});
|
|
28
30
|
const result = await job.result;
|
|
29
31
|
return await result.result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":["isBrowser","WorkerFarm","getWorkerURL","canParseWithWorker","loader","options","isSupported","_nodeWorkers","worker","parseWithWorker","data","context","parseOnMainThread","name","id","url","workerFarm","getWorkerFarm","workerPool","getWorkerPool","JSON","parse","stringify","job","startJob","onMessage","bind","postMessage","input","result","type","payload","done","error","Error","message","console","warn"],"mappings":"AAAA,SAIEA,SAJF,QAKO,0BALP;AAOA,SAAQC,UAAR,EAAoBC,YAApB,QAAuC,0BAAvC;AAOA,OAAO,SAASC,kBAAT,CAA4BC,MAA5B,EAA4CC,OAA5C,EAAqE;AAC1E,MAAI,CAACJ,UAAU,CAACK,WAAX,EAAL,EAA+B;AAC7B,WAAO,KAAP;AACD;;AAGD,MAAI,CAACN,SAAD,IAAc,EAACK,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEE,YAAV,CAAlB,EAA0C;AACxC,WAAO,KAAP;AACD;;AAED,SAAOH,MAAM,CAACI,MAAP,KAAiBH,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEG,MAA1B,CAAP;AACD;AAMD,OAAO,eAAeC,eAAf,CACLL,MADK,EAELM,IAFK,EAGLL,OAHK,EAILM,OAJK,EAKLC,iBALK,EAML;AACA,QAAMC,IAAI,GAAGT,MAAM,CAACU,EAApB;AACA,QAAMC,GAAG,GAAGb,YAAY,CAACE,MAAD,EAASC,OAAT,CAAxB;AAEA,QAAMW,UAAU,GAAGf,UAAU,CAACgB,aAAX,CAAyBZ,OAAzB,CAAnB;AACA,QAAMa,UAAU,GAAGF,UAAU,CAACG,aAAX,CAAyB;AAACN,IAAAA,IAAD;AAAOE,IAAAA;AAAP,GAAzB,CAAnB;
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":["isBrowser","WorkerFarm","getWorkerURL","canParseWithWorker","loader","options","isSupported","_nodeWorkers","worker","parseWithWorker","data","context","parseOnMainThread","name","id","url","workerFarm","getWorkerFarm","workerPool","getWorkerPool","JSON","parse","stringify","job","startJob","onMessage","bind","postMessage","input","result","type","payload","done","error","Error","message","console","warn"],"mappings":"AAAA,SAIEA,SAJF,QAKO,0BALP;AAOA,SAAQC,UAAR,EAAoBC,YAApB,QAAuC,0BAAvC;AAOA,OAAO,SAASC,kBAAT,CAA4BC,MAA5B,EAA4CC,OAA5C,EAAqE;AAC1E,MAAI,CAACJ,UAAU,CAACK,WAAX,EAAL,EAA+B;AAC7B,WAAO,KAAP;AACD;;AAGD,MAAI,CAACN,SAAD,IAAc,EAACK,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEE,YAAV,CAAlB,EAA0C;AACxC,WAAO,KAAP;AACD;;AAED,SAAOH,MAAM,CAACI,MAAP,KAAiBH,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEG,MAA1B,CAAP;AACD;AAMD,OAAO,eAAeC,eAAf,CACLL,MADK,EAELM,IAFK,EAGLL,OAHK,EAILM,OAJK,EAKLC,iBALK,EAML;AACA,QAAMC,IAAI,GAAGT,MAAM,CAACU,EAApB;AACA,QAAMC,GAAG,GAAGb,YAAY,CAACE,MAAD,EAASC,OAAT,CAAxB;AAEA,QAAMW,UAAU,GAAGf,UAAU,CAACgB,aAAX,CAAyBZ,OAAzB,CAAnB;AACA,QAAMa,UAAU,GAAGF,UAAU,CAACG,aAAX,CAAyB;AAACN,IAAAA,IAAD;AAAOE,IAAAA;AAAP,GAAzB,CAAnB;AAKAV,EAAAA,OAAO,GAAGe,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAejB,OAAf,CAAX,CAAV;AACAM,EAAAA,OAAO,GAAGS,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeX,OAAO,IAAI,EAA1B,CAAX,CAAV;AAEA,QAAMY,GAAG,GAAG,MAAML,UAAU,CAACM,QAAX,CAChB,mBADgB,EAGhBC,SAAS,CAACC,IAAV,CAAe,IAAf,EAAqBd,iBAArB,CAHgB,CAAlB;AAMAW,EAAAA,GAAG,CAACI,WAAJ,CAAgB,SAAhB,EAA2B;AAEzBC,IAAAA,KAAK,EAAElB,IAFkB;AAGzBL,IAAAA,OAHyB;AAIzBM,IAAAA;AAJyB,GAA3B;AAOA,QAAMkB,MAAM,GAAG,MAAMN,GAAG,CAACM,MAAzB;AAEA,SAAO,MAAMA,MAAM,CAACA,MAApB;AACD;;AAQD,eAAeJ,SAAf,CACEb,iBADF,EAEEW,GAFF,EAGEO,IAHF,EAIEC,OAJF,EAKE;AACA,UAAQD,IAAR;AACE,SAAK,MAAL;AACEP,MAAAA,GAAG,CAACS,IAAJ,CAASD,OAAT;AACA;;AAEF,SAAK,OAAL;AACER,MAAAA,GAAG,CAACU,KAAJ,CAAU,IAAIC,KAAJ,CAAUH,OAAO,CAACE,KAAlB,CAAV;AACA;;AAEF,SAAK,SAAL;AAEE,YAAM;AAACnB,QAAAA,EAAD;AAAKc,QAAAA,KAAL;AAAYvB,QAAAA;AAAZ,UAAuB0B,OAA7B;;AACA,UAAI;AACF,cAAMF,MAAM,GAAG,MAAMjB,iBAAiB,CAACgB,KAAD,EAAQvB,OAAR,CAAtC;AACAkB,QAAAA,GAAG,CAACI,WAAJ,CAAgB,MAAhB,EAAwB;AAACb,UAAAA,EAAD;AAAKe,UAAAA;AAAL,SAAxB;AACD,OAHD,CAGE,OAAOI,KAAP,EAAc;AACd,cAAME,OAAO,GAAGF,KAAK,YAAYC,KAAjB,GAAyBD,KAAK,CAACE,OAA/B,GAAyC,eAAzD;AACAZ,QAAAA,GAAG,CAACI,WAAJ,CAAgB,OAAhB,EAAyB;AAACb,UAAAA,EAAD;AAAKmB,UAAAA,KAAK,EAAEE;AAAZ,SAAzB;AACD;;AACD;;AAEF;AAEEC,MAAAA,OAAO,CAACC,IAAR,6CAAkDP,IAAlD;AAvBJ;AAyBD","sourcesContent":["import {\n WorkerJob,\n WorkerMessageType,\n WorkerMessagePayload,\n isBrowser\n} from '@loaders.gl/worker-utils';\nimport type {Loader, LoaderOptions, LoaderContext} from '../../types';\nimport {WorkerFarm, getWorkerURL} from '@loaders.gl/worker-utils';\n\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canParseWithWorker(loader: Loader, options?: LoaderOptions) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n\n // Node workers are still experimental\n if (!isBrowser && !options?._nodeWorkers) {\n return false;\n }\n\n return loader.worker && options?.worker;\n}\n\n/**\n * this function expects that the worker function sends certain messages,\n * this can be automated if the worker is wrapper by a call to createLoaderWorker in @loaders.gl/loader-utils.\n */\nexport async function parseWithWorker(\n loader: Loader,\n data: any,\n options?: LoaderOptions,\n context?: LoaderContext,\n parseOnMainThread?: (arrayBuffer: ArrayBuffer, options: {[key: string]: any}) => Promise<void>\n) {\n const name = loader.id; // TODO\n const url = getWorkerURL(loader, options);\n\n const workerFarm = WorkerFarm.getWorkerFarm(options);\n const workerPool = workerFarm.getWorkerPool({name, url});\n\n // options.log object contains functions which cannot be transferred\n // context.fetch & context.parse functions cannot be transferred\n // TODO - decide how to handle logging on workers\n options = JSON.parse(JSON.stringify(options));\n context = JSON.parse(JSON.stringify(context || {}));\n\n const job = await workerPool.startJob(\n 'process-on-worker',\n // @ts-expect-error\n onMessage.bind(null, parseOnMainThread) // eslint-disable-line @typescript-eslint/no-misused-promises\n );\n\n job.postMessage('process', {\n // @ts-ignore\n input: data,\n options,\n context\n });\n\n const result = await job.result;\n // TODO - what is going on here?\n return await result.result;\n}\n\n/**\n * Handle worker's responses to the main thread\n * @param job\n * @param type\n * @param payload\n */\nasync function onMessage(\n parseOnMainThread: (arrayBuffer: ArrayBuffer, options?: {[key: string]: any}) => Promise<void>,\n job: WorkerJob,\n type: WorkerMessageType,\n payload: WorkerMessagePayload\n) {\n switch (type) {\n case 'done':\n job.done(payload);\n break;\n\n case 'error':\n job.error(new Error(payload.error));\n break;\n\n case 'process':\n // Worker is asking for main thread to parseO\n const {id, input, options} = payload;\n try {\n const result = await parseOnMainThread(input, options);\n job.postMessage('done', {id, result});\n } catch (error) {\n const message = error instanceof Error ? error.message : 'unknown error';\n job.postMessage('error', {id, error: message});\n }\n break;\n\n default:\n // eslint-disable-next-line\n console.warn(`parse-with-worker unknown message ${type}`);\n }\n}\n"],"file":"parse-with-worker.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { assert } from './lib/env-utils/assert';
|
|
|
3
3
|
export { isBrowser, isWorker, nodeVersion, self, window, global, document } from './lib/env-utils/globals';
|
|
4
4
|
export { createLoaderWorker } from './lib/worker-loader-utils/create-loader-worker';
|
|
5
5
|
export { parseWithWorker, canParseWithWorker } from './lib/worker-loader-utils/parse-with-worker';
|
|
6
|
+
export { canEncodeWithWorker } from './lib/worker-loader-utils/encode-with-worker';
|
|
6
7
|
export { parseJSON } from './lib/parser-utils/parse-json';
|
|
7
8
|
export { toArrayBuffer, sliceArrayBuffer, concatenateArrayBuffers, concatenateTypedArrays, compareArrayBuffers } from './lib/binary-utils/array-buffer-utils';
|
|
8
9
|
export { padToNBytes, copyToArray, copyArrayBuffer } from './lib/binary-utils/memory-copy-utils';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,iCAAiC,CAAC;AAGtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AAGlF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAOzC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAKxF,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,IAAI,EAAC,CAAC;AAEd,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,CAAC;AAGZ,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports._NodeFileSystem = exports.fs = exports.promisify = exports.util = exports.bufferToArrayBuffer = exports.toBuffer = exports.isBuffer = exports.path = exports.JSONLoader = exports._addAliases = exports.resolvePath = exports.getPathPrefix = exports.setPathPrefix = exports.RequestScheduler = exports.concatenateArrayBuffersAsync = exports.forEach = exports.makeNumberedLineIterator = exports.makeLineIterator = exports.makeTextDecoderIterator = exports.makeTextEncoderIterator = exports.getMagicString = exports.getFirstCharacters = exports.copyBinaryToDataView = exports.copyStringToDataView = exports.padStringToByteAlignment = exports.copyPaddedStringToDataView = exports.copyPaddedArrayBufferToDataView = exports.copyArrayBuffer = exports.copyToArray = exports.padToNBytes = exports.compareArrayBuffers = exports.concatenateTypedArrays = exports.concatenateArrayBuffers = exports.sliceArrayBuffer = exports.toArrayBuffer = exports.parseJSON = exports.canParseWithWorker = exports.parseWithWorker = exports.createLoaderWorker = exports.document = exports.global = exports.window = exports.self = exports.nodeVersion = exports.isWorker = exports.isBrowser = exports.assert = void 0;
|
|
25
|
+
exports._NodeFileSystem = exports.fs = exports.promisify = exports.util = exports.bufferToArrayBuffer = exports.toBuffer = exports.isBuffer = exports.path = exports.JSONLoader = exports._addAliases = exports.resolvePath = exports.getPathPrefix = exports.setPathPrefix = exports.RequestScheduler = exports.concatenateArrayBuffersAsync = exports.forEach = exports.makeNumberedLineIterator = exports.makeLineIterator = exports.makeTextDecoderIterator = exports.makeTextEncoderIterator = exports.getMagicString = exports.getFirstCharacters = exports.copyBinaryToDataView = exports.copyStringToDataView = exports.padStringToByteAlignment = exports.copyPaddedStringToDataView = exports.copyPaddedArrayBufferToDataView = exports.copyArrayBuffer = exports.copyToArray = exports.padToNBytes = exports.compareArrayBuffers = exports.concatenateTypedArrays = exports.concatenateArrayBuffers = exports.sliceArrayBuffer = exports.toArrayBuffer = exports.parseJSON = exports.canEncodeWithWorker = exports.canParseWithWorker = exports.parseWithWorker = exports.createLoaderWorker = exports.document = exports.global = exports.window = exports.self = exports.nodeVersion = exports.isWorker = exports.isBrowser = exports.assert = void 0;
|
|
26
26
|
// GENERAL UTILS
|
|
27
27
|
var assert_1 = require("./lib/env-utils/assert");
|
|
28
28
|
Object.defineProperty(exports, "assert", { enumerable: true, get: function () { return assert_1.assert; } });
|
|
@@ -40,6 +40,8 @@ Object.defineProperty(exports, "createLoaderWorker", { enumerable: true, get: fu
|
|
|
40
40
|
var parse_with_worker_1 = require("./lib/worker-loader-utils/parse-with-worker");
|
|
41
41
|
Object.defineProperty(exports, "parseWithWorker", { enumerable: true, get: function () { return parse_with_worker_1.parseWithWorker; } });
|
|
42
42
|
Object.defineProperty(exports, "canParseWithWorker", { enumerable: true, get: function () { return parse_with_worker_1.canParseWithWorker; } });
|
|
43
|
+
var encode_with_worker_1 = require("./lib/worker-loader-utils/encode-with-worker");
|
|
44
|
+
Object.defineProperty(exports, "canEncodeWithWorker", { enumerable: true, get: function () { return encode_with_worker_1.canEncodeWithWorker; } });
|
|
43
45
|
// PARSER UTILS
|
|
44
46
|
var parse_json_1 = require("./lib/parser-utils/parse-json");
|
|
45
47
|
Object.defineProperty(exports, "parseJSON", { enumerable: true, get: function () { return parse_json_1.parseJSON; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-loader-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAMlD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"create-loader-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/worker-loader-utils/create-loader-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAMlD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,QAgC1D"}
|
|
@@ -18,12 +18,13 @@ function createLoaderWorker(loader) {
|
|
|
18
18
|
case 'process':
|
|
19
19
|
try {
|
|
20
20
|
// validateLoaderVersion(loader, data.source.split('@')[1]);
|
|
21
|
-
const { input, options = {} } = payload;
|
|
21
|
+
const { input, options = {}, context = {} } = payload;
|
|
22
22
|
const result = await parseData({
|
|
23
23
|
loader,
|
|
24
24
|
arrayBuffer: input,
|
|
25
25
|
options,
|
|
26
26
|
context: {
|
|
27
|
+
...context,
|
|
27
28
|
parse: parseOnMainThread
|
|
28
29
|
}
|
|
29
30
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Writer, WriterOptions } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Determines if a loader can parse with worker
|
|
4
|
+
* @param loader
|
|
5
|
+
* @param options
|
|
6
|
+
*/
|
|
7
|
+
export declare function canEncodeWithWorker(writer: Writer, options?: WriterOptions): any;
|
|
8
|
+
//# sourceMappingURL=encode-with-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-with-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/worker-loader-utils/encode-with-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAGlD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,OAW1E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canEncodeWithWorker = void 0;
|
|
4
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
5
|
+
const globals_1 = require("../env-utils/globals");
|
|
6
|
+
/**
|
|
7
|
+
* Determines if a loader can parse with worker
|
|
8
|
+
* @param loader
|
|
9
|
+
* @param options
|
|
10
|
+
*/
|
|
11
|
+
function canEncodeWithWorker(writer, options) {
|
|
12
|
+
if (!worker_utils_1.WorkerFarm.isSupported()) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
// Node workers are still experimental
|
|
16
|
+
if (!globals_1.isBrowser && !options?._nodeWorkers) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return writer.worker && options?.worker;
|
|
20
|
+
}
|
|
21
|
+
exports.canEncodeWithWorker = canEncodeWithWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-with-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAGtE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,4BAWzE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,EACvB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"parse-with-worker.d.ts","sourceRoot":"","sources":["../../../src/lib/worker-loader-utils/parse-with-worker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAGtE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,4BAWzE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,EACvB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,gBA8B/F"}
|
|
@@ -29,8 +29,10 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
29
29
|
const workerFarm = worker_utils_2.WorkerFarm.getWorkerFarm(options);
|
|
30
30
|
const workerPool = workerFarm.getWorkerPool({ name, url });
|
|
31
31
|
// options.log object contains functions which cannot be transferred
|
|
32
|
+
// context.fetch & context.parse functions cannot be transferred
|
|
32
33
|
// TODO - decide how to handle logging on workers
|
|
33
34
|
options = JSON.parse(JSON.stringify(options));
|
|
35
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
34
36
|
const job = await workerPool.startJob('process-on-worker',
|
|
35
37
|
// @ts-expect-error
|
|
36
38
|
onMessage.bind(null, parseOnMainThread) // eslint-disable-line @typescript-eslint/no-misused-promises
|
|
@@ -38,7 +40,8 @@ async function parseWithWorker(loader, data, options, context, parseOnMainThread
|
|
|
38
40
|
job.postMessage('process', {
|
|
39
41
|
// @ts-ignore
|
|
40
42
|
input: data,
|
|
41
|
-
options
|
|
43
|
+
options,
|
|
44
|
+
context
|
|
42
45
|
});
|
|
43
46
|
const result = await job.result;
|
|
44
47
|
// TODO - what is going on here?
|
package/dist/types.d.ts
CHANGED
|
@@ -118,7 +118,12 @@ export declare type LoaderWithParser = Loader & {
|
|
|
118
118
|
parseFileInBatches?: ParseFileInBatches;
|
|
119
119
|
};
|
|
120
120
|
/** Options for writers */
|
|
121
|
-
export declare type WriterOptions = {
|
|
121
|
+
export declare type WriterOptions = {
|
|
122
|
+
/** worker source. If is set will be used instead of loading worker from the Internet */
|
|
123
|
+
souce?: string | null;
|
|
124
|
+
/** writer-specific options */
|
|
125
|
+
[writerId: string]: any;
|
|
126
|
+
};
|
|
122
127
|
/**
|
|
123
128
|
* A writer definition that can be used with `@loaders.gl/core` functions
|
|
124
129
|
*/
|
|
@@ -127,7 +132,8 @@ export declare type Writer = {
|
|
|
127
132
|
id: string;
|
|
128
133
|
module: string;
|
|
129
134
|
version: string;
|
|
130
|
-
|
|
135
|
+
worker?: string | boolean;
|
|
136
|
+
options: WriterOptions;
|
|
131
137
|
deprecatedOptions?: object;
|
|
132
138
|
binary?: boolean;
|
|
133
139
|
extensions?: string[];
|
|
@@ -143,6 +149,7 @@ export declare type LoaderContext = {
|
|
|
143
149
|
loaders?: Loader[] | null;
|
|
144
150
|
url?: string;
|
|
145
151
|
fetch: typeof fetch;
|
|
152
|
+
response?: Response;
|
|
146
153
|
parse: (arrayBuffer: ArrayBuffer, loaders?: any, options?: LoaderOptions, context?: LoaderContext) => Promise<any>;
|
|
147
154
|
parseSync?: (arrayBuffer: ArrayBuffer, loaders?: any, options?: LoaderOptions, context?: LoaderContext) => any;
|
|
148
155
|
parseInBatches?: (iterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, loaders?: any, options?: LoaderOptions, context?: LoaderContext) => AsyncIterable<any> | Promise<AsyncIterable<any>>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/loader-utils",
|
|
3
|
-
"version": "3.2.0-alpha.
|
|
3
|
+
"version": "3.2.0-alpha.4",
|
|
4
4
|
"description": "Framework-independent loaders for 3D graphics formats",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"scripts": {},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@babel/runtime": "^7.3.1",
|
|
48
|
-
"@loaders.gl/worker-utils": "3.2.0-alpha.
|
|
48
|
+
"@loaders.gl/worker-utils": "3.2.0-alpha.4",
|
|
49
49
|
"@probe.gl/stats": "^3.5.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "f030d39d5cdedb137e43e757a9da10dd637857fd"
|
|
52
52
|
}
|
package/src/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ export {
|
|
|
28
28
|
// LOADERS.GL-SPECIFIC WORKER UTILS
|
|
29
29
|
export {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';
|
|
30
30
|
export {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';
|
|
31
|
+
export {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';
|
|
31
32
|
|
|
32
33
|
// PARSER UTILS
|
|
33
34
|
export {parseJSON} from './lib/parser-utils/parse-json';
|
|
@@ -21,13 +21,14 @@ export function createLoaderWorker(loader: LoaderWithParser) {
|
|
|
21
21
|
try {
|
|
22
22
|
// validateLoaderVersion(loader, data.source.split('@')[1]);
|
|
23
23
|
|
|
24
|
-
const {input, options = {}} = payload;
|
|
24
|
+
const {input, options = {}, context = {}} = payload;
|
|
25
25
|
|
|
26
26
|
const result = await parseData({
|
|
27
27
|
loader,
|
|
28
28
|
arrayBuffer: input,
|
|
29
29
|
options,
|
|
30
30
|
context: {
|
|
31
|
+
...context,
|
|
31
32
|
parse: parseOnMainThread
|
|
32
33
|
}
|
|
33
34
|
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {WorkerFarm} from '@loaders.gl/worker-utils';
|
|
2
|
+
import {Writer, WriterOptions} from '../../types';
|
|
3
|
+
import {isBrowser} from '../env-utils/globals';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Determines if a loader can parse with worker
|
|
7
|
+
* @param loader
|
|
8
|
+
* @param options
|
|
9
|
+
*/
|
|
10
|
+
export function canEncodeWithWorker(writer: Writer, options?: WriterOptions) {
|
|
11
|
+
if (!WorkerFarm.isSupported()) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Node workers are still experimental
|
|
16
|
+
if (!isBrowser && !options?._nodeWorkers) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return writer.worker && options?.worker;
|
|
21
|
+
}
|
|
@@ -43,8 +43,10 @@ export async function parseWithWorker(
|
|
|
43
43
|
const workerPool = workerFarm.getWorkerPool({name, url});
|
|
44
44
|
|
|
45
45
|
// options.log object contains functions which cannot be transferred
|
|
46
|
+
// context.fetch & context.parse functions cannot be transferred
|
|
46
47
|
// TODO - decide how to handle logging on workers
|
|
47
48
|
options = JSON.parse(JSON.stringify(options));
|
|
49
|
+
context = JSON.parse(JSON.stringify(context || {}));
|
|
48
50
|
|
|
49
51
|
const job = await workerPool.startJob(
|
|
50
52
|
'process-on-worker',
|
|
@@ -55,7 +57,8 @@ export async function parseWithWorker(
|
|
|
55
57
|
job.postMessage('process', {
|
|
56
58
|
// @ts-ignore
|
|
57
59
|
input: data,
|
|
58
|
-
options
|
|
60
|
+
options,
|
|
61
|
+
context
|
|
59
62
|
});
|
|
60
63
|
|
|
61
64
|
const result = await job.result;
|
package/src/types.ts
CHANGED
|
@@ -158,7 +158,12 @@ export type LoaderWithParser = Loader & {
|
|
|
158
158
|
};
|
|
159
159
|
|
|
160
160
|
/** Options for writers */
|
|
161
|
-
export type WriterOptions = {
|
|
161
|
+
export type WriterOptions = {
|
|
162
|
+
/** worker source. If is set will be used instead of loading worker from the Internet */
|
|
163
|
+
souce?: string | null;
|
|
164
|
+
/** writer-specific options */
|
|
165
|
+
[writerId: string]: any;
|
|
166
|
+
};
|
|
162
167
|
|
|
163
168
|
/**
|
|
164
169
|
* A writer definition that can be used with `@loaders.gl/core` functions
|
|
@@ -169,8 +174,9 @@ export type Writer = {
|
|
|
169
174
|
id: string;
|
|
170
175
|
module: string;
|
|
171
176
|
version: string;
|
|
177
|
+
worker?: string | boolean;
|
|
172
178
|
|
|
173
|
-
options:
|
|
179
|
+
options: WriterOptions;
|
|
174
180
|
deprecatedOptions?: object;
|
|
175
181
|
|
|
176
182
|
// TODO - are these are needed?
|
|
@@ -191,6 +197,7 @@ export type LoaderContext = {
|
|
|
191
197
|
url?: string;
|
|
192
198
|
|
|
193
199
|
fetch: typeof fetch;
|
|
200
|
+
response?: Response;
|
|
194
201
|
parse: (
|
|
195
202
|
arrayBuffer: ArrayBuffer,
|
|
196
203
|
loaders?,
|