@loaders.gl/core 4.0.0-alpha.5 → 4.0.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 (376) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/core-addons/write-file-browser.js +59 -1
  3. package/dist/dist.min.js +934 -451
  4. package/dist/es5/bundle.js +6 -0
  5. package/dist/es5/bundle.js.map +1 -0
  6. package/dist/es5/core-addons/write-file-browser.js +2 -0
  7. package/dist/es5/core-addons/write-file-browser.js.map +1 -0
  8. package/dist/es5/index.js +377 -0
  9. package/dist/es5/index.js.map +1 -0
  10. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +94 -0
  11. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  12. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +42 -0
  13. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  14. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +47 -0
  15. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  16. package/dist/es5/iterators/make-iterator/make-iterator.js +31 -0
  17. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -0
  18. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +133 -0
  19. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  20. package/dist/es5/iterators/make-iterator/make-string-iterator.js +38 -0
  21. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -0
  22. package/dist/es5/iterators/make-stream/make-dom-stream.js +67 -0
  23. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -0
  24. package/dist/es5/iterators/make-stream/make-node-stream.js +168 -0
  25. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -0
  26. package/dist/es5/javascript-utils/is-type.js +79 -0
  27. package/dist/es5/javascript-utils/is-type.js.map +1 -0
  28. package/dist/es5/lib/api/encode-table.js +159 -0
  29. package/dist/es5/lib/api/encode-table.js.map +1 -0
  30. package/dist/es5/lib/api/encode.js +244 -0
  31. package/dist/es5/lib/api/encode.js.map +1 -0
  32. package/dist/es5/lib/api/load-in-batches.js +63 -0
  33. package/dist/es5/lib/api/load-in-batches.js.map +1 -0
  34. package/dist/es5/lib/api/load.js +76 -0
  35. package/dist/es5/lib/api/load.js.map +1 -0
  36. package/dist/es5/lib/api/loader-options.js +19 -0
  37. package/dist/es5/lib/api/loader-options.js.map +1 -0
  38. package/dist/es5/lib/api/parse-in-batches.js +278 -0
  39. package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
  40. package/dist/es5/lib/api/parse-sync.js +53 -0
  41. package/dist/es5/lib/api/parse-sync.js.map +1 -0
  42. package/dist/es5/lib/api/parse.js +143 -0
  43. package/dist/es5/lib/api/parse.js.map +1 -0
  44. package/dist/es5/lib/api/register-loaders.js +50 -0
  45. package/dist/es5/lib/api/register-loaders.js.map +1 -0
  46. package/dist/es5/lib/api/save.js +42 -0
  47. package/dist/es5/lib/api/save.js.map +1 -0
  48. package/dist/es5/lib/api/select-loader.js +302 -0
  49. package/dist/es5/lib/api/select-loader.js.map +1 -0
  50. package/dist/es5/lib/common.js +2 -0
  51. package/dist/es5/lib/common.js.map +1 -0
  52. package/dist/es5/lib/fetch/fetch-error-message.js +56 -0
  53. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -0
  54. package/dist/es5/lib/fetch/fetch-file.js +47 -0
  55. package/dist/es5/lib/fetch/fetch-file.js.map +1 -0
  56. package/dist/es5/lib/fetch/read-array-buffer.js +76 -0
  57. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -0
  58. package/dist/es5/lib/fetch/read-file.js +20 -0
  59. package/dist/es5/lib/fetch/read-file.js.map +1 -0
  60. package/dist/es5/lib/fetch/write-file.js +48 -0
  61. package/dist/es5/lib/fetch/write-file.js.map +1 -0
  62. package/dist/es5/lib/filesystems/browser-filesystem.js +249 -0
  63. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -0
  64. package/dist/es5/lib/filesystems/filesystem.js +2 -0
  65. package/dist/es5/lib/filesystems/filesystem.js.map +1 -0
  66. package/dist/es5/lib/filesystems/read-array-buffer.js +41 -0
  67. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -0
  68. package/dist/es5/lib/init.js +18 -0
  69. package/dist/es5/lib/init.js.map +1 -0
  70. package/dist/es5/lib/loader-utils/check-errors.js +57 -0
  71. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -0
  72. package/dist/es5/lib/loader-utils/get-data.js +237 -0
  73. package/dist/es5/lib/loader-utils/get-data.js.map +1 -0
  74. package/dist/es5/lib/loader-utils/get-fetch-function.js +26 -0
  75. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -0
  76. package/dist/es5/lib/loader-utils/loader-context.js +49 -0
  77. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -0
  78. package/dist/es5/lib/loader-utils/loggers.js +90 -0
  79. package/dist/es5/lib/loader-utils/loggers.js.map +1 -0
  80. package/dist/es5/lib/loader-utils/normalize-loader.js +44 -0
  81. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -0
  82. package/dist/es5/lib/loader-utils/option-defaults.js +47 -0
  83. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -0
  84. package/dist/es5/lib/loader-utils/option-utils.js +132 -0
  85. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -0
  86. package/dist/es5/lib/progress/fetch-progress.js +134 -0
  87. package/dist/es5/lib/progress/fetch-progress.js.map +1 -0
  88. package/dist/es5/lib/utils/log.js +12 -0
  89. package/dist/es5/lib/utils/log.js.map +1 -0
  90. package/dist/es5/lib/utils/mime-type-utils.js +24 -0
  91. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -0
  92. package/dist/es5/lib/utils/resource-utils.js +62 -0
  93. package/dist/es5/lib/utils/resource-utils.js.map +1 -0
  94. package/dist/es5/lib/utils/response-utils.js +197 -0
  95. package/dist/es5/lib/utils/response-utils.js.map +1 -0
  96. package/dist/es5/lib/utils/url-utils.js +16 -0
  97. package/dist/es5/lib/utils/url-utils.js.map +1 -0
  98. package/dist/es5/null-loader.js +139 -0
  99. package/dist/es5/null-loader.js.map +1 -0
  100. package/dist/es5/workers/null-worker.js +6 -0
  101. package/dist/es5/workers/null-worker.js.map +1 -0
  102. package/dist/esm/bundle.js +4 -0
  103. package/dist/esm/bundle.js.map +1 -0
  104. package/dist/esm/core-addons/README.md +1 -0
  105. package/dist/esm/core-addons/write-file-browser.js +2 -0
  106. package/dist/esm/core-addons/write-file-browser.js.map +1 -0
  107. package/dist/esm/index.js +30 -0
  108. package/dist/esm/index.js.map +1 -0
  109. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +16 -0
  110. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  111. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +20 -0
  112. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  113. package/dist/esm/iterators/make-iterator/make-blob-iterator.js +12 -0
  114. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  115. package/dist/esm/iterators/make-iterator/make-iterator.js +25 -0
  116. package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -0
  117. package/dist/esm/iterators/make-iterator/make-stream-iterator.js +32 -0
  118. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  119. package/dist/esm/iterators/make-iterator/make-string-iterator.js +13 -0
  120. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -0
  121. package/dist/esm/iterators/make-stream/make-dom-stream.js +29 -0
  122. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -0
  123. package/dist/esm/iterators/make-stream/make-node-stream.js +57 -0
  124. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -0
  125. package/dist/esm/javascript-utils/is-type.js +19 -0
  126. package/dist/esm/javascript-utils/is-type.js.map +1 -0
  127. package/dist/esm/lib/api/encode-table.js +45 -0
  128. package/dist/esm/lib/api/encode-table.js.map +1 -0
  129. package/dist/esm/lib/api/encode.js +87 -0
  130. package/dist/esm/lib/api/encode.js.map +1 -0
  131. package/dist/esm/lib/api/load-in-batches.js +25 -0
  132. package/dist/esm/lib/api/load-in-batches.js.map +1 -0
  133. package/dist/esm/lib/api/load.js +26 -0
  134. package/dist/esm/lib/api/load.js.map +1 -0
  135. package/dist/esm/lib/api/loader-options.js +3 -0
  136. package/dist/esm/lib/api/loader-options.js.map +1 -0
  137. package/dist/esm/lib/api/parse-in-batches.js +84 -0
  138. package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
  139. package/dist/esm/lib/api/parse-sync.js +45 -0
  140. package/dist/esm/lib/api/parse-sync.js.map +1 -0
  141. package/dist/esm/lib/api/parse.js +74 -0
  142. package/dist/esm/lib/api/parse.js.map +1 -0
  143. package/dist/esm/lib/api/register-loaders.js +25 -0
  144. package/dist/esm/lib/api/register-loaders.js.map +1 -0
  145. package/dist/esm/lib/api/save.js +11 -0
  146. package/dist/esm/lib/api/save.js.map +1 -0
  147. package/dist/esm/lib/api/select-loader.js +201 -0
  148. package/dist/esm/lib/api/select-loader.js.map +1 -0
  149. package/dist/esm/lib/common.js +2 -0
  150. package/dist/esm/lib/common.js.map +1 -0
  151. package/dist/esm/lib/fetch/fetch-error-message.js +18 -0
  152. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -0
  153. package/dist/esm/lib/fetch/fetch-file.js +14 -0
  154. package/dist/esm/lib/fetch/fetch-file.js.map +1 -0
  155. package/dist/esm/lib/fetch/read-array-buffer.js +23 -0
  156. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -0
  157. package/dist/esm/lib/fetch/read-file.js +15 -0
  158. package/dist/esm/lib/fetch/read-file.js.map +1 -0
  159. package/dist/esm/lib/fetch/write-file.js +21 -0
  160. package/dist/esm/lib/fetch/write-file.js.map +1 -0
  161. package/dist/esm/lib/filesystems/browser-filesystem.js +92 -0
  162. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -0
  163. package/dist/esm/lib/filesystems/filesystem.js +2 -0
  164. package/dist/esm/lib/filesystems/filesystem.js.map +1 -0
  165. package/dist/esm/lib/filesystems/read-array-buffer.js +8 -0
  166. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -0
  167. package/dist/esm/lib/init.js +11 -0
  168. package/dist/esm/lib/init.js.map +1 -0
  169. package/dist/esm/lib/loader-utils/check-errors.js +22 -0
  170. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -0
  171. package/dist/esm/lib/loader-utils/get-data.js +103 -0
  172. package/dist/esm/lib/loader-utils/get-data.js.map +1 -0
  173. package/dist/esm/lib/loader-utils/get-fetch-function.js +18 -0
  174. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -0
  175. package/dist/esm/lib/loader-utils/loader-context.js +38 -0
  176. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -0
  177. package/dist/esm/lib/loader-utils/loggers.js +50 -0
  178. package/dist/esm/lib/loader-utils/loggers.js.map +1 -0
  179. package/dist/esm/lib/loader-utils/normalize-loader.js +37 -0
  180. package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -0
  181. package/dist/esm/lib/loader-utils/option-defaults.js +39 -0
  182. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -0
  183. package/dist/esm/lib/loader-utils/option-utils.js +106 -0
  184. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -0
  185. package/dist/esm/lib/progress/fetch-progress.js +52 -0
  186. package/dist/esm/lib/progress/fetch-progress.js.map +1 -0
  187. package/dist/esm/lib/utils/log.js +5 -0
  188. package/dist/esm/lib/utils/log.js.map +1 -0
  189. package/dist/esm/lib/utils/mime-type-utils.js +17 -0
  190. package/dist/esm/lib/utils/mime-type-utils.js.map +1 -0
  191. package/dist/esm/lib/utils/resource-utils.js +54 -0
  192. package/dist/esm/lib/utils/resource-utils.js.map +1 -0
  193. package/dist/esm/lib/utils/response-utils.js +89 -0
  194. package/dist/esm/lib/utils/response-utils.js.map +1 -0
  195. package/dist/esm/lib/utils/url-utils.js +9 -0
  196. package/dist/esm/lib/utils/url-utils.js.map +1 -0
  197. package/dist/esm/null-loader.js +45 -0
  198. package/dist/esm/null-loader.js.map +1 -0
  199. package/dist/esm/workers/null-worker.js +4 -0
  200. package/dist/esm/workers/null-worker.js.map +1 -0
  201. package/dist/index.d.ts +3 -1
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +108 -29
  204. package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
  205. package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
  206. package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
  207. package/dist/iterators/make-iterator/make-iterator.d.ts +1 -1
  208. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
  209. package/dist/iterators/make-iterator/make-iterator.js +36 -29
  210. package/dist/iterators/make-iterator/make-stream-iterator.d.ts +1 -1
  211. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -1
  212. package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
  213. package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
  214. package/dist/iterators/make-stream/make-dom-stream.d.ts +1 -1
  215. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
  216. package/dist/iterators/make-stream/make-dom-stream.js +44 -32
  217. package/dist/iterators/make-stream/make-node-stream.d.ts +8 -3
  218. package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -1
  219. package/dist/iterators/make-stream/make-node-stream.js +75 -67
  220. package/dist/javascript-utils/is-type.d.ts +1 -1
  221. package/dist/javascript-utils/is-type.d.ts.map +1 -1
  222. package/dist/javascript-utils/is-type.js +41 -21
  223. package/dist/lib/api/encode-table.d.ts +6 -0
  224. package/dist/lib/api/encode-table.d.ts.map +1 -0
  225. package/dist/lib/api/encode-table.js +54 -0
  226. package/dist/lib/api/encode.d.ts +5 -5
  227. package/dist/lib/api/encode.d.ts.map +1 -1
  228. package/dist/lib/api/encode.js +111 -81
  229. package/dist/lib/api/load-in-batches.d.ts +1 -1
  230. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  231. package/dist/lib/api/load-in-batches.js +30 -27
  232. package/dist/lib/api/load.d.ts +4 -1
  233. package/dist/lib/api/load.d.ts.map +1 -1
  234. package/dist/lib/api/load.js +42 -24
  235. package/dist/lib/api/loader-options.d.ts +3 -0
  236. package/dist/lib/api/loader-options.d.ts.map +1 -0
  237. package/dist/lib/api/loader-options.js +7 -0
  238. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  239. package/dist/lib/api/parse-in-batches.js +110 -92
  240. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  241. package/dist/lib/api/parse-sync.js +56 -54
  242. package/dist/lib/api/parse.d.ts +4 -8
  243. package/dist/lib/api/parse.d.ts.map +1 -1
  244. package/dist/lib/api/parse.js +81 -61
  245. package/dist/lib/api/register-loaders.d.ts +1 -1
  246. package/dist/lib/api/register-loaders.d.ts.map +1 -1
  247. package/dist/lib/api/register-loaders.js +29 -23
  248. package/dist/lib/api/save.js +13 -9
  249. package/dist/lib/api/select-loader.d.ts.map +1 -1
  250. package/dist/lib/api/select-loader.js +219 -194
  251. package/dist/lib/common.js +2 -2
  252. package/dist/lib/fetch/fetch-error-message.js +21 -17
  253. package/dist/lib/fetch/fetch-file.js +25 -15
  254. package/dist/lib/fetch/read-array-buffer.js +39 -27
  255. package/dist/lib/fetch/read-file.js +28 -16
  256. package/dist/lib/fetch/write-file.js +20 -23
  257. package/dist/lib/filesystems/browser-filesystem.d.ts +1 -1
  258. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  259. package/dist/lib/filesystems/browser-filesystem.js +118 -107
  260. package/dist/lib/filesystems/filesystem.d.ts +2 -2
  261. package/dist/lib/filesystems/filesystem.d.ts.map +1 -1
  262. package/dist/lib/filesystems/filesystem.js +2 -2
  263. package/dist/lib/filesystems/read-array-buffer.js +28 -8
  264. package/dist/lib/init.d.ts.map +1 -1
  265. package/dist/lib/init.js +16 -6
  266. package/dist/lib/loader-utils/check-errors.js +26 -22
  267. package/dist/lib/loader-utils/get-data.js +122 -122
  268. package/dist/lib/loader-utils/get-fetch-function.d.ts +9 -0
  269. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
  270. package/dist/lib/loader-utils/get-fetch-function.js +31 -0
  271. package/dist/lib/loader-utils/loader-context.d.ts +1 -1
  272. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  273. package/dist/lib/loader-utils/loader-context.js +57 -34
  274. package/dist/lib/loader-utils/loggers.d.ts +2 -1
  275. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  276. package/dist/lib/loader-utils/loggers.js +39 -46
  277. package/dist/lib/loader-utils/normalize-loader.js +50 -41
  278. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  279. package/dist/lib/loader-utils/option-defaults.js +41 -35
  280. package/dist/lib/loader-utils/option-utils.d.ts +11 -13
  281. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  282. package/dist/lib/loader-utils/option-utils.js +140 -120
  283. package/dist/lib/progress/fetch-progress.js +54 -56
  284. package/dist/lib/utils/log.d.ts +3 -0
  285. package/dist/lib/utils/log.d.ts.map +1 -0
  286. package/dist/lib/utils/log.js +6 -0
  287. package/dist/lib/utils/mime-type-utils.js +38 -17
  288. package/dist/lib/utils/resource-utils.d.ts +17 -8
  289. package/dist/lib/utils/resource-utils.d.ts.map +1 -1
  290. package/dist/lib/utils/resource-utils.js +86 -56
  291. package/dist/lib/utils/response-utils.d.ts.map +1 -1
  292. package/dist/lib/utils/response-utils.js +105 -105
  293. package/dist/lib/utils/url-utils.d.ts +3 -0
  294. package/dist/lib/utils/url-utils.d.ts.map +1 -0
  295. package/dist/lib/utils/url-utils.js +14 -0
  296. package/dist/null-loader.d.ts.map +1 -1
  297. package/dist/null-loader.js +53 -31
  298. package/dist/null-worker-node.js +234 -0
  299. package/dist/null-worker.js +61 -21
  300. package/dist/workers/null-worker.js +5 -4
  301. package/package.json +11 -10
  302. package/src/index.ts +19 -1
  303. package/src/iterators/make-stream/make-dom-stream.ts +1 -1
  304. package/src/iterators/make-stream/make-node-stream.ts +8 -2
  305. package/src/lib/api/encode-table.ts +71 -0
  306. package/src/lib/api/encode.ts +15 -5
  307. package/src/lib/api/load-in-batches.ts +1 -1
  308. package/src/lib/api/load.ts +39 -8
  309. package/src/lib/api/loader-options.ts +2 -0
  310. package/src/lib/api/parse-in-batches.ts +8 -9
  311. package/src/lib/api/parse-sync.ts +8 -4
  312. package/src/lib/api/parse.ts +42 -5
  313. package/src/lib/api/register-loaders.ts +1 -1
  314. package/src/lib/api/select-loader.ts +23 -4
  315. package/src/lib/init.ts +10 -3
  316. package/src/lib/loader-utils/get-fetch-function.ts +38 -0
  317. package/src/lib/loader-utils/loader-context.ts +20 -9
  318. package/src/lib/loader-utils/loggers.ts +1 -1
  319. package/src/lib/loader-utils/option-defaults.ts +3 -1
  320. package/src/lib/loader-utils/option-utils.ts +22 -46
  321. package/src/lib/progress/fetch-progress.ts +2 -2
  322. package/src/lib/utils/log.ts +4 -0
  323. package/src/lib/utils/resource-utils.ts +54 -34
  324. package/src/lib/utils/response-utils.ts +5 -4
  325. package/src/lib/utils/url-utils.ts +12 -0
  326. package/src/null-loader.ts +17 -5
  327. package/dist/bundle.js.map +0 -1
  328. package/dist/core-addons/write-file-browser.js.map +0 -1
  329. package/dist/index.js.map +0 -1
  330. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  331. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  332. package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  333. package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
  334. package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  335. package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
  336. package/dist/iterators/make-stream/make-dom-stream.js.map +0 -1
  337. package/dist/iterators/make-stream/make-node-stream.js.map +0 -1
  338. package/dist/javascript-utils/is-type.js.map +0 -1
  339. package/dist/lib/api/encode.js.map +0 -1
  340. package/dist/lib/api/load-in-batches.js.map +0 -1
  341. package/dist/lib/api/load.js.map +0 -1
  342. package/dist/lib/api/parse-in-batches.js.map +0 -1
  343. package/dist/lib/api/parse-sync.js.map +0 -1
  344. package/dist/lib/api/parse.js.map +0 -1
  345. package/dist/lib/api/register-loaders.js.map +0 -1
  346. package/dist/lib/api/save.js.map +0 -1
  347. package/dist/lib/api/select-loader.js.map +0 -1
  348. package/dist/lib/api/set-loader-options.d.ts +0 -6
  349. package/dist/lib/api/set-loader-options.d.ts.map +0 -1
  350. package/dist/lib/api/set-loader-options.js +0 -5
  351. package/dist/lib/api/set-loader-options.js.map +0 -1
  352. package/dist/lib/common.js.map +0 -1
  353. package/dist/lib/fetch/fetch-error-message.js.map +0 -1
  354. package/dist/lib/fetch/fetch-file.js.map +0 -1
  355. package/dist/lib/fetch/read-array-buffer.js.map +0 -1
  356. package/dist/lib/fetch/read-file.js.map +0 -1
  357. package/dist/lib/fetch/write-file.js.map +0 -1
  358. package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
  359. package/dist/lib/filesystems/filesystem.js.map +0 -1
  360. package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
  361. package/dist/lib/init.js.map +0 -1
  362. package/dist/lib/loader-utils/check-errors.js.map +0 -1
  363. package/dist/lib/loader-utils/get-data.js.map +0 -1
  364. package/dist/lib/loader-utils/loader-context.js.map +0 -1
  365. package/dist/lib/loader-utils/loggers.js.map +0 -1
  366. package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
  367. package/dist/lib/loader-utils/option-defaults.js.map +0 -1
  368. package/dist/lib/loader-utils/option-utils.js.map +0 -1
  369. package/dist/lib/progress/fetch-progress.js.map +0 -1
  370. package/dist/lib/utils/mime-type-utils.js.map +0 -1
  371. package/dist/lib/utils/resource-utils.js.map +0 -1
  372. package/dist/lib/utils/response-utils.js.map +0 -1
  373. package/dist/null-loader.js.map +0 -1
  374. package/dist/workers/null-worker.js.map +0 -1
  375. package/src/lib/api/set-loader-options.ts +0 -9
  376. /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
