@loaders.gl/core 3.3.0-alpha.5 → 3.3.0-alpha.7

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 (184) hide show
  1. package/dist/dist.min.js +210 -821
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/core-addons/write-file-browser.js +2 -0
  5. package/dist/es5/core-addons/write-file-browser.js.map +1 -1
  6. package/dist/es5/index.js +108 -130
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +34 -69
  9. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  10. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +9 -17
  11. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
  12. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +0 -11
  13. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  14. package/dist/es5/iterators/make-iterator/make-iterator.js +0 -11
  15. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -1
  16. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +29 -75
  17. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  18. package/dist/es5/iterators/make-iterator/make-string-iterator.js +1 -8
  19. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -1
  20. package/dist/es5/iterators/make-stream/make-dom-stream.js +2 -17
  21. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -1
  22. package/dist/es5/iterators/make-stream/make-node-stream.js +0 -50
  23. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -1
  24. package/dist/es5/javascript-utils/is-type.js +1 -34
  25. package/dist/es5/javascript-utils/is-type.js.map +1 -1
  26. package/dist/es5/lib/api/encode.js +42 -118
  27. package/dist/es5/lib/api/encode.js.map +1 -1
  28. package/dist/es5/lib/api/load-in-batches.js +1 -15
  29. package/dist/es5/lib/api/load-in-batches.js.map +1 -1
  30. package/dist/es5/lib/api/load.js +0 -18
  31. package/dist/es5/lib/api/load.js.map +1 -1
  32. package/dist/es5/lib/api/loader-options.js +4 -5
  33. package/dist/es5/lib/api/loader-options.js.map +1 -1
  34. package/dist/es5/lib/api/parse-in-batches.js +122 -196
  35. package/dist/es5/lib/api/parse-in-batches.js.map +1 -1
  36. package/dist/es5/lib/api/parse-sync.js +2 -16
  37. package/dist/es5/lib/api/parse-sync.js.map +1 -1
  38. package/dist/es5/lib/api/parse.js +3 -42
  39. package/dist/es5/lib/api/parse.js.map +1 -1
  40. package/dist/es5/lib/api/register-loaders.js +3 -14
  41. package/dist/es5/lib/api/register-loaders.js.map +1 -1
  42. package/dist/es5/lib/api/save.js +0 -11
  43. package/dist/es5/lib/api/save.js.map +1 -1
  44. package/dist/es5/lib/api/select-loader.js +18 -91
  45. package/dist/es5/lib/api/select-loader.js.map +1 -1
  46. package/dist/es5/lib/common.js.map +1 -1
  47. package/dist/es5/lib/fetch/fetch-error-message.js +1 -15
  48. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -1
  49. package/dist/es5/lib/fetch/fetch-file.js +0 -14
  50. package/dist/es5/lib/fetch/fetch-file.js.map +1 -1
  51. package/dist/es5/lib/fetch/read-array-buffer.js +0 -20
  52. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -1
  53. package/dist/es5/lib/fetch/read-file.js +0 -3
  54. package/dist/es5/lib/fetch/read-file.js.map +1 -1
  55. package/dist/es5/lib/fetch/write-file.js +0 -13
  56. package/dist/es5/lib/fetch/write-file.js.map +1 -1
  57. package/dist/es5/lib/filesystems/browser-filesystem.js +9 -55
  58. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -1
  59. package/dist/es5/lib/filesystems/filesystem.js.map +1 -1
  60. package/dist/es5/lib/filesystems/read-array-buffer.js +0 -10
  61. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -1
  62. package/dist/es5/lib/init.js +1 -4
  63. package/dist/es5/lib/init.js.map +1 -1
  64. package/dist/es5/lib/loader-utils/check-errors.js +0 -14
  65. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -1
  66. package/dist/es5/lib/loader-utils/get-data.js +2 -64
  67. package/dist/es5/lib/loader-utils/get-data.js.map +1 -1
  68. package/dist/es5/lib/loader-utils/loader-context.js +2 -15
  69. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -1
  70. package/dist/es5/lib/loader-utils/loggers.js +2 -20
  71. package/dist/es5/lib/loader-utils/loggers.js.map +1 -1
  72. package/dist/es5/lib/loader-utils/normalize-loader.js +4 -16
  73. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -1
  74. package/dist/es5/lib/loader-utils/option-defaults.js +2 -3
  75. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
  76. package/dist/es5/lib/loader-utils/option-utils.js +10 -38
  77. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
  78. package/dist/es5/lib/progress/fetch-progress.js +6 -35
  79. package/dist/es5/lib/progress/fetch-progress.js.map +1 -1
  80. package/dist/es5/lib/utils/log.js +0 -1
  81. package/dist/es5/lib/utils/log.js.map +1 -1
  82. package/dist/es5/lib/utils/mime-type-utils.js +1 -4
  83. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -1
  84. package/dist/es5/lib/utils/resource-utils.js +1 -11
  85. package/dist/es5/lib/utils/resource-utils.js.map +1 -1
  86. package/dist/es5/lib/utils/response-utils.js +1 -47
  87. package/dist/es5/lib/utils/response-utils.js.map +1 -1
  88. package/dist/es5/null-loader.js +32 -67
  89. package/dist/es5/null-loader.js.map +1 -1
  90. package/dist/es5/workers/null-worker.js +0 -2
  91. package/dist/es5/workers/null-worker.js.map +1 -1
  92. package/dist/esm/bundle.js +1 -1
  93. package/dist/esm/bundle.js.map +1 -1
  94. package/dist/esm/core-addons/write-file-browser.js.map +1 -1
  95. package/dist/esm/index.js +11 -0
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +1 -3
  98. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -1
  99. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +5 -2
  100. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -1
  101. package/dist/esm/iterators/make-iterator/make-blob-iterator.js +1 -1
  102. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -1
  103. package/dist/esm/iterators/make-iterator/make-iterator.js +1 -5
  104. package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -1
  105. package/dist/esm/iterators/make-iterator/make-stream-iterator.js +1 -5
  106. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  107. package/dist/esm/iterators/make-iterator/make-string-iterator.js +2 -1
  108. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -1
  109. package/dist/esm/iterators/make-stream/make-dom-stream.js +3 -6
  110. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -1
  111. package/dist/esm/iterators/make-stream/make-node-stream.js +0 -18
  112. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -1
  113. package/dist/esm/javascript-utils/is-type.js +4 -2
  114. package/dist/esm/javascript-utils/is-type.js.map +1 -1
  115. package/dist/esm/lib/api/encode.js +8 -15
  116. package/dist/esm/lib/api/encode.js.map +1 -1
  117. package/dist/esm/lib/api/load-in-batches.js +1 -2
  118. package/dist/esm/lib/api/load-in-batches.js.map +1 -1
  119. package/dist/esm/lib/api/load.js +2 -1
  120. package/dist/esm/lib/api/load.js.map +1 -1
  121. package/dist/esm/lib/api/loader-options.js.map +1 -1
  122. package/dist/esm/lib/api/parse-in-batches.js +12 -12
  123. package/dist/esm/lib/api/parse-in-batches.js.map +1 -1
  124. package/dist/esm/lib/api/parse-sync.js +3 -5
  125. package/dist/esm/lib/api/parse-sync.js.map +1 -1
  126. package/dist/esm/lib/api/parse.js +5 -5
  127. package/dist/esm/lib/api/parse.js.map +1 -1
  128. package/dist/esm/lib/api/register-loaders.js +1 -2
  129. package/dist/esm/lib/api/register-loaders.js.map +1 -1
  130. package/dist/esm/lib/api/save.js.map +1 -1
  131. package/dist/esm/lib/api/select-loader.js +17 -35
  132. package/dist/esm/lib/api/select-loader.js.map +1 -1
  133. package/dist/esm/lib/common.js.map +1 -1
  134. package/dist/esm/lib/fetch/fetch-error-message.js +0 -3
  135. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -1
  136. package/dist/esm/lib/fetch/fetch-file.js +1 -3
  137. package/dist/esm/lib/fetch/fetch-file.js.map +1 -1
  138. package/dist/esm/lib/fetch/read-array-buffer.js +3 -6
  139. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -1
  140. package/dist/esm/lib/fetch/read-file.js +4 -2
  141. package/dist/esm/lib/fetch/read-file.js.map +1 -1
  142. package/dist/esm/lib/fetch/write-file.js +1 -4
  143. package/dist/esm/lib/fetch/write-file.js.map +1 -1
  144. package/dist/esm/lib/filesystems/browser-filesystem.js +6 -19
  145. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -1
  146. package/dist/esm/lib/filesystems/filesystem.js.map +1 -1
  147. package/dist/esm/lib/filesystems/read-array-buffer.js +2 -1
  148. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -1
  149. package/dist/esm/lib/init.js +3 -2
  150. package/dist/esm/lib/init.js.map +1 -1
  151. package/dist/esm/lib/loader-utils/check-errors.js +2 -5
  152. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -1
  153. package/dist/esm/lib/loader-utils/get-data.js +3 -23
  154. package/dist/esm/lib/loader-utils/get-data.js.map +1 -1
  155. package/dist/esm/lib/loader-utils/loader-context.js +4 -6
  156. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -1
  157. package/dist/esm/lib/loader-utils/loggers.js +18 -13
  158. package/dist/esm/lib/loader-utils/loggers.js.map +1 -1
  159. package/dist/esm/lib/loader-utils/normalize-loader.js +6 -9
  160. package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -1
  161. package/dist/esm/lib/loader-utils/option-defaults.js +2 -0
  162. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -1
  163. package/dist/esm/lib/loader-utils/option-utils.js +14 -14
  164. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
  165. package/dist/esm/lib/progress/fetch-progress.js +5 -10
  166. package/dist/esm/lib/progress/fetch-progress.js.map +1 -1
  167. package/dist/esm/lib/utils/log.js +1 -0
  168. package/dist/esm/lib/utils/log.js.map +1 -1
  169. package/dist/esm/lib/utils/mime-type-utils.js +4 -4
  170. package/dist/esm/lib/utils/mime-type-utils.js.map +1 -1
  171. package/dist/esm/lib/utils/resource-utils.js +2 -7
  172. package/dist/esm/lib/utils/resource-utils.js.map +1 -1
  173. package/dist/esm/lib/utils/response-utils.js +5 -18
  174. package/dist/esm/lib/utils/response-utils.js.map +1 -1
  175. package/dist/esm/null-loader.js +2 -1
  176. package/dist/esm/null-loader.js.map +1 -1
  177. package/dist/esm/workers/null-worker.js.map +1 -1
  178. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
  179. package/dist/iterators/make-stream/make-dom-stream.js +1 -0
  180. package/dist/lib/loader-utils/loggers.d.ts +2 -1
  181. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  182. package/dist/null-worker.js +1 -1
  183. package/package.json +4 -4
  184. package/src/iterators/make-stream/make-dom-stream.ts +1 -0
