@loaders.gl/core 3.2.0-alpha.1 → 3.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/dist.min.js +138 -30
  2. package/dist/es5/index.js +8 -2
  3. package/dist/es5/index.js.map +1 -1
  4. package/dist/es5/lib/api/encode.js +75 -50
  5. package/dist/es5/lib/api/encode.js.map +1 -1
  6. package/dist/es5/lib/api/loader-options.js +20 -0
  7. package/dist/es5/lib/api/loader-options.js.map +1 -0
  8. package/dist/es5/lib/init.js +1 -1
  9. package/dist/es5/lib/loader-utils/option-utils.js +3 -0
  10. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  11. package/dist/es5/lib/utils/response-utils.js +2 -2
  12. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  13. package/dist/es5/null-loader.js +1 -1
  14. package/dist/esm/index.js +1 -1
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/lib/api/encode.js +12 -0
  17. package/dist/esm/lib/api/encode.js.map +1 -1
  18. package/dist/esm/lib/api/loader-options.js +3 -0
  19. package/dist/esm/lib/api/loader-options.js.map +1 -0
  20. package/dist/esm/lib/init.js +1 -1
  21. package/dist/esm/lib/loader-utils/option-utils.js +1 -3
  22. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
  23. package/dist/esm/lib/utils/response-utils.js +2 -2
  24. package/dist/esm/lib/utils/response-utils.js.map +1 -1
  25. package/dist/esm/null-loader.js +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -4
  29. package/dist/lib/api/encode.d.ts +1 -1
  30. package/dist/lib/api/encode.d.ts.map +1 -1
  31. package/dist/lib/api/encode.js +13 -5
  32. package/dist/lib/api/loader-options.d.ts +3 -0
  33. package/dist/lib/api/loader-options.d.ts.map +1 -0
  34. package/dist/lib/api/loader-options.js +7 -0
  35. package/dist/lib/loader-utils/option-utils.d.ts +8 -0
  36. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  37. package/dist/lib/loader-utils/option-utils.js +10 -6
  38. package/dist/lib/utils/response-utils.js +2 -2
  39. package/dist/null-worker.js +1 -1
  40. package/package.json +4 -4
  41. package/src/index.ts +1 -1
  42. package/src/lib/api/encode.ts +9 -1
  43. package/src/lib/api/loader-options.ts +2 -0
  44. package/src/lib/loader-utils/option-utils.ts +6 -3
  45. package/src/lib/utils/response-utils.ts +2 -2
  46. package/dist/es5/lib/api/set-loader-options.js +0 -13
  47. package/dist/es5/lib/api/set-loader-options.js.map +0 -1
  48. package/dist/esm/lib/api/set-loader-options.js +0 -5
  49. package/dist/esm/lib/api/set-loader-options.js.map +0 -1
  50. package/dist/lib/api/set-loader-options.d.ts +0 -6
  51. package/dist/lib/api/set-loader-options.d.ts.map +0 -1
  52. package/dist/lib/api/set-loader-options.js +0 -12
  53. package/src/lib/api/set-loader-options.ts +0 -9
package/dist/dist.min.js CHANGED
@@ -268,7 +268,7 @@
268
268
  this.worker = isBrowser2 ? this._createBrowserWorker() : this._createNodeWorker();
269
269
  }
270
270
  static isSupported() {
271
- return typeof Worker !== "undefined" && isBrowser2;
271
+ return typeof Worker !== "undefined" && isBrowser2 || typeof Worker2 !== void 0;
272
272
  }
273
273
  destroy() {
274
274
  this.onMessage = NOOP;
@@ -385,9 +385,9 @@
385
385
  this.onDebug = props.onDebug;
386
386
  }
387
387
  }
388
- async startJob(name, onMessage2 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
388
+ async startJob(name, onMessage3 = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {
389
389
  const startPromise = new Promise((onStart) => {
390
- this.jobQueue.push({ name, onMessage: onMessage2, onError, onStart });
390
+ this.jobQueue.push({ name, onMessage: onMessage3, onError, onStart });
391
391
  return this;
392
392
  });
393
393
  this._startQueuedJob();
@@ -516,7 +516,36 @@
516
516
  }
517
517
  });