@@ -0,0 +1,234 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+
21
+ // ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
22
+ function getTransferList(object, recursive = true, transfers) {
23
+ const transfersSet = transfers || new Set();
24
+ if (!object) {
25
+ } else if (isTransferable(object)) {
26
+ transfersSet.add(object);
27
+ } else if (isTransferable(object.buffer)) {
28
+ transfersSet.add(object.buffer);
29
+ } else if (ArrayBuffer.isView(object)) {
30
+ } else if (recursive && typeof object === "object") {
31
+ for (const key in object) {
32
+ getTransferList(object[key], recursive, transfersSet);
33
+ }
34
+ }
35
+ return transfers === void 0 ? Array.from(transfersSet) : [];
36
+ }
37
+ function isTransferable(object) {
38
+ if (!object) {
39
+ return false;
40
+ }
41
+ if (object instanceof ArrayBuffer) {
42
+ return true;
43
+ }
44
+ if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
45
+ return true;
46
+ }
47
+ if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
48
+ return true;
49
+ }
50
+ if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
51
+ return true;
52
+ }
53
+ return false;
54
+ }
55
+
56
+ // ../worker-utils/src/lib/worker-farm/worker-body.ts
57
+ function getParentPort() {
58
+ let parentPort;
59
+ try {
60
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
61
+ parentPort = globalThis.parentPort;
62
+ } catch {
63
+ }
64
+ return parentPort;
65
+ }
66
+ var onMessageWrapperMap = new Map();
67
+ var WorkerBody = class {
68
+ static inWorkerThread() {
69
+ return typeof self !== "undefined" || Boolean(getParentPort());
70
+ }
71
+ static set onmessage(onMessage) {
72
+ function handleMessage(message) {
73
+ const parentPort3 = getParentPort();
74
+ const { type, payload } = parentPort3 ? message : message.data;
75
+ onMessage(type, payload);
76
+ }
77
+ const parentPort2 = getParentPort();
78
+ if (parentPort2) {
79
+ parentPort2.on("message", handleMessage);
80
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
81
+ } else {
82
+ globalThis.onmessage = handleMessage;
83
+ }
84
+ }
85
+ static addEventListener(onMessage) {
86
+ let onMessageWrapper = onMessageWrapperMap.get(onMessage);
87
+ if (!onMessageWrapper) {
88
+ onMessageWrapper = (message) => {
89
+ if (!isKnownMessage(message)) {
90
+ return;
91
+ }
92
+ const parentPort3 = getParentPort();
93
+ const { type, payload } = parentPort3 ? message : message.data;
94
+ onMessage(type, payload);
95
+ };
96
+ }
97
+ const parentPort2 = getParentPort();
98
+ if (parentPort2) {
99
+ console.error("not implemented");
100
+ } else {
101
+ globalThis.addEventListener("message", onMessageWrapper);
102
+ }
103
+ }
104
+ static removeEventListener(onMessage) {
105
+ const onMessageWrapper = onMessageWrapperMap.get(onMessage);
106
+ onMessageWrapperMap.delete(onMessage);
107
+ const parentPort2 = getParentPort();
108
+ if (parentPort2) {
109
+ console.error("not implemented");
110
+ } else {
111
+ globalThis.removeEventListener("message", onMessageWrapper);
112
+ }
113
+ }
114
+ static postMessage(type, payload) {
115
+ const data = { source: "loaders.gl", type, payload };
116
+ const transferList = getTransferList(payload);
117
+ const parentPort2 = getParentPort();
118
+ if (parentPort2) {
119
+ parentPort2.postMessage(data, transferList);
120
+ } else {
121
+ globalThis.postMessage(data, transferList);
122
+ }
123
+ }
124
+ };
125
+ function isKnownMessage(message) {
126
+ const { type, data } = message;
127
+ return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
128
+ }
129
+
130
+ // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
131
+ var requestId = 0;
132
+ function createLoaderWorker(loader) {
133
+ if (!WorkerBody.inWorkerThread()) {
134
+ return;
135
+ }
136
+ WorkerBody.onmessage = async (type, payload) => {
137
+ switch (type) {
138
+ case "process":
139
+ try {
140
+ const { input, options = {}, context = {} } = payload;
141
+ const result = await parseData({
142
+ loader,
143
+ arrayBuffer: input,
144
+ options,
145
+ context: __spreadProps(__spreadValues({}, context), {
146
+ parse: parseOnMainThread
147
+ })
148
+ });
149
+ WorkerBody.postMessage("done", { result });
150
+ } catch (error) {
151
+ const message = error instanceof Error ? error.message : "";
152
+ WorkerBody.postMessage("error", { error: message });
153
+ }
154
+ break;
155
+ default:
156
+ }
157
+ };
158
+ }
159
+ function parseOnMainThread(arrayBuffer, options) {
160
+ return new Promise((resolve, reject) => {
161
+ const id = requestId++;
162
+ const onMessage = (type, payload2) => {
163
+ if (payload2.id !== id) {
164
+ return;
165
+ }
166
+ switch (type) {
167
+ case "done":
168
+ WorkerBody.removeEventListener(onMessage);
169
+ resolve(payload2.result);
170
+ break;
171
+ case "error":
172
+ WorkerBody.removeEventListener(onMessage);
173
+ reject(payload2.error);
174
+ break;
175
+ default:
176
+ }
177
+ };
178
+ WorkerBody.addEventListener(onMessage);
179
+ const payload = { id, input: arrayBuffer, options };
180
+ WorkerBody.postMessage("process", payload);
181
+ });
182
+ }
183
+ async function parseData({ loader, arrayBuffer, options, context }) {
184
+ let data;
185
+ let parser;
186
+ if (loader.parseSync || loader.parse) {
187
+ data = arrayBuffer;
188
+ parser = loader.parseSync || loader.parse;
189
+ } else if (loader.parseTextSync) {
190
+ const textDecoder = new TextDecoder();
191
+ data = textDecoder.decode(arrayBuffer);
192
+ parser = loader.parseTextSync;
193
+ } else {
194
+ throw new Error(`Could not load data with ${loader.name} loader`);
195
+ }
196
+ options = __spreadProps(__spreadValues({}, options), {
197
+ modules: loader && loader.options && loader.options.modules || {},
198
+ worker: false
199
+ });
200
+ return await parser(data, __spreadValues({}, options), context, loader);
201
+ }
202
+
203
+ // src/null-loader.ts
204
+ var VERSION = true ? "4.0.0-alpha.7" : "latest";
205
+ function parseSync(arrayBuffer, options, context) {
206
+ if (!options.null.echoParameters)
207
+ return null;
208
+ context = context && JSON.parse(JSON.stringify(context));
209
+ return { arrayBuffer, options, context };
210
+ }
211
+ var NullLoader = {
212
+ name: "Null loader",
213
+ id: "null",
214
+ module: "core",
215
+ version: VERSION,
216
+ mimeTypes: ["application/x.empty"],
217
+ extensions: ["null"],
218
+ parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
219
+ parseSync,
220
+ parseInBatches: async function* generator(asyncIterator, options, context) {
221
+ for await (const batch of asyncIterator) {
222
+ yield parseSync(batch, options, context);
223
+ }
224
+ },
225
+ tests: [() => false],
226
+ options: {
227
+ null: {
228
+ echoParameters: false
229
+ }
230
+ }
231
+ };
232
+
233
+ // src/workers/null-worker.ts
234
+ createLoaderWorker(NullLoader);
@@ -35,16 +35,33 @@
35
35
  }