@@ -1,59 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.parseInBatches = parseInBatches;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
12
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
19
-
20
13
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
21
-
22
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
23
-
24
14
  var _asyncGeneratorDelegate2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncGeneratorDelegate"));
25
-
26
15
  var _loaderUtils = require("@loaders.gl/loader-utils");
27
-
28
16
  var _normalizeLoader = require("../loader-utils/normalize-loader");
29
-
30
17
  var _optionUtils = require("../loader-utils/option-utils");
31
-
32
18
  var _loaderContext = require("../loader-utils/loader-context");
33
-
34
19
  var _getData = require("../loader-utils/get-data");
35
-
36
20
  var _resourceUtils = require("../utils/resource-utils");
37
-
38
21
  var _selectLoader = require("./select-loader");
39
-
40
22
  var _parse = require("./parse");
41
-
42
- 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; }
43
-
44
- 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; }
45
-
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+ function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
26
+ function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
46
27
  function parseInBatches(_x2, _x3, _x4, _x5) {
47
28
  return _parseInBatches.apply(this, arguments);
48
29
  }
49
-
50
30
  function _parseInBatches() {
51
- _parseInBatches = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(data, loaders, options, context) {
31
+ _parseInBatches = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, loaders, options, context) {
52
32
  var _getResourceUrlAndTyp, url, loader;
53
-
54
- return _regenerator.default.wrap(function _callee2$(_context3) {
33
+ return _regenerator.default.wrap(function _callee$(_context) {
55
34
  while (1) {
56
- switch (_context3.prev = _context3.next) {
35
+ switch (_context.prev = _context.next) {
57
36
  case 0:
58
37
  (0, _loaderUtils.assert)(!context || (0, _typeof2.default)(context) === 'object');
59
38
 
@@ -62,146 +41,130 @@ function _parseInBatches() {
62
41
  options = loaders;
63
42
  loaders = undefined;
64
43
  }
65
-
66
- _context3.next = 4;
44
+ _context.next = 4;
67
45
  return data;
68
-
69
46
  case 4:
70
- data = _context3.sent;
47
+ data = _context.sent;
71
48
  options = options || {};
49
+
72
50
  _getResourceUrlAndTyp = (0, _resourceUtils.getResourceUrlAndType)(data), url = _getResourceUrlAndTyp.url;
73
- _context3.next = 9;
51
+ _context.next = 9;
74
52
  return (0, _selectLoader.selectLoader)(data, loaders, options);
75
-
76
53
  case 9:
77
- loader = _context3.sent;
78
-
54
+ loader = _context.sent;
79
55
  if (loader) {
80
- _context3.next = 12;
56
+ _context.next = 12;
81
57
  break;
82
58
  }
83
-
84
- return _context3.abrupt("return", null);
85
-
59
+ return _context.abrupt("return", null);
86
60
  case 12:
87
61
  options = (0, _optionUtils.normalizeOptions)(options, loader, loaders, url);
88
- context = (0, _loaderContext.getLoaderContext)({
62
+ context = (0, _loaderContext.getLoaderContext)(
63
+ {
89
64
  url: url,
90
65
  parseInBatches: parseInBatches,
91
66
  parse: _parse.parse,
92
67
  loaders: loaders
93
68
  }, options, context);
94
- _context3.next = 16;
69
+ _context.next = 16;
95
70
  return parseWithLoaderInBatches(loader, data, options, context);
96
-
97
71
  case 16:
98
- return _context3.abrupt("return", _context3.sent);
99
-
72
+ return _context.abrupt("return", _context.sent);
100
73
  case 17:
101
74
  case "end":
102
- return _context3.stop();
75
+ return _context.stop();
103
76
  }
104
77
  }
105
- }, _callee2);
78
+ }, _callee);
106
79
  }));
107
80
  return _parseInBatches.apply(this, arguments);
108
81
  }
109
-
110
- function parseWithLoaderInBatches(loader, data, options, context) {
111
- var outputIterator, metadataBatch, makeMetadataBatchIterator, _makeMetadataBatchIterator;
112
-
113
- return _regenerator.default.async(function parseWithLoaderInBatches$(_context) {
114
- while (1) {
115
- switch (_context.prev = _context.next) {
116
- case 0:
117
- _makeMetadataBatchIterator = function _makeMetadataBatchIte2() {
118
- _makeMetadataBatchIterator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(iterator) {
119
- return _regenerator.default.wrap(function _callee$(_context2) {
120
- while (1) {
121
- switch (_context2.prev = _context2.next) {
122
- case 0:
123
- _context2.next = 2;
124
- return metadataBatch;
125
-
126
- case 2:
127
- return _context2.delegateYield((0, _asyncGeneratorDelegate2.default)((0, _asyncIterator2.default)(iterator), _awaitAsyncGenerator2.default), "t0", 3);
128
-
129
- case 3:
130
- case "end":
131
- return _context2.stop();
82
+ function parseWithLoaderInBatches(_x6, _x7, _x8, _x9) {
83
+ return _parseWithLoaderInBatches.apply(this, arguments);
84
+ }
85
+ function _parseWithLoaderInBatches() {
86
+ _parseWithLoaderInBatches = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(loader, data, options, context) {
87
+ var outputIterator, metadataBatch, makeMetadataBatchIterator, _makeMetadataBatchIterator;
88
+ return _regenerator.default.wrap(function _callee3$(_context3) {
89
+ while (1) {
90
+ switch (_context3.prev = _context3.next) {
91
+ case 0:
92
+ _makeMetadataBatchIterator = function _makeMetadataBatchIte2() {
93
+ _makeMetadataBatchIterator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee2(iterator) {
94
+ return _regenerator.default.wrap(function _callee2$(_context2) {
95
+ while (1) {
96
+ switch (_context2.prev = _context2.next) {
97
+ case 0:
98
+ _context2.next = 2;
99
+ return metadataBatch;
100
+ case 2:
101
+ return _context2.delegateYield((0, _asyncGeneratorDelegate2.default)(_asyncIterator(iterator), _awaitAsyncGenerator2.default), "t0", 3);
102
+ case 3:
103
+ case "end":
104
+ return _context2.stop();
105
+ }
132
106
  }
133
- }
134
- }, _callee);
135
- }));
136
- return _makeMetadataBatchIterator.apply(this, arguments);
137
- };
138
-
139
- makeMetadataBatchIterator = function _makeMetadataBatchIte(_x) {
140
- return _makeMetadataBatchIterator.apply(this, arguments);
141
- };
142
-
143
- _context.next = 4;
144
- return _regenerator.default.awrap(parseToOutputIterator(loader, data, options, context));
145
-
146
- case 4:
147
- outputIterator = _context.sent;
148
-
149
- if (options.metadata) {
150
- _context.next = 7;
151
- break;
152
- }
153
-
154
- return _context.abrupt("return", outputIterator);
155
-
156
- case 7:
157
- metadataBatch = {
158
- batchType: 'metadata',
159
- metadata: {
160
- _loader: loader,
161
- _context: context
162
- },
163
- data: [],
164
- bytesUsed: 0
165
- };
166
- return _context.abrupt("return", makeMetadataBatchIterator(outputIterator));
167
-
168
- case 9:
169
- case "end":
170
- return _context.stop();
107
+ }, _callee2);
108
+ }));
109
+ return _makeMetadataBatchIterator.apply(this, arguments);
110
+ };
111
+ makeMetadataBatchIterator = function _makeMetadataBatchIte(_x) {
112
+ return _makeMetadataBatchIterator.apply(this, arguments);
113
+ };
114
+ _context3.next = 4;
115
+ return parseToOutputIterator(loader, data, options, context);
116
+ case 4:
117
+ outputIterator = _context3.sent;
118
+ if (options.metadata) {
119
+ _context3.next = 7;
120
+ break;
121
+ }
122
+ return _context3.abrupt("return", outputIterator);
123
+ case 7:
124
+ metadataBatch = {
125
+ batchType: 'metadata',
126
+ metadata: {
127
+ _loader: loader,
128
+ _context: context
129
+ },
130
+ data: [],
131
+ bytesUsed: 0
132
+ };
133
+ return _context3.abrupt("return", makeMetadataBatchIterator(outputIterator));
134
+ case 9:
135
+ case "end":
136
+ return _context3.stop();
137
+ }
171
138
  }
172
- }
173
- }, null, null, null, Promise);
139
+ }, _callee3);
140
+ }));
141
+ return _parseWithLoaderInBatches.apply(this, arguments);
174
142
  }