518
518
 
519
+ // ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
520
+ function removeNontransferableOptions(object) {
521
+ return JSON.parse(stringifyJSON(object));
522
+ }
523
+ function stringifyJSON(v) {
524
+ const cache3 = new Set();
525
+ return JSON.stringify(v, (key, value) => {
526
+ if (typeof value === "object" && value !== null) {
527
+ if (cache3.has(value)) {
528
+ try {
529
+ return JSON.parse(JSON.stringify(value));
530
+ } catch (err) {
531
+ return void 0;
532
+ }
533
+ }
534
+ cache3.add(value);
535
+ }
536
+ return value;
537
+ });
538
+ }
539
+ var init_remove_nontransferable_options = __esm({
540
+ "../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts"() {
541
+ }
542
+ });
543
+
519
544
  // ../worker-utils/src/lib/worker-api/get-worker-url.ts
545
+ function getWorkerName(worker) {
546
+ const warning = worker.version !== VERSION2 ? ` (worker-utils@${VERSION2})` : "";
547
+ return `${worker.name}@${worker.version}${warning}`;
548
+ }
520
549
  function getWorkerURL(worker, options = {}) {
521
550
  const workerOptions = options[worker.id] || {};
522
551
  const workerFile = `${worker.id}-worker.js`;
@@ -538,11 +567,64 @@
538
567
  assert2(url);
539
568
  return url;
540
569
  }
541
- var NPM_TAG;
570
+ var NPM_TAG, VERSION2;
542
571
  var init_get_worker_url = __esm({
543
572
  "../worker-utils/src/lib/worker-api/get-worker-url.ts"() {
544
573
  init_assert2();
574
+ init_version();
545
575
  NPM_TAG = "beta";
576
+ VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
577
+ }
578
+ });
579
+
580
+ // ../worker-utils/src/lib/worker-api/process-on-worker.ts
581
+ async function processOnWorker(worker, data, options = {}, context = {}) {
582
+ const name = getWorkerName(worker);
583
+ const workerFarm = WorkerFarm.getWorkerFarm(options);
584
+ const { source } = options;
585
+ const workerPoolProps = { name, source };
586
+ if (!source) {
587
+ workerPoolProps.url = getWorkerURL(worker, options);
588
+ }
589
+ const workerPool = workerFarm.getWorkerPool(workerPoolProps);
590
+ const jobName = options.jobName || worker.name;
591
+ const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
592
+ const transferableOptions = removeNontransferableOptions(options);
593
+ job.postMessage("process", { input: data, options: transferableOptions });
594
+ const result = await job.result;
595
+ return result.result;
596
+ }
597
+ async function onMessage(context, job, type, payload) {
598
+ switch (type) {
599
+ case "done":
600
+ job.done(payload);
601
+ break;
602
+ case "error":
603
+ job.error(new Error(payload.error));
604
+ break;
605
+ case "process":
606
+ const { id, input, options } = payload;
607
+ try {
608
+ if (!context.process) {
609
+ job.postMessage("error", { id, error: "Worker not set up to process on main thread" });
610
+ return;
611
+ }
612
+ const result = await context.process(input, options);
613
+ job.postMessage("done", { id, result });
614
+ } catch (error) {
615
+ const message = error instanceof Error ? error.message : "unknown error";
616
+ job.postMessage("error", { id, error: message });
617
+ }
618
+ break;
619
+ default:
620
+ console.warn(`process-on-worker: unknown message ${type}`);
621
+ }
622
+ }
623
+ var init_process_on_worker = __esm({
624
+ "../worker-utils/src/lib/worker-api/process-on-worker.ts"() {
625
+ init_worker_farm();
626
+ init_remove_nontransferable_options();
627
+ init_get_worker_url();
546
628
  }
547
629
  });
548
630
 
@@ -568,6 +650,7 @@
568
650
  init_assert2();
569
651
  init_globals2();
570
652
  init_worker_farm();
653
+ init_process_on_worker();
571
654
  init_get_worker_url();
572
655
  init_validate_worker_version();
573
656
  }