36
36
 
37
37
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
38
+ function getParentPort() {
39
+ let parentPort;
40
+ try {
41
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
42
+ parentPort = globalThis.parentPort;
43
+ } catch {
44
+ }
45
+ return parentPort;
46
+ }
38
47
  var onMessageWrapperMap = new Map();
39
48
  var WorkerBody = class {
49
+ static inWorkerThread() {
50
+ return typeof self !== "undefined" || Boolean(getParentPort());
51
+ }
40
52
  static set onmessage(onMessage) {
41
- self.onmessage = (message) => {
42
- if (!isKnownMessage(message)) {
43
- return;
44
- }
45
- const { type, payload } = message.data;
53
+ function handleMessage(message) {
54
+ const parentPort3 = getParentPort();
55
+ const { type, payload } = parentPort3 ? message : message.data;
46
56
  onMessage(type, payload);
47
- };
57
+ }
58
+ const parentPort2 = getParentPort();
59
+ if (parentPort2) {
60
+ parentPort2.on("message", handleMessage);
61
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
62
+ } else {
63
+ globalThis.onmessage = handleMessage;
64
+ }
48
65
  }
49
66
  static addEventListener(onMessage) {
50
67
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -53,22 +70,36 @@
53
70
  if (!isKnownMessage(message)) {
54
71
  return;
55
72
  }
56
- const { type, payload } = message.data;
73
+ const parentPort3 = getParentPort();
74
+ const { type, payload } = parentPort3 ? message : message.data;
57
75
  onMessage(type, payload);
58
76
  };
59
77
  }