175
-
176
- function parseToOutputIterator(_x6, _x7, _x8, _x9) {
143
+ function parseToOutputIterator(_x10, _x11, _x12, _x13) {
177
144
  return _parseToOutputIterator.apply(this, arguments);
178
145
  }
179
-
180
146
  function _parseToOutputIterator() {
181
- _parseToOutputIterator = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(loader, data, options, context) {
147
+ _parseToOutputIterator = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(loader, data, options, context) {
182
148
  var inputIterator, transformedIterator, parseChunkInBatches, _parseChunkInBatches;
183
-
184
- return _regenerator.default.wrap(function _callee4$(_context5) {
149
+ return _regenerator.default.wrap(function _callee5$(_context5) {
185
150
  while (1) {
186
151
  switch (_context5.prev = _context5.next) {
187
152
  case 0:
188
153
  _parseChunkInBatches = function _parseChunkInBatches3() {
189
- _parseChunkInBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
154
+ _parseChunkInBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee4() {
190
155
  var arrayBuffer, parsedData, batch;
191
- return _regenerator.default.wrap(function _callee3$(_context4) {
156
+ return _regenerator.default.wrap(function _callee4$(_context4) {
192
157
  while (1) {
193
158
  switch (_context4.prev = _context4.next) {
194
159
  case 0:
195
160
  _context4.next = 2;
196
161
  return (0, _awaitAsyncGenerator2.default)((0, _loaderUtils.concatenateArrayBuffersAsync)(transformedIterator));
197
-
198
162
  case 2:
199
163
  arrayBuffer = _context4.sent;
200
164
  _context4.next = 5;
201
165
  return (0, _awaitAsyncGenerator2.default)((0, _parse.parse)(arrayBuffer, loader, _objectSpread(_objectSpread({}, options), {}, {
202
166
  mimeType: loader.mimeTypes[0]
203
167
  }), context));
204
-
205
168
  case 5:
206
169
  parsedData = _context4.sent;
207
170
  batch = {
@@ -213,153 +176,116 @@ function _parseToOutputIterator() {
213
176
  };
214
177
  _context4.next = 9;
215
178
  return batch;
216
-
217
179
  case 9:
218
180
  case "end":
219
181
  return _context4.stop();
220
182
  }
221
183
  }
222
- }, _callee3);
184
+ }, _callee4);
223
185
  }));
224
186
  return _parseChunkInBatches.apply(this, arguments);
225
187
  };
226
-
227
188
  parseChunkInBatches = function _parseChunkInBatches2() {
228
189
  return _parseChunkInBatches.apply(this, arguments);
229
190
  };
230
-
231
191
  _context5.next = 4;
232
192
  return (0, _getData.getAsyncIterableFromData)(data, options);
233
-
234
193
  case 4:
235
194
  inputIterator = _context5.sent;
236
195
  _context5.next = 7;
237
196
  return applyInputTransforms(inputIterator, (options === null || options === void 0 ? void 0 : options.transforms) || []);
238
-
239
197
  case 7:
240
198
  transformedIterator = _context5.sent;
241
-
242
199
  if (!loader.parseInBatches) {
243
200
  _context5.next = 10;
244
201
  break;
245
202
  }
246
-
247
203
  return _context5.abrupt("return", loader.parseInBatches(transformedIterator, options, context));
248
-
249
204
  case 10:
250
205
  return _context5.abrupt("return", parseChunkInBatches());
251
-
252
206
  case 11:
253
207
  case "end":
254
208
  return _context5.stop();
255
209
  }
256
210
  }
257
- }, _callee4);
211
+ }, _callee5);
258
212
  }));