@@ -589,7 +672,7 @@
589
672
  const workerFarm = WorkerFarm.getWorkerFarm(options);
590
673
  const workerPool = workerFarm.getWorkerPool({ name, url });
591
674
  options = JSON.parse(JSON.stringify(options));
592
- const job = await workerPool.startJob("process-on-worker", onMessage.bind(null, parseOnMainThread));
675
+ const job = await workerPool.startJob("process-on-worker", onMessage2.bind(null, parseOnMainThread));
593
676
  job.postMessage("process", {
594
677
  input: data,
595
678
  options
@@ -597,7 +680,7 @@
597
680
  const result = await job.result;
598
681
  return await result.result;
599
682
  }
600
- async function onMessage(parseOnMainThread, job, type, payload) {
683
+ async function onMessage2(parseOnMainThread, job, type, payload) {
601
684
  switch (type) {
602
685
  case "done":
603
686
  job.done(payload);
@@ -626,6 +709,23 @@
626
709
  }
627
710
  });
628
711
 
712
+ // ../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts
713
+ function canEncodeWithWorker(writer, options) {
714
+ if (!WorkerFarm.isSupported()) {
715
+ return false;
716
+ }
717
+ if (!isBrowser && !options?._nodeWorkers) {
718
+ return false;
719
+ }
720
+ return writer.worker && options?.worker;
721
+ }
722
+ var init_encode_with_worker = __esm({
723
+ "../loader-utils/src/lib/worker-loader-utils/encode-with-worker.ts"() {
724
+ init_src();
725
+ init_globals();
726
+ }
727
+ });
728
+
629
729
  // (disabled):../loader-utils/src/lib/node/buffer
630
730
  var init_buffer = __esm({
631
731
  "(disabled):../loader-utils/src/lib/node/buffer"() {
@@ -1147,15 +1247,15 @@
1147
1247
  function parseTextSync(text) {
1148
1248
  return JSON.parse(text);
1149
1249
  }
1150
- var VERSION2, JSONLoader;
1250
+ var VERSION3, JSONLoader;
1151
1251
  var init_json_loader = __esm({
1152
1252
  "../loader-utils/src/json-loader.ts"() {
1153
- VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1253
+ VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1154
1254
  JSONLoader = {
1155
1255
  name: "JSON",
1156
1256
  id: "json",
1157
1257
  module: "json",
1158
- version: VERSION2,
1258
+ version: VERSION3,
1159
1259
  extensions: ["json", "geojson"],
1160
1260
  mimeTypes: ["application/json"],
1161
1261
  category: "json",
@@ -1213,6 +1313,7 @@
1213
1313
  init_assert();
1214
1314
  init_globals();
1215
1315
  init_parse_with_worker();
1316
+ init_encode_with_worker();
1216
1317
  init_array_buffer_utils();
1217
1318
  init_text_iterators();
1218
1319
  init_async_iteration();
@@ -1369,7 +1470,7 @@
1369
1470
  text += ` ${await response.text()}`;
1370
1471
  }
1371
1472
  message += text;
1372
- message = message.length > 60 ? `${message.slice(60)}...` : message;
1473
+ message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
1373
1474
  } catch (error) {
1374
1475
  }
1375
1476
  return message;
@@ -1545,12 +1646,12 @@
1545
1646
  });
1546
1647
 
1547
1648
  // ../../node_modules/probe.gl/dist/esm/utils/globals.js
1548
- var VERSION3, isBrowser4;
1649
+ var VERSION4, isBrowser4;
1549
1650
  var init_globals4 = __esm({
1550
1651
  "../../node_modules/probe.gl/dist/esm/utils/globals.js"() {
1551
1652
  init_is_browser();
1552
1653
  init_globals3();
1553
- VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1654
+ VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
1554
1655
  isBrowser4 = isBrowser3();
1555
1656
  }
1556
1657
  });
@@ -1872,7 +1973,7 @@
1872
1973
  id: ""
1873
1974
  }) {
1874
1975
  this.id = id;
1875
- this.VERSION = VERSION3;
1976
+ this.VERSION = VERSION4;
1876
1977
  this._startTs = getHiResTimestamp2();
1877
1978
  this._deltaTs = getHiResTimestamp2();
1878
1979
  this.LOG_THROTTLE_TIMEOUT = 0;
@@ -2068,7 +2169,7 @@
2068
2169
  return noop;
2069
2170
  }
2070
2171
  };
2071
- Log.VERSION = VERSION3;
2172
+ Log.VERSION = VERSION4;
2072
2173
  }