60
- self.addEventListener("message", onMessageWrapper);
78
+ const parentPort2 = getParentPort();
79
+ if (parentPort2) {
80
+ console.error("not implemented");
81
+ } else {
82
+ globalThis.addEventListener("message", onMessageWrapper);
83
+ }
61
84
  }
62
85
  static removeEventListener(onMessage) {
63
86
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
64
87
  onMessageWrapperMap.delete(onMessage);
65
- self.removeEventListener("message", onMessageWrapper);
88
+ const parentPort2 = getParentPort();
89
+ if (parentPort2) {
90
+ console.error("not implemented");
91
+ } else {
92
+ globalThis.removeEventListener("message", onMessageWrapper);
93
+ }
66
94
  }
67
95
  static postMessage(type, payload) {
68
- if (self) {
69
- const data = { source: "loaders.gl", type, payload };
70
- const transferList = getTransferList(payload);
71
- self.postMessage(data, transferList);
96
+ const data = { source: "loaders.gl", type, payload };
97
+ const transferList = getTransferList(payload);
98
+ const parentPort2 = getParentPort();
99
+ if (parentPort2) {
100
+ parentPort2.postMessage(data, transferList);
101
+ } else {
102
+ globalThis.postMessage(data, transferList);
72
103
  }
73
104
  }
74
105
  };