259
213
  return _parseToOutputIterator.apply(this, arguments);
260
214
  }
261
-
262
- function applyInputTransforms(_x10) {
215
+ function applyInputTransforms(_x14) {
263
216
  return _applyInputTransforms.apply(this, arguments);
264
217
  }
265
-
266
218
  function _applyInputTransforms() {
267
- _applyInputTransforms = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(inputIterator) {
219
+ _applyInputTransforms = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(inputIterator) {
268
220
  var transforms,
269
- iteratorChain,
270
- _iteratorNormalCompletion,
271
- _didIteratorError,
272
- _iteratorError,
273
- _iterator,
274
- _step,
275
- _value,
276
- transformBatches,
277
- _args6 = arguments;
278
-
279
- return _regenerator.default.wrap(function _callee5$(_context6) {
221
+ iteratorChain,
222
+ _iteratorAbruptCompletion,
223
+ _didIteratorError,
224
+ _iteratorError,
225
+ _iterator,
226
+ _step,
227
+ transformBatches,
228
+ _args6 = arguments;
229
+ return _regenerator.default.wrap(function _callee6$(_context6) {
280
230
  while (1) {
281
231
  switch (_context6.prev = _context6.next) {
282
232
  case 0:
283
233
  transforms = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : [];
284
234
  iteratorChain = inputIterator;
285
- _iteratorNormalCompletion = true;
235
+ _iteratorAbruptCompletion = false;
286
236
  _didIteratorError = false;
287
237
  _context6.prev = 4;
288
- _iterator = (0, _asyncIterator2.default)(transforms);
289
-
238
+ _iterator = _asyncIterator(transforms);
290
239
  case 6:
291
240
  _context6.next = 8;
292
241
  return _iterator.next();
293
-
294
242
  case 8:
295
- _step = _context6.sent;
296
- _iteratorNormalCompletion = _step.done;
297
- _context6.next = 12;
298
- return _step.value;
299
-
300
- case 12:
301
- _value = _context6.sent;
302
-
303
- if (_iteratorNormalCompletion) {
304
- _context6.next = 19;
243
+ if (!(_iteratorAbruptCompletion = !(_step = _context6.sent).done)) {
244
+ _context6.next = 14;
305
245
  break;
306
246
  }
307
-
308
- transformBatches = _value;
247
+ transformBatches = _step.value;
309
248
  iteratorChain = transformBatches(iteratorChain);
310
-
311
- case 16:
312
- _iteratorNormalCompletion = true;
249
+ case 11:
250
+ _iteratorAbruptCompletion = false;
313
251
  _context6.next = 6;
314
252
  break;
315
-
316
- case 19:
317
- _context6.next = 25;
253
+ case 14:
254
+ _context6.next = 20;
318
255
  break;
319
-
320
- case 21:
321
- _context6.prev = 21;
256
+ case 16:
257
+ _context6.prev = 16;
322
258
  _context6.t0 = _context6["catch"](4);
323
259
  _didIteratorError = true;
324
260
  _iteratorError = _context6.t0;
325
-
326
- case 25:
327
- _context6.prev = 25;
328
- _context6.prev = 26;
329
-
330
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
331
- _context6.next = 30;
261
+ case 20:
262
+ _context6.prev = 20;
263
+ _context6.prev = 21;
264
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
265
+ _context6.next = 25;
332
266
  break;
333
267
  }
334
-
335
- _context6.next = 30;
268
+ _context6.next = 25;
336
269
  return _iterator.return();
337
-
338
- case 30:
339
- _context6.prev = 30;
340
-
270
+ case 25:
271
+ _context6.prev = 25;
341
272
  if (!_didIteratorError) {
342
- _context6.next = 33;
273
+ _context6.next = 28;
343
274
  break;
344
275
  }
345
-
346
276
  throw _iteratorError;
347
-
348
- case 33:
349
- return _context6.finish(30);
350
-
351
- case 34:
277
+ case 28:
352
278
  return _context6.finish(25);
353
-
354
- case 35:
279
+ case 29:
280
+ return _context6.finish(20);
281
+ case 30:
355
282
  return _context6.abrupt("return", iteratorChain);
356
-
357
- case 36:
283
+ case 31:
358
284
  case "end":
359
285
  return _context6.stop();
360
286
  }
361
287
  }
362
- }, _callee5, null, [[4, 21, 25, 35], [26,, 30, 34]]);
288
+ }, _callee6, null, [[4, 16, 20, 30], [21,, 25, 29]]);
363
289
  }));
364
290
  return _applyInputTransforms.apply(this, arguments);
365
291
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/parse-in-batches.ts"],"names":["parseInBatches","data","loaders","options","context","Array","isArray","undefined","url","loader","parse","parseWithLoaderInBatches","makeMetadataBatchIterator","iterator","metadataBatch","parseToOutputIterator","outputIterator","metadata","batchType","_loader","_context","bytesUsed","parseChunkInBatches","transformedIterator","arrayBuffer","mimeType","mimeTypes","parsedData","batch","shape","length","inputIterator","applyInputTransforms","transforms","iteratorChain","transformBatches"],"mappings":"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","sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {\n BatchableDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const {url} = getResourceUrlAndType(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n // @ts-ignore\n options = normalizeOptions(options, loader, loaders, url);\n // @ts-ignore\n context = getLoaderContext(\n // @ts-ignore\n {url, parseInBatches, parse, loaders: loaders as Loader[]},\n options,\n context\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"file":"parse-in-batches.js"}
1
+ {"version":3,"file":"parse-in-batches.js","names":["parseInBatches","data","loaders","options","context","assert","Array","isArray","isLoaderObject","undefined","getResourceUrlAndType","url","selectLoader","loader","normalizeOptions","getLoaderContext","parse","parseWithLoaderInBatches","makeMetadataBatchIterator","iterator","metadataBatch","parseToOutputIterator","outputIterator","metadata","batchType","_loader","_context","bytesUsed","parseChunkInBatches","concatenateArrayBuffersAsync","transformedIterator","arrayBuffer","mimeType","mimeTypes","parsedData","batch","shape","length","getAsyncIterableFromData","inputIterator","applyInputTransforms","transforms","iteratorChain","transformBatches"],"sources":["../../../../src/lib/api/parse-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {\n BatchableDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert, concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getLoaderContext} from '../loader-utils/loader-context';\nimport {getAsyncIterableFromData} from '../loader-utils/get-data';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\nimport {selectLoader} from './select-loader';\n\n// Ensure `parse` is available in context if loader falls back to `parse`\nimport {parse} from './parse';\n\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport async function parseInBatches(\n data: BatchableDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): Promise<AsyncIterable<any>> {\n assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url\n\n // Signature: parseInBatches(data, options, url) - Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n data = await data; // Resolve any promise\n options = options || {};\n\n // Extract a url for auto detection\n const {url} = getResourceUrlAndType(data);\n\n // Chooses a loader and normalizes it\n // Note - only uses URL and contentType for streams and iterator inputs\n const loader = await selectLoader(data as ArrayBuffer, loaders as Loader[], options);\n // Note: if options.nothrow was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n // @ts-ignore\n return null;\n }\n\n // Normalize options\n // @ts-ignore\n options = normalizeOptions(options, loader, loaders, url);\n // @ts-ignore\n context = getLoaderContext(\n // @ts-ignore\n {url, parseInBatches, parse, loaders: loaders as Loader[]},\n options,\n context\n );\n\n return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);\n}\n\n/**\n * Loader has been selected and context has been prepared, see if we need to emit a metadata batch\n */\nasync function parseWithLoaderInBatches(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n const outputIterator = await parseToOutputIterator(loader, data, options, context);\n\n // Generate metadata batch if requested\n if (!options.metadata) {\n return outputIterator;\n }\n\n const metadataBatch = {\n batchType: 'metadata',\n metadata: {\n _loader: loader,\n _context: context\n },\n // Populate with some default fields to avoid crashing\n data: [],\n bytesUsed: 0\n };\n\n async function* makeMetadataBatchIterator(iterator) {\n yield metadataBatch;\n yield* iterator;\n }\n\n return makeMetadataBatchIterator(outputIterator);\n}\n\n/**\n * Prep work is done, now it is time to start parsing into an output operator\n * The approach depends on which parse function the loader exposes\n * `parseInBatches` (preferred), `parse` (fallback)\n */\nasync function parseToOutputIterator(\n loader: LoaderWithParser,\n data: BatchableDataType,\n options: LoaderOptions,\n context: LoaderContext\n): Promise<AsyncIterable<any>> {\n // Get an iterator from the input\n const inputIterator = await getAsyncIterableFromData(data, options);\n\n // Apply any iterator transforms (options.transforms)\n const transformedIterator = await applyInputTransforms(inputIterator, options?.transforms || []);\n\n // If loader supports parseInBatches, we are done\n if (loader.parseInBatches) {\n return loader.parseInBatches(transformedIterator, options, context);\n }\n\n // Fallback: load atomically using `parse` concatenating input iterator into single chunk\n async function* parseChunkInBatches() {\n const arrayBuffer = await concatenateArrayBuffersAsync(transformedIterator);\n // Call `parse` instead of `loader.parse` to ensure we can call workers etc.\n const parsedData = await parse(\n arrayBuffer,\n loader,\n // TODO - Hack: supply loaders MIME type to ensure we match it\n {...options, mimeType: loader.mimeTypes[0]},\n context\n );\n // yield a single batch, the output from loader.parse()\n // TODO - run through batch builder to apply options etc...\n const batch: Batch = {\n mimeType: loader.mimeTypes[0],\n shape: Array.isArray(parsedData) ? 'row-table' : 'unknown',\n batchType: 'data',\n data: parsedData,\n length: Array.isArray(parsedData) ? parsedData.length : 1\n };\n yield batch;\n }\n\n return parseChunkInBatches();\n}\n\ntype TransformBatches = (\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n) => AsyncIterable<ArrayBuffer>;\n\n/**\n * Create an iterator chain with any transform iterators (crypto, decompression)\n * @param inputIterator\n * @param options\n */\nasync function applyInputTransforms(\n inputIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n transforms: TransformBatches[] = []\n): Promise<AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>> {\n let iteratorChain = inputIterator;\n for await (const transformBatches of transforms) {\n iteratorChain = transformBatches(iteratorChain);\n }\n return iteratorChain;\n}\n"],"mappings":"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"}
@@ -1,28 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.parseSync = parseSync;
9
-
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
9
  var _loaderUtils = require("@loaders.gl/loader-utils");
13
-
14
10
  var _selectLoader = require("./select-loader");
15
-
16
11
  var _normalizeLoader = require("../loader-utils/normalize-loader");
17
-
18
12
  var _optionUtils = require("../loader-utils/option-utils");
19
-
20
13
  var _getData = require("../loader-utils/get-data");
21
-
22
14
  var _loaderContext = require("../loader-utils/loader-context");
23
-
24
15
  var _resourceUtils = require("../utils/resource-utils");
25
-
26
16
  function parseSync(data, loaders, options, context) {
27
17
  (0, _loaderUtils.assert)(!context || (0, _typeof2.default)(context) === 'object');
28
18
 
@@ -31,12 +21,11 @@ function parseSync(data, loaders, options, context) {
31
21
  options = loaders;
32
22
  loaders = undefined;
33
23
  }
34
-
35
24
  options = options || {};
25
+
36
26
  var typedLoaders = loaders;
37
27
  var candidateLoaders = (0, _loaderContext.getLoadersFromContext)(typedLoaders, context);
38
28
  var loader = (0, _selectLoader.selectLoaderSync)(data, candidateLoaders, options);
39
-
40
29
  if (!loader) {
41
30
  return null;
42
31
  }
@@ -44,12 +33,10 @@ function parseSync(data, loaders, options, context) {
44
33
  options = (0, _optionUtils.normalizeOptions)(options, loader, candidateLoaders);
45
34
 
46
35
  var _getResourceUrlAndTyp = (0, _resourceUtils.getResourceUrlAndType)(data),
47
- url = _getResourceUrlAndTyp.url;
48
-
36
+ url = _getResourceUrlAndTyp.url;
49
37
  var parse = function parse() {
50
38
  throw new Error('parseSync called parse');
51
39
  };
52
-
53
40
  context = (0, _loaderContext.getLoaderContext)({
54
41
  url: url,
55
42
  parseSync: parseSync,
@@ -61,7 +48,6 @@ function parseSync(data, loaders, options, context) {
61
48
 
62
49
  function parseWithLoaderSync(loader, data, options, context) {
63
50
  data = (0, _getData.getArrayBufferOrStringFromDataSync)(data, loader, options);
64
-
65
51
  if (loader.parseTextSync && typeof data === 'string') {
66
52
  return loader.parseTextSync(data, options);
67
53
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/api/parse-sync.ts"],"names":["parseSync","data","loaders","options","context","Array","isArray","undefined","typedLoaders","candidateLoaders","loader","url","parse","Error","parseWithLoaderSync","parseTextSync","ArrayBuffer","name"],"mappings":";;;;;;;;;;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AASO,SAASA,SAAT,CACLC,IADK,EAELC,OAFK,EAGLC,OAHK,EAILC,OAJK,EAKA;AACL,2BAAO,CAACA,OAAD,IAAY,sBAAOA,OAAP,MAAmB,QAAtC;;AAIA,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAD,IAA2B,CAAC,qCAAeA,OAAf,CAAhC,EAAyD;AACvDE,IAAAA,OAAO,GAAGG,SAAV;AACAJ,IAAAA,OAAO,GAAGD,OAAV;AACAA,IAAAA,OAAO,GAAGK,SAAV;AACD;;AAEDJ,EAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;AAIA,MAAMK,YAAY,GAAGN,OAArB;AACA,MAAMO,gBAAgB,GAAG,0CAAsBD,YAAtB,EAAoCJ,OAApC,CAAzB;AACA,MAAMM,MAAM,GAAG,oCAAiBT,IAAjB,EAAuBQ,gBAAvB,EAAyCN,OAAzC,CAAf;;AAEA,MAAI,CAACO,MAAL,EAAa;AACX,WAAO,IAAP;AACD;;AAGDP,EAAAA,OAAO,GAAG,mCAAiBA,OAAjB,EAA0BO,MAA1B,EAAkCD,gBAAlC,CAAV;;AAGA,8BAAc,0CAAsBR,IAAtB,CAAd;AAAA,MAAOU,GAAP,yBAAOA,GAAP;;AAEA,MAAMC,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB,UAAM,IAAIC,KAAJ,CAAU,wBAAV,CAAN;AACD,GAFD;;AAGAT,EAAAA,OAAO,GAAG,qCAAiB;AAACO,IAAAA,GAAG,EAAHA,GAAD;AAAMX,IAAAA,SAAS,EAATA,SAAN;AAAiBY,IAAAA,KAAK,EAALA,KAAjB;AAAwBV,IAAAA,OAAO,EAAEA;AAAjC,GAAjB,EAAwEC,OAAxE,CAAV;AAEA,SAAOW,mBAAmB,CAACJ,MAAD,EAA6BT,IAA7B,EAAmCE,OAAnC,EAA4CC,OAA5C,CAA1B;AACD;;AAGD,SAASU,mBAAT,CACEJ,MADF,EAEET,IAFF,EAGEE,OAHF,EAIEC,OAJF,EAKE;AACAH,EAAAA,IAAI,GAAG,iDAAmCA,IAAnC,EAAyCS,MAAzC,EAAiDP,OAAjD,CAAP;;AAEA,MAAIO,MAAM,CAACK,aAAP,IAAwB,OAAOd,IAAP,KAAgB,QAA5C,EAAsD;AACpD,WAAOS,MAAM,CAACK,aAAP,CAAqBd,IAArB,EAA2BE,OAA3B,CAAP;AACD;;AAED,MAAIO,MAAM,CAACV,SAAP,IAAoBC,IAAI,YAAYe,WAAxC,EAAqD;AACnD,WAAON,MAAM,CAACV,SAAP,CAAiBC,IAAjB,EAAuBE,OAAvB,EAAgCC,OAAhC,CAAP;AACD;;AAGD,QAAM,IAAIS,KAAJ,WACDH,MAAM,CAACO,IADN,qFAEFb,OAAO,CAACO,GAAR,IAAe,EAFb,EAAN;AAKD","sourcesContent":["import type {\n SyncDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {selectLoaderSync} from './select-loader';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromDataSync} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\n\n/**\n * Parses `data` synchronously using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function parseSync(\n data: SyncDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): any {\n assert(!context || typeof context === 'object'); // parseSync no longer accepts final url\n\n // Signature: parseSync(data, options)\n // Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n options = options || {};\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n const loader = selectLoaderSync(data, candidateLoaders, options);\n // Note: if nothrow option was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders);\n\n // Extract a url for auto detection\n const {url} = getResourceUrlAndType(data);\n\n const parse = () => {\n throw new Error('parseSync called parse');\n };\n context = getLoaderContext({url, parseSync, parse, loaders: loaders as Loader[]}, options);\n\n return parseWithLoaderSync(loader as LoaderWithParser, data, options, context);\n}\n\n// TODO - should accept loader.parseSync/parse and generate 1 chunk asyncIterator\nfunction parseWithLoaderSync(\n loader: LoaderWithParser,\n data: SyncDataType,\n options: LoaderOptions,\n context: LoaderContext\n) {\n data = getArrayBufferOrStringFromDataSync(data, loader, options);\n\n if (loader.parseTextSync && typeof data === 'string') {\n return loader.parseTextSync(data, options); // , context, loader);\n }\n\n if (loader.parseSync && data instanceof ArrayBuffer) {\n return loader.parseSync(data, options, context); // , loader);\n }\n\n // TBD - If synchronous parser not available, return null\n throw new Error(\n `${loader.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${\n context.url || ''\n }`\n );\n}\n"],"file":"parse-sync.js"}
1
+ {"version":3,"file":"parse-sync.js","names":["parseSync","data","loaders","options","context","assert","Array","isArray","isLoaderObject","undefined","typedLoaders","candidateLoaders","getLoadersFromContext","loader","selectLoaderSync","normalizeOptions","getResourceUrlAndType","url","parse","Error","getLoaderContext","parseWithLoaderSync","getArrayBufferOrStringFromDataSync","parseTextSync","ArrayBuffer","name"],"sources":["../../../../src/lib/api/parse-sync.ts"],"sourcesContent":["import type {\n SyncDataType,\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions\n} from '@loaders.gl/loader-utils';\nimport {assert} from '@loaders.gl/loader-utils';\nimport {selectLoaderSync} from './select-loader';\nimport {isLoaderObject} from '../loader-utils/normalize-loader';\nimport {normalizeOptions} from '../loader-utils/option-utils';\nimport {getArrayBufferOrStringFromDataSync} from '../loader-utils/get-data';\nimport {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';\nimport {getResourceUrlAndType} from '../utils/resource-utils';\n\n/**\n * Parses `data` synchronously using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\nexport function parseSync(\n data: SyncDataType,\n loaders?: Loader | Loader[] | LoaderOptions,\n options?: LoaderOptions,\n context?: LoaderContext\n): any {\n assert(!context || typeof context === 'object'); // parseSync no longer accepts final url\n\n // Signature: parseSync(data, options)\n // Uses registered loaders\n if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders as LoaderOptions;\n loaders = undefined;\n }\n\n options = options || {};\n\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders as Loader | Loader[] | undefined;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n const loader = selectLoaderSync(data, candidateLoaders, options);\n // Note: if nothrow option was set, it is possible that no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n\n // Normalize options\n options = normalizeOptions(options, loader, candidateLoaders);\n\n // Extract a url for auto detection\n const {url} = getResourceUrlAndType(data);\n\n const parse = () => {\n throw new Error('parseSync called parse');\n };\n context = getLoaderContext({url, parseSync, parse, loaders: loaders as Loader[]}, options);\n\n return parseWithLoaderSync(loader as LoaderWithParser, data, options, context);\n}\n\n// TODO - should accept loader.parseSync/parse and generate 1 chunk asyncIterator\nfunction parseWithLoaderSync(\n loader: LoaderWithParser,\n data: SyncDataType,\n options: LoaderOptions,\n context: LoaderContext\n) {\n data = getArrayBufferOrStringFromDataSync(data, loader, options);\n\n if (loader.parseTextSync && typeof data === 'string') {\n return loader.parseTextSync(data, options); // , context, loader);\n }\n\n if (loader.parseSync && data instanceof ArrayBuffer) {\n return loader.parseSync(data, options, context); // , loader);\n }\n\n // TBD - If synchronous parser not available, return null\n throw new Error(\n `${loader.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${\n context.url || ''\n }`\n );\n}\n"],"mappings":";;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AASO,SAASA,SAAS,CACvBC,IAAkB,EAClBC,OAA2C,EAC3CC,OAAuB,EACvBC,OAAuB,EAClB;EACL,IAAAC,mBAAM,EAAC,CAACD,OAAO,IAAI,sBAAOA,OAAO,MAAK,QAAQ,CAAC;;EAI/C,IAAI,CAACE,KAAK,CAACC,OAAO,CAACL,OAAO,CAAC,IAAI,CAAC,IAAAM,+BAAc,EAACN,OAAO,CAAC,EAAE;IACvDE,OAAO,GAAGK,SAAS;IACnBN,OAAO,GAAGD,OAAwB;IAClCA,OAAO,GAAGO,SAAS;EACrB;EAEAN,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;;EAIvB,IAAMO,YAAY,GAAGR,OAAwC;EAC7D,IAAMS,gBAAgB,GAAG,IAAAC,oCAAqB,EAACF,YAAY,EAAEN,OAAO,CAAC;EACrE,IAAMS,MAAM,GAAG,IAAAC,8BAAgB,EAACb,IAAI,EAAEU,gBAAgB,EAAER,OAAO,CAAC;EAEhE,IAAI,CAACU,MAAM,EAAE;IACX,OAAO,IAAI;EACb;;EAGAV,OAAO,GAAG,IAAAY,6BAAgB,EAACZ,OAAO,EAAEU,MAAM,EAAEF,gBAAgB,CAAC;;EAG7D,4BAAc,IAAAK,oCAAqB,EAACf,IAAI,CAAC;IAAlCgB,GAAG,yBAAHA,GAAG;EAEV,IAAMC,KAAK,GAAG,SAARA,KAAK,GAAS;IAClB,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C,CAAC;EACDf,OAAO,GAAG,IAAAgB,+BAAgB,EAAC;IAACH,GAAG,EAAHA,GAAG;IAAEjB,SAAS,EAATA,SAAS;IAAEkB,KAAK,EAALA,KAAK;IAAEhB,OAAO,EAAEA;EAAmB,CAAC,EAAEC,OAAO,CAAC;EAE1F,OAAOkB,mBAAmB,CAACR,MAAM,EAAsBZ,IAAI,EAAEE,OAAO,EAAEC,OAAO,CAAC;AAChF;;AAGA,SAASiB,mBAAmB,CAC1BR,MAAwB,EACxBZ,IAAkB,EAClBE,OAAsB,EACtBC,OAAsB,EACtB;EACAH,IAAI,GAAG,IAAAqB,2CAAkC,EAACrB,IAAI,EAAEY,MAAM,EAAEV,OAAO,CAAC;EAEhE,IAAIU,MAAM,CAACU,aAAa,IAAI,OAAOtB,IAAI,KAAK,QAAQ,EAAE;IACpD,OAAOY,MAAM,CAACU,aAAa,CAACtB,IAAI,EAAEE,OAAO,CAAC;EAC5C;;EAEA,IAAIU,MAAM,CAACb,SAAS,IAAIC,IAAI,YAAYuB,WAAW,EAAE;IACnD,OAAOX,MAAM,CAACb,SAAS,CAACC,IAAI,EAAEE,OAAO,EAAEC,OAAO,CAAC;EACjD;;EAGA,MAAM,IAAIe,KAAK,WACVN,MAAM,CAACY,IAAI,qFACZrB,OAAO,CAACa,GAAG,IAAI,EAAE,EAEpB;AACH"}