2073
2174
  });
2074
2175
 
@@ -2324,12 +2425,10 @@
2324
2425
  }
2325
2426
  });
2326
2427
 
2327
- // src/lib/api/set-loader-options.ts
2328
- function setLoaderOptions(options) {
2329
- setGlobalOptions(options);
2330
- }
2331
- var init_set_loader_options = __esm({
2332
- "src/lib/api/set-loader-options.ts"() {
2428
+ // src/lib/api/loader-options.ts
2429
+ var init_loader_options = __esm({
2430
+ "src/lib/api/loader-options.ts"() {
2431
+ init_option_utils();
2333
2432
  init_option_utils();
2334
2433
  }
2335
2434
  });
@@ -2452,11 +2551,11 @@
2452
2551
  });
2453
2552
 
2454
2553
  // ../../node_modules/@probe.gl/env/dist/esm/utils/globals.js
2455
- var VERSION4, isBrowser6;
2554
+ var VERSION5, isBrowser6;
2456
2555
  var init_globals6 = __esm({
2457
2556
  "../../node_modules/@probe.gl/env/dist/esm/utils/globals.js"() {
2458
2557
  init_is_browser2();
2459
- VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
2558
+ VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
2460
2559
  isBrowser6 = isBrowser5();
2461
2560
  }
2462
2561
  });
@@ -2803,7 +2902,7 @@
2803
2902
  id: ""
2804
2903
  };
2805
2904
  _defineProperty(this, "id", void 0);
2806
- _defineProperty(this, "VERSION", VERSION4);
2905
+ _defineProperty(this, "VERSION", VERSION5);
2807
2906
  _defineProperty(this, "_startTs", getHiResTimestamp4());
2808
2907
  _defineProperty(this, "_deltaTs", getHiResTimestamp4());
2809
2908
  _defineProperty(this, "_storage", void 0);
@@ -3009,7 +3108,7 @@
3009
3108
  return noop2;
3010
3109
  }
3011
3110
  };
3012
- _defineProperty(Log2, "VERSION", VERSION4);
3111
+ _defineProperty(Log2, "VERSION", VERSION5);
3013
3112
  }
3014
3113
  });
3015
3114
 
@@ -3717,6 +3816,11 @@
3717
3816
 
3718
3817
  // src/lib/api/encode.ts
3719
3818
  async function encode(data, writer, options) {
3819
+ const globalOptions = getGlobalLoaderOptions();
3820
+ options = { ...globalOptions, ...options };
3821
+ if (canEncodeWithWorker(writer, options)) {
3822
+ return await processOnWorker(writer, data, options);
3823
+ }
3720
3824
  if (writer.encode) {
3721
3825
  return await writer.encode(data, options);
3722
3826
  }
@@ -3785,10 +3889,13 @@
3785
3889
  }
3786
3890
  var init_encode = __esm({
3787
3891
  "src/lib/api/encode.ts"() {
3892
+ init_src2();
3893
+ init_src();
3788
3894
  init_src2();
3789
3895
  init_src2();
3790
3896
  init_write_file();
3791
3897
  init_fetch_file();
3898
+ init_loader_options();
3792
3899
  }
3793
3900
  });
3794
3901
 
@@ -3839,15 +3946,15 @@
3839
3946
  });
3840
3947
 
3841
3948
  // src/null-loader.ts