@@ -80,19 +111,20 @@
80
111
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
81
112
  var requestId = 0;
82
113
  function createLoaderWorker(loader) {
83
- if (typeof self === "undefined") {
114
+ if (!WorkerBody.inWorkerThread()) {
84
115
  return;
85
116
  }
86
117
  WorkerBody.onmessage = async (type, payload) => {
87
118
  switch (type) {
88
119
  case "process":
89
120
  try {
90
- const { input, options = {} } = payload;
121
+ const { input, options = {}, context = {} } = payload;
91
122
  const result = await parseData({
92
123
  loader,
93
124
  arrayBuffer: input,
94
125
  options,
95
126
  context: {
127
+ ...context,
96
128
  parse: parseOnMainThread
97
129
  }
98
130
  });
@@ -152,7 +184,13 @@
152
184
  }
153
185
 
154
186
  // src/null-loader.ts
155
- var VERSION = true ? "4.0.0-alpha.5" : "latest";
187
+ var VERSION = true ? "4.0.0-alpha.7" : "latest";
188
+ function parseSync(arrayBuffer, options, context) {
189
+ if (!options.null.echoParameters)
190
+ return null;
191
+ context = context && JSON.parse(JSON.stringify(context));
192
+ return { arrayBuffer, options, context };
193
+ }
156
194
  var NullLoader = {
157
195
  name: "Null loader",
158
196
  id: "null",
@@ -160,16 +198,18 @@
160
198
  version: VERSION,
161
199
  mimeTypes: ["application/x.empty"],
162
200
  extensions: ["null"],
163
- parse: async (arrayBuffer) => arrayBuffer,
164
- parseSync: (arrayBuffer) => arrayBuffer,
165
- parseInBatches: async function* generator(asyncIterator) {
201
+ parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
202
+ parseSync,
203
+ parseInBatches: async function* generator(asyncIterator, options, context) {
166
204
  for await (const batch of asyncIterator) {
167
- yield batch;
205
+ yield parseSync(batch, options, context);
168
206
  }
169
207
  },
170
208
  tests: [() => false],
171
209
  options: {
172
- null: {}
210
+ null: {
211
+ echoParameters: false
212
+ }
173
213
  }
174
214
  };
175
215
 
@@ -1,4 +1,5 @@
1
- import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
- import { NullLoader } from '../null-loader';
3
- createLoaderWorker(NullLoader);
4
- //# sourceMappingURL=null-worker.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
4
+ const null_loader_1 = require("../null-loader");
5
+ (0, loader_utils_1.createLoaderWorker)(null_loader_1.NullLoader);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/core",
3
- "version": "4.0.0-alpha.5",
4
- "description": "Framework-independent loaders for 3D graphics formats",
3
+ "version": "4.0.0-alpha.7",
4
+ "description": "The core API for working with loaders.gl loaders and writers",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -18,8 +18,8 @@
18
18
  "point cloud"
19
19
  ],
20
20
  "types": "dist/index.d.ts",
21
- "main": "dist/index.js",
22
- "module": "dist/index.js",
21
+ "main": "dist/es5/index.js",
22
+ "module": "dist/esm/index.js",
23
23
  "sideEffects": false,
24
24
  "browser": {
25
25
  "fs": false,
@@ -36,15 +36,16 @@
36
36
  "README.md"
37
37
  ],
38
38
  "scripts": {
39
- "pre-build": "npm run build-bundle && npm run build-worker",
39
+ "pre-build": "npm run build-bundle && npm run build-worker && npm run build-worker-node",
40
40
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
41
- "build-worker": "esbuild src/workers/null-worker.ts --bundle --outfile=dist/null-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
41
+ "build-worker": "esbuild src/workers/null-worker.ts --outfile=dist/null-worker.js --bundle --target=esnext --define:__VERSION__=\\\"$npm_package_version\\\"",
42
+ "build-worker-node": "esbuild src/workers/null-worker.ts --outfile=dist/null-worker-node.js --bundle --platform=node --target=node16 --define:__VERSION__=\\\"$npm_package_version\\\""
42
43
  },
43
44
  "dependencies": {
44
45
  "@babel/runtime": "^7.3.1",
45
- "@loaders.gl/loader-utils": "4.0.0-alpha.5",
46
- "@loaders.gl/worker-utils": "4.0.0-alpha.5",
47
- "probe.gl": "^3.4.0"
46
+ "@loaders.gl/loader-utils": "4.0.0-alpha.7",
47
+ "@loaders.gl/worker-utils": "4.0.0-alpha.7",
48
+ "@probe.gl/log": "^4.0.2"
48
49
  },
49
- "gitHead": "7a71a54bdf1ddf985cc3af3db90b82e7fa97d025"
50
+ "gitHead": "afb59c4d8e5d8ebb9c28f111cb0c96c5527d0ffd"
50
51
  }
package/src/index.ts CHANGED
@@ -1,3 +1,20 @@
1
+ // loaders.gl, MIT license
2
+
3
+ // TYPES
4
+ export type {
5
+ Loader,
6
+ LoaderWithParser,
7
+ LoaderContext,
8
+ LoaderOptions,
9
+ Writer,
10
+ WriterOptions,
11
+ DataType,
12
+ SyncDataType,
13
+ BatchableDataType,
14
+ IFileSystem,
15
+ IRandomAccessReadFileSystem
16
+ } from '@loaders.gl/loader-utils';
17
+
1
18
  // FILE READING AND WRITING
2
19
  export {fetchFile} from './lib/fetch/fetch-file';
3
20
 
@@ -6,7 +23,7 @@ export {readFileSync} from './lib/fetch/read-file';
6
23
  export {writeFile, writeFileSync} from './lib/fetch/write-file';
7
24
 
8
25
  // CONFIGURATION
9
- export {setLoaderOptions} from './lib/api/set-loader-options';
26
+ export {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';
10
27
  export {registerLoaders} from './lib/api/register-loaders';
11
28
  export {selectLoader, selectLoaderSync} from './lib/api/select-loader';
12
29
 
@@ -19,6 +36,7 @@ export {load} from './lib/api/load';
19
36
  export {loadInBatches} from './lib/api/load-in-batches';
20
37
 
21
38
  // ENCODING (ENCODING AND WRITING)
39
+ export {encodeTable, encodeTableAsText, encodeTableInBatches} from './lib/api/encode-table';
22
40
  export {encode, encodeSync, encodeInBatches, encodeText, encodeURLtoURL} from './lib/api/encode';
23
41
  export {save, saveSync} from './lib/api/save';
24
42
 
@@ -24,7 +24,6 @@ export function makeStream<ArrayBuffer>(
24
24
  // Create a byte stream (enables `Response(stream).arrayBuffer()`)
25
25
  // Only supported on Chrome
26
26
  // See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController
27
- // @ts-expect-error Only Chrome supports byte streams
28
27
  type: 'bytes',
29
28
 
30
29
  async pull(controller) {
@@ -34,6 +33,7 @@ export function makeStream<ArrayBuffer>(
34
33
  controller.close();
35
34
  } else {
36
35
  // TODO - ignores controller.desiredSize
36
+ // @ts-expect-error Unclear why value is not correctly typed
37
37
  controller.enqueue(new Uint8Array(value));
38
38
  }
39
39
  } catch (error) {
@@ -1,4 +1,10 @@
1
- import {Readable, ReadableOptions} from 'stream';
1
+ import type {ReadableOptions} from 'stream';
2
+ import * as Stream from 'stream';
3
+
4
+ class _Readable {}
5
+
6
+ type ReadableType = Stream.Readable | _Readable;
7
+ const Readable = Stream.Readable || _Readable;
2
8
 
3
9
  export type MakeStreamOptions = ReadableOptions;
4
10
 
@@ -6,7 +12,7 @@ export type MakeStreamOptions = ReadableOptions;
6
12
  export function makeStream<ArrayBuffer>(
7
13
  source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,
8
14
  options?: ReadableOptions
9
- ): Readable {
15
+ ): ReadableType {
10
16
  const iterator = source[Symbol.asyncIterator]
11
17
  ? source[Symbol.asyncIterator]()
12
18
  : source[Symbol.iterator]();
@@ -0,0 +1,71 @@
1
+ // loaders.gl, MIT license
2
+ // Copyright 2022 Foursquare Labs, Inc
3
+
4
+ /* global TextEncoder, TextDecoder */
5
+ import {concatenateArrayBuffers, Writer, WriterOptionsType} from '@loaders.gl/loader-utils';
6
+ import {Table} from '@loaders.gl/schema';
7
+
8
+ export async function encodeTable<WriterT extends Writer = Writer>(
9
+ data: Table,
10
+ writer: WriterT,
11
+ options?: WriterOptionsType<WriterT>
12
+ ): Promise<ArrayBuffer> {
13
+ if (writer.encode) {
14
+ return await writer.encode(data, options);
15
+ }
16
+
17
+ if (writer.encodeText) {
18
+ const text = await writer.encodeText(data, options);
19
+ return new TextEncoder().encode(text);
20
+ }
21
+
22
+ if (writer.encodeInBatches) {
23
+ // Create an iterator representing the data
24
+ // TODO - Assumes this is a table
25
+ const batches = encodeTableInBatches(data, writer, options);
26
+
27
+ // Concatenate the output
28
+ const chunks: ArrayBuffer[] = [];
29
+ for await (const batch of batches) {
30
+ chunks.push(batch);
31
+ }
32
+ return concatenateArrayBuffers(...chunks);
33
+ }
34
+
35
+ throw new Error('Writer could not encode data');
36
+ }
37
+
38
+ export async function encodeTableAsText<WriterT extends Writer = Writer>(
39
+ data: Table,
40
+ writer: WriterT,
41
+ options?: WriterOptionsType<WriterT>
42
+ ): Promise<string> {
43
+ if (writer.text && writer.encodeText) {
44
+ return await writer.encodeText(data, options);
45
+ }
46
+
47
+ if (writer.text && (writer.encode || writer.encodeInBatches)) {
48
+ const arrayBuffer = await encodeTable(data, writer, options);
49
+ return new TextDecoder().decode(arrayBuffer);
50
+ }
51
+ throw new Error('Writer could not encode data as text');
52
+ }
53
+
54
+ export function encodeTableInBatches<WriterT extends Writer = Writer>(
55
+ data: Table,
56
+ writer: WriterT,
57
+ options?: WriterOptionsType<WriterT>
58
+ ): AsyncIterable<ArrayBuffer> {
59
+ if (writer.encodeInBatches) {
60
+ const dataIterator = getIterator(data);
61
+ // @ts-expect-error
62
+ return writer.encodeInBatches(dataIterator, options);
63
+ }
64
+ // TODO -fall back to atomic encode?
65
+ throw new Error('Writer could not encode data in batches');
66
+ }
67
+
68
+ function getIterator(data) {
69
+ const dataIterator = [{table: data, start: 0, end: data.length}];
70
+ return dataIterator;
71
+ }
@@ -1,8 +1,10 @@
1
- import type {Writer, LoaderOptions} from '@loaders.gl/loader-utils';
1
+ import {Writer, WriterOptions, canEncodeWithWorker} from '@loaders.gl/loader-utils';
2
+ import {processOnWorker} from '@loaders.gl/worker-utils';
2
3
  import {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';
3
4
  import {isBrowser} from '@loaders.gl/loader-utils';
4
5
  import {writeFile} from '../fetch/write-file';
5
6
  import {fetchFile} from '../fetch/fetch-file';
7
+ import {getLoaderOptions} from './loader-options';
6
8
 
7
9
  /**
8
10
  * Encode loaded data into a binary ArrayBuffer using the specified Writer.
@@ -10,8 +12,15 @@ import {fetchFile} from '../fetch/fetch-file';
10
12
  export async function encode(
11
13
  data: any,
12
14
  writer: Writer,
13
- options?: LoaderOptions
15
+ options?: WriterOptions
14
16
  ): Promise<ArrayBuffer> {
17
+ const globalOptions = getLoaderOptions() as WriterOptions;
18
+ // const globalOptions: WriterOptions = {}; // getWriterOptions();
19
+ options = {...globalOptions, ...options};
20
+ if (canEncodeWithWorker(writer, options)) {
21
+ return await processOnWorker(writer, data, options);
22
+ }
23
+
15
24
  // TODO Merge default writer options with options argument like it is done in load module.
16
25
  if (writer.encode) {
17
26
  return await writer.encode(data, options);
@@ -63,7 +72,7 @@ export async function encode(
63
72
  /**
64
73
  * Encode loaded data into a binary ArrayBuffer using the specified Writer.
65
74
  */
66
- export function encodeSync(data: any, writer: Writer, options?: LoaderOptions): ArrayBuffer {
75
+ export function encodeSync(data: any, writer: Writer, options?: WriterOptions): ArrayBuffer {
67
76
  if (writer.encodeSync) {
68
77
  return writer.encodeSync(data, options);
69
78
  }
@@ -79,7 +88,7 @@ export function encodeSync(data: any, writer: Writer, options?: LoaderOptions):
79
88
  export async function encodeText(
80
89
  data: any,
81
90
  writer: Writer,
82
- options?: LoaderOptions
91
+ options?: WriterOptions
83
92
  ): Promise<string> {
84
93
  if (writer.text && writer.encodeText) {
85
94
  return await writer.encodeText(data, options);
@@ -99,10 +108,11 @@ export async function encodeText(
99
108
  export function encodeInBatches(
100
109
  data: any,
101
110
  writer: Writer,
102
- options?: LoaderOptions
111
+ options?: WriterOptions
103
112
  ): AsyncIterable<ArrayBuffer> {
104
113
  if (writer.encodeInBatches) {
105
114
  const dataIterator = getIterator(data);
115
+ // @ts-expect-error
106
116
  return writer.encodeInBatches(dataIterator, options);
107
117
  }
108
118
  // TODO -fall back to atomic encode?
@@ -1,6 +1,6 @@
1
1
  import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';
2
2
  import {isLoaderObject} from '../loader-utils/normalize-loader';
3
- import {getFetchFunction} from '../loader-utils/option-utils';
3
+ import {getFetchFunction} from '../loader-utils/get-fetch-function';
4
4
 
5
5
  import {parseInBatches} from './parse-in-batches';
6
6