3842
- var VERSION5, NullWorkerLoader, NullLoader;
3949
+ var VERSION6, NullWorkerLoader, NullLoader;
3843
3950
  var init_null_loader = __esm({
3844
3951
  "src/null-loader.ts"() {
3845
- VERSION5 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
3952
+ VERSION6 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
3846
3953
  NullWorkerLoader = {
3847
3954
  name: "Null loader",
3848
3955
  id: "null",
3849
3956
  module: "core",
3850
- version: VERSION5,
3957
+ version: VERSION6,
3851
3958
  worker: true,
3852
3959
  mimeTypes: ["application/x.empty"],
3853
3960
  extensions: ["null"],
@@ -3860,7 +3967,7 @@
3860
3967
  name: "Null loader",
3861
3968
  id: "null",
3862
3969
  module: "core",
3863
- version: VERSION5,
3970
+ version: VERSION6,
3864
3971
  mimeTypes: ["application/x.empty"],
3865
3972
  extensions: ["null"],
3866
3973
  parse: async (arrayBuffer) => arrayBuffer,
@@ -4031,6 +4138,7 @@
4031
4138
  encodeURLtoURL: () => encodeURLtoURL,
4032
4139
  fetchFile: () => fetchFile,
4033
4140
  forEach: () => forEach,
4141
+ getLoaderOptions: () => getGlobalLoaderOptions,
4034
4142
  getPathPrefix: () => getPathPrefix,
4035
4143
  global: () => global_,
4036
4144
  isAsyncIterable: () => isAsyncIterable,
@@ -4063,7 +4171,7 @@
4063
4171
  selectLoader: () => selectLoader,
4064
4172
  selectLoaderSync: () => selectLoaderSync,
4065
4173
  self: () => self_,
4066
- setLoaderOptions: () => setLoaderOptions,
4174
+ setLoaderOptions: () => setGlobalOptions,
4067
4175
  setPathPrefix: () => setPathPrefix,
4068
4176
  window: () => window_,
4069
4177
  writeFile: () => writeFile,
@@ -4075,7 +4183,7 @@
4075
4183
  init_read_array_buffer();
4076
4184
  init_read_file();
4077
4185
  init_write_file();
4078
- init_set_loader_options();
4186
+ init_loader_options();
4079
4187
  init_register_loaders();
4080
4188
  init_select_loader();
4081
4189
  init_parse();
package/dist/es5/index.js CHANGED
@@ -38,7 +38,13 @@ Object.defineProperty(exports, "writeFileSync", {
38
38
  Object.defineProperty(exports, "setLoaderOptions", {
39
39
  enumerable: true,
40
40
  get: function get() {
41
- return _setLoaderOptions.setLoaderOptions;
41
+ return _loaderOptions.setLoaderOptions;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "getLoaderOptions", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _loaderOptions.getLoaderOptions;
42
48
  }
43
49
  });
44
50
  Object.defineProperty(exports, "registerLoaders", {
@@ -338,7 +344,7 @@ var _readFile = require("./lib/fetch/read-file");
338
344
 
339
345
  var _writeFile = require("./lib/fetch/write-file");
340
346
 
341
- var _setLoaderOptions = require("./lib/api/set-loader-options");
347
+ var _loaderOptions = require("./lib/api/loader-options");
342
348
 
343
349
  var _registerLoaders = require("./lib/api/register-loaders");
344
350
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AAGA;;AAIA;;AACA;;AAGA;;AAIA;;AACA;;AAqBA","sourcesContent":["// FILE READING AND WRITING\nexport {fetchFile} from './lib/fetch/fetch-file';\n\nexport {readArrayBuffer} from './lib/fetch/read-array-buffer';\nexport {readFileSync} from './lib/fetch/read-file';\nexport {writeFile, writeFileSync} from './lib/fetch/write-file';\n\n// CONFIGURATION\nexport {setLoaderOptions} from './lib/api/set-loader-options';\nexport {registerLoaders} from './lib/api/register-loaders';\nexport {selectLoader, selectLoaderSync} from './lib/api/select-loader';\n\n// LOADING (READING + PARSING)\nexport {parse} from './lib/api/parse';\nexport {parseSync} from './lib/api/parse-sync';\nexport {parseInBatches} from './lib/api/parse-in-batches';\n\nexport {load} from './lib/api/load';\nexport {loadInBatches} from './lib/api/load-in-batches';\n\n// ENCODING (ENCODING AND WRITING)\nexport {encode, encodeSync, encodeInBatches, encodeText, encodeURLtoURL} from './lib/api/encode';\nexport {save, saveSync} from './lib/api/save';\n\n// CORE UTILS SHARED WITH LOADERS (RE-EXPORTED FROM LOADER-UTILS)\nexport {setPathPrefix, getPathPrefix, resolvePath} from '@loaders.gl/loader-utils';\nexport {RequestScheduler} from '@loaders.gl/loader-utils';\n\n// ITERATOR UTILS\nexport {makeIterator} from './iterators/make-iterator/make-iterator';\nexport {makeStream} from './iterators/make-stream/make-node-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {default as _fetchProgress} from './lib/progress/fetch-progress';\nexport {default as _BrowserFileSystem} from './lib/filesystems/browser-filesystem';\n\n// FOR TESTING\nexport {_unregisterLoaders} from './lib/api/register-loaders';\n\n//\n// TODO - MOVE TO LOADER-UTILS AND DEPRECATE IN CORE?\n//\n\nexport {isBrowser, isWorker, self, window, global, document} from '@loaders.gl/loader-utils';\nexport {assert} from '@loaders.gl/loader-utils';\nexport {forEach, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\nexport {\n makeTextDecoderIterator,\n makeTextEncoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from '@loaders.gl/loader-utils';\n\n// \"JAVASCRIPT\" UTILS - move to loader-utils?\nexport {\n isPureObject,\n isPromise,\n isIterable,\n isAsyncIterable,\n isIterator,\n isResponse,\n isReadableStream,\n isWritableStream\n} from './javascript-utils/is-type';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AAGA;;AAIA;;AACA;;AAGA;;AAIA;;AACA;;AAqBA","sourcesContent":["// FILE READING AND WRITING\nexport {fetchFile} from './lib/fetch/fetch-file';\n\nexport {readArrayBuffer} from './lib/fetch/read-array-buffer';\nexport {readFileSync} from './lib/fetch/read-file';\nexport {writeFile, writeFileSync} from './lib/fetch/write-file';\n\n// CONFIGURATION\nexport {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';\nexport {registerLoaders} from './lib/api/register-loaders';\nexport {selectLoader, selectLoaderSync} from './lib/api/select-loader';\n\n// LOADING (READING + PARSING)\nexport {parse} from './lib/api/parse';\nexport {parseSync} from './lib/api/parse-sync';\nexport {parseInBatches} from './lib/api/parse-in-batches';\n\nexport {load} from './lib/api/load';\nexport {loadInBatches} from './lib/api/load-in-batches';\n\n// ENCODING (ENCODING AND WRITING)\nexport {encode, encodeSync, encodeInBatches, encodeText, encodeURLtoURL} from './lib/api/encode';\nexport {save, saveSync} from './lib/api/save';\n\n// CORE UTILS SHARED WITH LOADERS (RE-EXPORTED FROM LOADER-UTILS)\nexport {setPathPrefix, getPathPrefix, resolvePath} from '@loaders.gl/loader-utils';\nexport {RequestScheduler} from '@loaders.gl/loader-utils';\n\n// ITERATOR UTILS\nexport {makeIterator} from './iterators/make-iterator/make-iterator';\nexport {makeStream} from './iterators/make-stream/make-node-stream';\n\n// CORE LOADERS\nexport {NullWorkerLoader, NullLoader} from './null-loader';\nexport {JSONLoader} from '@loaders.gl/loader-utils';\n\n// EXPERIMENTAL\nexport {default as _fetchProgress} from './lib/progress/fetch-progress';\nexport {default as _BrowserFileSystem} from './lib/filesystems/browser-filesystem';\n\n// FOR TESTING\nexport {_unregisterLoaders} from './lib/api/register-loaders';\n\n//\n// TODO - MOVE TO LOADER-UTILS AND DEPRECATE IN CORE?\n//\n\nexport {isBrowser, isWorker, self, window, global, document} from '@loaders.gl/loader-utils';\nexport {assert} from '@loaders.gl/loader-utils';\nexport {forEach, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\nexport {\n makeTextDecoderIterator,\n makeTextEncoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from '@loaders.gl/loader-utils';\n\n// \"JAVASCRIPT\" UTILS - move to loader-utils?\nexport {\n isPureObject,\n isPromise,\n isIterable,\n isAsyncIterable,\n isIterator,\n isResponse,\n isReadableStream,\n isWritableStream\n} from './javascript-utils/is-type';\n"],"file":"index.js"}
@@ -13,64 +13,89 @@ exports.encodeURLtoURL = encodeURLtoURL;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
16
18
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
19
 
18
20
  var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
19
21
 
20
22
  var _loaderUtils = require("@loaders.gl/loader-utils");
21
23
 
24
+ var _workerUtils = require("@loaders.gl/worker-utils");
25
+
22
26
  var _writeFile = require("../fetch/write-file");
23
27
 
24
28
  var _fetchFile = require("../fetch/fetch-file");
25
29
 
30
+ var _loaderOptions = require("./loader-options");
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
26
36
  function encode(_x, _x2, _x3) {
27
37
  return _encode.apply(this, arguments);
28
38
  }
29
39
 
30
40
  function _encode() {
31
41
  _encode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, writer, options) {
32
- var batches, chunks, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, batch, tmpInputFilename, tmpOutputFilename, outputFilename, response;
42
+ var globalOptions, batches, chunks, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, batch, tmpInputFilename, tmpOutputFilename, outputFilename, response;
33
43
 
34
44
  return _regenerator.default.wrap(function _callee$(_context) {
35
45
  while (1) {
36
46
  switch (_context.prev = _context.next) {
37
47
  case 0:
48
+ globalOptions = (0, _loaderOptions.getLoaderOptions)();
49
+ options = _objectSpread(_objectSpread({}, globalOptions), options);
50
+
51
+ if (!(0, _loaderUtils.canEncodeWithWorker)(writer, options)) {
52
+ _context.next = 6;
53
+ break;
54
+ }
55
+
56
+ _context.next = 5;
57
+ return (0, _workerUtils.processOnWorker)(writer, data, options);
58
+
59
+ case 5:
60
+ return _context.abrupt("return", _context.sent);
61
+
62
+ case 6:
38
63
  if (!writer.encode) {
39
- _context.next = 4;
64
+ _context.next = 10;
40
65
  break;
41
66
  }
42
67
 
43
- _context.next = 3;
68
+ _context.next = 9;
44
69
  return writer.encode(data, options);
45
70
 
46
- case 3:
71
+ case 9:
47
72
  return _context.abrupt("return", _context.sent);
48
73
 
49
- case 4:
74
+ case 10:
50
75
  if (!writer.encodeSync) {
51
- _context.next = 6;
76
+ _context.next = 12;
52
77
  break;
53
78
  }
54
79
 
55
80
  return _context.abrupt("return", writer.encodeSync(data, options));
56
81
 
57
- case 6:
82
+ case 12:
58
83
  if (!writer.encodeText) {
59
- _context.next = 12;
84
+ _context.next = 18;
60
85
  break;
61
86
  }
62
87
 
63
88
  _context.t0 = new TextEncoder();
64
- _context.next = 10;
89
+ _context.next = 16;
65
90
  return writer.encodeText(data, options);
66
91
 
67
- case 10:
92
+ case 16:
68
93
  _context.t1 = _context.sent;
69
94
  return _context.abrupt("return", _context.t0.encode.call(_context.t0, _context.t1));
70
95
 
71
- case 12:
96
+ case 18:
72
97
  if (!writer.encodeInBatches) {
73
- _context.next = 49;
98
+ _context.next = 55;
74
99
  break;
75
100
  }
76
101
 
@@ -78,109 +103,109 @@ function _encode() {
78
103
  chunks = [];
79
104
  _iteratorNormalCompletion = true;
80
105
  _didIteratorError = false;
81
- _context.prev = 17;
106
+ _context.prev = 23;
82
107
  _iterator = (0, _asyncIterator2.default)(batches);
83
108
 
84
- case 19:
85
- _context.next = 21;
109
+ case 25:
110
+ _context.next = 27;
86
111
  return _iterator.next();
87
112
 
88
- case 21:
113
+ case 27:
89
114
  _step = _context.sent;
90
115
  _iteratorNormalCompletion = _step.done;
91
- _context.next = 25;
116
+ _context.next = 31;
92
117
  return _step.value;
93
118
 
94
- case 25:
119
+ case 31:
95
120
  _value = _context.sent;
96
121
 
97
122
  if (_iteratorNormalCompletion) {
98
- _context.next = 32;
123
+ _context.next = 38;
99
124
  break;
100
125
  }
101
126
 
102
127
  batch = _value;
103
128
  chunks.push(batch);
104
129
 
105
- case 29:
130
+ case 35:
106
131
  _iteratorNormalCompletion = true;
107
- _context.next = 19;
132
+ _context.next = 25;
108
133
  break;
109
134
 
110
- case 32:
111
- _context.next = 38;
135
+ case 38:
136
+ _context.next = 44;
112
137
  break;
113
138
 
114
- case 34:
115
- _context.prev = 34;
116
- _context.t2 = _context["catch"](17);
139
+ case 40:
140
+ _context.prev = 40;
141
+ _context.t2 = _context["catch"](23);
117
142
  _didIteratorError = true;
118
143
  _iteratorError = _context.t2;
119
144
 
120
- case 38:
121
- _context.prev = 38;
122
- _context.prev = 39;
145
+ case 44:
146
+ _context.prev = 44;
147
+ _context.prev = 45;
123
148
 
124
149
  if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
125
- _context.next = 43;
150
+ _context.next = 49;
126
151
  break;
127
152
  }
128
153
 
129
- _context.next = 43;
154
+ _context.next = 49;
130
155
  return _iterator.return();
131
156
 
132
- case 43:
133
- _context.prev = 43;
157
+ case 49:
158
+ _context.prev = 49;
134
159
 
135
160
  if (!_didIteratorError) {
136
- _context.next = 46;
161
+ _context.next = 52;
137
162
  break;
138
163
  }
139
164
 
140
165
  throw _iteratorError;
141
166
 
142
- case 46:
143
- return _context.finish(43);
167
+ case 52:
168
+ return _context.finish(49);
144
169
 
145
- case 47:
146
- return _context.finish(38);
170
+ case 53:
171
+ return _context.finish(44);
147
172
 
148
- case 48:
173
+ case 54:
149
174
  return _context.abrupt("return", _loaderUtils.concatenateArrayBuffers.apply(void 0, chunks));
150
175
 
151
- case 49:
176
+ case 55:
152
177
  if (!(!_loaderUtils.isBrowser && writer.encodeURLtoURL)) {
153
- _context.next = 61;
178
+ _context.next = 67;
154
179
  break;
155
180
  }
156
181
 
157
182
  tmpInputFilename = getTemporaryFilename('input');
158
- _context.next = 53;
183
+ _context.next = 59;
159
184
  return (0, _writeFile.writeFile)(tmpInputFilename, data);
160
185
 
161
- case 53:
186
+ case 59:
162
187
  tmpOutputFilename = getTemporaryFilename('output');
163
- _context.next = 56;
188
+ _context.next = 62;
164
189
  return encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
165
190
 
166
- case 56:
191
+ case 62:
167
192
  outputFilename = _context.sent;
168
- _context.next = 59;
193
+ _context.next = 65;
169
194
  return (0, _fetchFile.fetchFile)(outputFilename);
170
195
 
171
- case 59:
196
+ case 65:
172
197
  response = _context.sent;
173
198
  return _context.abrupt("return", response.arrayBuffer());
174
199
 
175
- case 61:
200
+ case 67:
176
201
  throw new Error('Writer could not encode data');
177
202
 
178
- case 62:
203
+ case 68:
179
204
  case "end":
180
205
  return _context.stop();
181
206
  }
182
207
  }
183
- }, _callee, null, [[17, 34, 38, 48], [39,, 43, 47]]);
208
+ }, _callee, null, [[23, 40, 44, 54], [45,, 49, 53]]);
184
209
  }));
185
210
  return _encode.apply(this, arguments);
186
211
  }