@loaders.gl/core 4.0.0-alpha.5 → 4.0.0-alpha.6

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 (357) 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 +855 -404
  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 +277 -0
  39. package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
  40. package/dist/es5/lib/api/parse-sync.js +54 -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 +303 -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 +41 -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 +58 -0
  93. package/dist/es5/lib/utils/resource-utils.js.map +1 -0
  94. package/dist/es5/lib/utils/response-utils.js +196 -0
  95. package/dist/es5/lib/utils/response-utils.js.map +1 -0
  96. package/dist/es5/null-loader.js +139 -0
  97. package/dist/es5/null-loader.js.map +1 -0
  98. package/dist/es5/workers/null-worker.js +6 -0
  99. package/dist/es5/workers/null-worker.js.map +1 -0
  100. package/dist/esm/bundle.js +4 -0
  101. package/dist/esm/bundle.js.map +1 -0
  102. package/dist/esm/core-addons/README.md +1 -0
  103. package/dist/esm/core-addons/write-file-browser.js +2 -0
  104. package/dist/esm/core-addons/write-file-browser.js.map +1 -0
  105. package/dist/esm/index.js +30 -0
  106. package/dist/esm/index.js.map +1 -0
  107. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +16 -0
  108. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  109. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +20 -0
  110. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  111. package/dist/esm/iterators/make-iterator/make-blob-iterator.js +12 -0
  112. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  113. package/dist/esm/iterators/make-iterator/make-iterator.js +25 -0
  114. package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -0
  115. package/dist/esm/iterators/make-iterator/make-stream-iterator.js +32 -0
  116. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  117. package/dist/esm/iterators/make-iterator/make-string-iterator.js +13 -0
  118. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -0
  119. package/dist/esm/iterators/make-stream/make-dom-stream.js +29 -0
  120. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -0
  121. package/dist/esm/iterators/make-stream/make-node-stream.js +57 -0
  122. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -0
  123. package/dist/esm/javascript-utils/is-type.js +19 -0
  124. package/dist/esm/javascript-utils/is-type.js.map +1 -0
  125. package/dist/esm/lib/api/encode-table.js +45 -0
  126. package/dist/esm/lib/api/encode-table.js.map +1 -0
  127. package/dist/esm/lib/api/encode.js +87 -0
  128. package/dist/esm/lib/api/encode.js.map +1 -0
  129. package/dist/esm/lib/api/load-in-batches.js +25 -0
  130. package/dist/esm/lib/api/load-in-batches.js.map +1 -0
  131. package/dist/esm/lib/api/load.js +26 -0
  132. package/dist/esm/lib/api/load.js.map +1 -0
  133. package/dist/esm/lib/api/loader-options.js +3 -0
  134. package/dist/esm/lib/api/loader-options.js.map +1 -0
  135. package/dist/esm/lib/api/parse-in-batches.js +85 -0
  136. package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
  137. package/dist/esm/lib/api/parse-sync.js +47 -0
  138. package/dist/esm/lib/api/parse-sync.js.map +1 -0
  139. package/dist/esm/lib/api/parse.js +76 -0
  140. package/dist/esm/lib/api/parse.js.map +1 -0
  141. package/dist/esm/lib/api/register-loaders.js +25 -0
  142. package/dist/esm/lib/api/register-loaders.js.map +1 -0
  143. package/dist/esm/lib/api/save.js +11 -0
  144. package/dist/esm/lib/api/save.js.map +1 -0
  145. package/dist/esm/lib/api/select-loader.js +204 -0
  146. package/dist/esm/lib/api/select-loader.js.map +1 -0
  147. package/dist/esm/lib/common.js +2 -0
  148. package/dist/esm/lib/common.js.map +1 -0
  149. package/dist/esm/lib/fetch/fetch-error-message.js +18 -0
  150. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -0
  151. package/dist/esm/lib/fetch/fetch-file.js +14 -0
  152. package/dist/esm/lib/fetch/fetch-file.js.map +1 -0
  153. package/dist/esm/lib/fetch/read-array-buffer.js +23 -0
  154. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -0
  155. package/dist/esm/lib/fetch/read-file.js +15 -0
  156. package/dist/esm/lib/fetch/read-file.js.map +1 -0
  157. package/dist/esm/lib/fetch/write-file.js +21 -0
  158. package/dist/esm/lib/fetch/write-file.js.map +1 -0
  159. package/dist/esm/lib/filesystems/browser-filesystem.js +92 -0
  160. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -0
  161. package/dist/esm/lib/filesystems/filesystem.js +2 -0
  162. package/dist/esm/lib/filesystems/filesystem.js.map +1 -0
  163. package/dist/esm/lib/filesystems/read-array-buffer.js +8 -0
  164. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -0
  165. package/dist/esm/lib/init.js +11 -0
  166. package/dist/esm/lib/init.js.map +1 -0
  167. package/dist/esm/lib/loader-utils/check-errors.js +22 -0
  168. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -0
  169. package/dist/esm/lib/loader-utils/get-data.js +103 -0
  170. package/dist/esm/lib/loader-utils/get-data.js.map +1 -0
  171. package/dist/esm/lib/loader-utils/get-fetch-function.js +18 -0
  172. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -0
  173. package/dist/esm/lib/loader-utils/loader-context.js +30 -0
  174. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -0
  175. package/dist/esm/lib/loader-utils/loggers.js +50 -0
  176. package/dist/esm/lib/loader-utils/loggers.js.map +1 -0
  177. package/dist/esm/lib/loader-utils/normalize-loader.js +37 -0
  178. package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -0
  179. package/dist/esm/lib/loader-utils/option-defaults.js +39 -0
  180. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -0
  181. package/dist/esm/lib/loader-utils/option-utils.js +106 -0
  182. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -0
  183. package/dist/esm/lib/progress/fetch-progress.js +52 -0
  184. package/dist/esm/lib/progress/fetch-progress.js.map +1 -0
  185. package/dist/esm/lib/utils/log.js +5 -0
  186. package/dist/esm/lib/utils/log.js.map +1 -0
  187. package/dist/esm/lib/utils/mime-type-utils.js +17 -0
  188. package/dist/esm/lib/utils/mime-type-utils.js.map +1 -0
  189. package/dist/esm/lib/utils/resource-utils.js +51 -0
  190. package/dist/esm/lib/utils/resource-utils.js.map +1 -0
  191. package/dist/esm/lib/utils/response-utils.js +91 -0
  192. package/dist/esm/lib/utils/response-utils.js.map +1 -0
  193. package/dist/esm/null-loader.js +45 -0
  194. package/dist/esm/null-loader.js.map +1 -0
  195. package/dist/esm/workers/null-worker.js +4 -0
  196. package/dist/esm/workers/null-worker.js.map +1 -0
  197. package/dist/index.d.ts +3 -1
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/index.js +108 -29
  200. package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
  201. package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
  202. package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
  203. package/dist/iterators/make-iterator/make-iterator.d.ts +1 -1
  204. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
  205. package/dist/iterators/make-iterator/make-iterator.js +36 -29
  206. package/dist/iterators/make-iterator/make-stream-iterator.d.ts +1 -1
  207. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -1
  208. package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
  209. package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
  210. package/dist/iterators/make-stream/make-dom-stream.d.ts +1 -1
  211. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
  212. package/dist/iterators/make-stream/make-dom-stream.js +44 -32
  213. package/dist/iterators/make-stream/make-node-stream.d.ts +8 -3
  214. package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -1
  215. package/dist/iterators/make-stream/make-node-stream.js +75 -67
  216. package/dist/javascript-utils/is-type.d.ts +1 -1
  217. package/dist/javascript-utils/is-type.d.ts.map +1 -1
  218. package/dist/javascript-utils/is-type.js +41 -21
  219. package/dist/lib/api/encode-table.d.ts +6 -0
  220. package/dist/lib/api/encode-table.d.ts.map +1 -0
  221. package/dist/lib/api/encode-table.js +54 -0
  222. package/dist/lib/api/encode.d.ts +5 -5
  223. package/dist/lib/api/encode.d.ts.map +1 -1
  224. package/dist/lib/api/encode.js +111 -81
  225. package/dist/lib/api/load-in-batches.d.ts +1 -1
  226. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  227. package/dist/lib/api/load-in-batches.js +30 -27
  228. package/dist/lib/api/load.d.ts +3 -1
  229. package/dist/lib/api/load.d.ts.map +1 -1
  230. package/dist/lib/api/load.js +42 -24
  231. package/dist/lib/api/loader-options.d.ts +3 -0
  232. package/dist/lib/api/loader-options.d.ts.map +1 -0
  233. package/dist/lib/api/loader-options.js +7 -0
  234. package/dist/lib/api/parse-in-batches.js +113 -92
  235. package/dist/lib/api/parse-sync.js +56 -54
  236. package/dist/lib/api/parse.d.ts +4 -8
  237. package/dist/lib/api/parse.d.ts.map +1 -1
  238. package/dist/lib/api/parse.js +81 -61
  239. package/dist/lib/api/register-loaders.d.ts +1 -1
  240. package/dist/lib/api/register-loaders.d.ts.map +1 -1
  241. package/dist/lib/api/register-loaders.js +29 -23
  242. package/dist/lib/api/save.js +13 -9
  243. package/dist/lib/api/select-loader.d.ts.map +1 -1
  244. package/dist/lib/api/select-loader.js +216 -194
  245. package/dist/lib/common.js +2 -2
  246. package/dist/lib/fetch/fetch-error-message.js +21 -17
  247. package/dist/lib/fetch/fetch-file.js +25 -15
  248. package/dist/lib/fetch/read-array-buffer.js +39 -27
  249. package/dist/lib/fetch/read-file.js +28 -16
  250. package/dist/lib/fetch/write-file.js +20 -23
  251. package/dist/lib/filesystems/browser-filesystem.d.ts +1 -1
  252. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  253. package/dist/lib/filesystems/browser-filesystem.js +118 -107
  254. package/dist/lib/filesystems/filesystem.d.ts +2 -2
  255. package/dist/lib/filesystems/filesystem.d.ts.map +1 -1
  256. package/dist/lib/filesystems/filesystem.js +2 -2
  257. package/dist/lib/filesystems/read-array-buffer.js +28 -8
  258. package/dist/lib/init.d.ts.map +1 -1
  259. package/dist/lib/init.js +16 -6
  260. package/dist/lib/loader-utils/check-errors.js +26 -22
  261. package/dist/lib/loader-utils/get-data.js +122 -122
  262. package/dist/lib/loader-utils/get-fetch-function.d.ts +9 -0
  263. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
  264. package/dist/lib/loader-utils/get-fetch-function.js +31 -0
  265. package/dist/lib/loader-utils/loader-context.js +47 -34
  266. package/dist/lib/loader-utils/loggers.d.ts +2 -1
  267. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  268. package/dist/lib/loader-utils/loggers.js +39 -46
  269. package/dist/lib/loader-utils/normalize-loader.js +50 -41
  270. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  271. package/dist/lib/loader-utils/option-defaults.js +41 -35
  272. package/dist/lib/loader-utils/option-utils.d.ts +11 -13
  273. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  274. package/dist/lib/loader-utils/option-utils.js +140 -120
  275. package/dist/lib/progress/fetch-progress.js +54 -56
  276. package/dist/lib/utils/log.d.ts +3 -0
  277. package/dist/lib/utils/log.d.ts.map +1 -0
  278. package/dist/lib/utils/log.js +6 -0
  279. package/dist/lib/utils/mime-type-utils.js +38 -17
  280. package/dist/lib/utils/resource-utils.js +70 -52
  281. package/dist/lib/utils/response-utils.js +104 -105
  282. package/dist/null-loader.d.ts.map +1 -1
  283. package/dist/null-loader.js +53 -31
  284. package/dist/null-worker.js +61 -21
  285. package/dist/workers/null-worker.js +5 -4
  286. package/package.json +8 -8
  287. package/src/index.ts +19 -1
  288. package/src/iterators/make-stream/make-dom-stream.ts +1 -1
  289. package/src/iterators/make-stream/make-node-stream.ts +8 -2
  290. package/src/lib/api/encode-table.ts +71 -0
  291. package/src/lib/api/encode.ts +15 -5
  292. package/src/lib/api/load-in-batches.ts +1 -1
  293. package/src/lib/api/load.ts +39 -8
  294. package/src/lib/api/loader-options.ts +2 -0
  295. package/src/lib/api/parse.ts +39 -2
  296. package/src/lib/api/register-loaders.ts +1 -1
  297. package/src/lib/api/select-loader.ts +16 -0
  298. package/src/lib/init.ts +10 -3
  299. package/src/lib/loader-utils/get-fetch-function.ts +38 -0
  300. package/src/lib/loader-utils/loader-context.ts +1 -1
  301. package/src/lib/loader-utils/loggers.ts +1 -1
  302. package/src/lib/loader-utils/option-defaults.ts +3 -1
  303. package/src/lib/loader-utils/option-utils.ts +22 -46
  304. package/src/lib/progress/fetch-progress.ts +2 -2
  305. package/src/lib/utils/log.ts +4 -0
  306. package/src/lib/utils/response-utils.ts +2 -2
  307. package/src/null-loader.ts +17 -5
  308. package/dist/bundle.js.map +0 -1
  309. package/dist/core-addons/write-file-browser.js.map +0 -1
  310. package/dist/index.js.map +0 -1
  311. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  312. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  313. package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  314. package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
  315. package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  316. package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
  317. package/dist/iterators/make-stream/make-dom-stream.js.map +0 -1
  318. package/dist/iterators/make-stream/make-node-stream.js.map +0 -1
  319. package/dist/javascript-utils/is-type.js.map +0 -1
  320. package/dist/lib/api/encode.js.map +0 -1
  321. package/dist/lib/api/load-in-batches.js.map +0 -1
  322. package/dist/lib/api/load.js.map +0 -1
  323. package/dist/lib/api/parse-in-batches.js.map +0 -1
  324. package/dist/lib/api/parse-sync.js.map +0 -1
  325. package/dist/lib/api/parse.js.map +0 -1
  326. package/dist/lib/api/register-loaders.js.map +0 -1
  327. package/dist/lib/api/save.js.map +0 -1
  328. package/dist/lib/api/select-loader.js.map +0 -1
  329. package/dist/lib/api/set-loader-options.d.ts +0 -6
  330. package/dist/lib/api/set-loader-options.d.ts.map +0 -1
  331. package/dist/lib/api/set-loader-options.js +0 -5
  332. package/dist/lib/api/set-loader-options.js.map +0 -1
  333. package/dist/lib/common.js.map +0 -1
  334. package/dist/lib/fetch/fetch-error-message.js.map +0 -1
  335. package/dist/lib/fetch/fetch-file.js.map +0 -1
  336. package/dist/lib/fetch/read-array-buffer.js.map +0 -1
  337. package/dist/lib/fetch/read-file.js.map +0 -1
  338. package/dist/lib/fetch/write-file.js.map +0 -1
  339. package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
  340. package/dist/lib/filesystems/filesystem.js.map +0 -1
  341. package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
  342. package/dist/lib/init.js.map +0 -1
  343. package/dist/lib/loader-utils/check-errors.js.map +0 -1
  344. package/dist/lib/loader-utils/get-data.js.map +0 -1
  345. package/dist/lib/loader-utils/loader-context.js.map +0 -1
  346. package/dist/lib/loader-utils/loggers.js.map +0 -1
  347. package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
  348. package/dist/lib/loader-utils/option-defaults.js.map +0 -1
  349. package/dist/lib/loader-utils/option-utils.js.map +0 -1
  350. package/dist/lib/progress/fetch-progress.js.map +0 -1
  351. package/dist/lib/utils/mime-type-utils.js.map +0 -1
  352. package/dist/lib/utils/resource-utils.js.map +0 -1
  353. package/dist/lib/utils/response-utils.js.map +0 -1
  354. package/dist/null-loader.js.map +0 -1
  355. package/dist/workers/null-worker.js.map +0 -1
  356. package/src/lib/api/set-loader-options.ts +0 -9
  357. /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
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
 
@@ -1,7 +1,10 @@
1
+ // loaders.gl, MIT license
2
+
1
3
  import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
4
+ import type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';
2
5
  import {isBlob} from '../../javascript-utils/is-type';
3
6
  import {isLoaderObject} from '../loader-utils/normalize-loader';
4
- import {getFetchFunction} from '../loader-utils/option-utils';
7
+ import {getFetchFunction} from '../loader-utils/get-fetch-function';
5
8
 
6
9
  import {parse} from './parse';
7
10
 
@@ -14,22 +17,46 @@ import {parse} from './parse';
14
17
  * @param options
15
18
  * @param context
16
19
  */
20
+
21
+ export async function load<LoaderT extends Loader>(
22
+ url: string | DataType,
23
+ loader: LoaderT,
24
+ options?: LoaderOptionsType<LoaderT>,
25
+ context?: LoaderContext
26
+ ): Promise<LoaderReturnType<LoaderT>>;
27
+
28
+ export async function load<
29
+ LoaderT extends Loader,
30
+ LoaderOptionsT extends LoaderOptions = LoaderOptions
31
+ >(
32
+ url: string | DataType,
33
+ loaders: Loader[] | LoaderOptions,
34
+ options?: LoaderOptionsT,
35
+ context?: LoaderContext
36
+ ): Promise<any>;
37
+
17
38
  // implementation signature
18
- export async function load(
39
+ export async function load<LoaderOptionsT extends LoaderOptions>(
19
40
  url: string | DataType,
20
- loaders?: Loader | Loader[] | LoaderOptions,
21
- options?: LoaderOptions,
41
+ loaders?: Loader[] | LoaderOptions,
42
+ options?: LoaderOptionsT,
22
43
  context?: LoaderContext
23
44
  ): Promise<any> {
45
+ let resolvedLoaders: Loader | Loader[];
46
+ let resolvedOptions: LoaderOptionsT | undefined;
47
+
24
48
  // Signature: load(url, options)
25
49
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
50
+ resolvedLoaders = [];
51
+ resolvedOptions = loaders as LoaderOptionsT;
26
52
  context = undefined; // context not supported in short signature
27
- options = loaders as LoaderOptions;
28
- loaders = undefined;
53
+ } else {
54
+ resolvedLoaders = loaders as Loader | Loader[];
55
+ resolvedOptions = options;
29
56
  }
30
57
 
31
58
  // Select fetch function
32
- const fetch = getFetchFunction(options);
59
+ const fetch = getFetchFunction(resolvedOptions);
33
60
 
34
61
  // at this point, `url` could be already loaded binary data
35
62
  let data = url;
@@ -41,9 +68,13 @@ export async function load(
41
68
 
42
69
  if (isBlob(url)) {
43
70
  // The fetch response object will contain blob.name
71
+ // @ts-expect-error TODO - This may not work for overridden fetch functions
44
72
  data = await fetch(url);
45
73
  }
46
74
 
47
75
  // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`
48
- return await parse(data, loaders, options);
76
+ // return await parse(data, loaders as Loader[], options);
77
+ return Array.isArray(resolvedLoaders)
78
+ ? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload
79
+ : await parse(data, resolvedLoaders, resolvedOptions); // single loader overload
49
80
  }
@@ -0,0 +1,2 @@
1
+ export {setGlobalOptions as setLoaderOptions} from '../loader-utils/option-utils';
2
+ export {getGlobalLoaderOptions as getLoaderOptions} from '../loader-utils/option-utils';
@@ -1,13 +1,41 @@
1
+ // loaders.gl, MIT license
2
+
1
3
  import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
4
+ import type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';
2
5
  import {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';
3
6
  import {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';
4
7
  import {isLoaderObject} from '../loader-utils/normalize-loader';
8
+ import {isResponse} from '../../javascript-utils/is-type';
5
9
  import {normalizeOptions} from '../loader-utils/option-utils';
6
10
  import {getArrayBufferOrStringFromData} from '../loader-utils/get-data';
7
11
  import {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';
8
12
  import {getResourceUrlAndType} from '../utils/resource-utils';
9
13
  import {selectLoader} from './select-loader';
10
14
 
15
+ // type LoaderArrayType<T> = T extends (infer Loader)[] ? LoaderOptionsType<Loader> : T
16
+
17
+ export async function parse<
18
+ LoaderT extends Loader,
19
+ OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>
20
+ >(
21
+ data: DataType | Promise<DataType>,
22
+ loader: LoaderT,
23
+ options?: OptionsT,
24
+ context?: LoaderContext
25
+ ): Promise<LoaderReturnType<LoaderT>>;
26
+
27
+ export async function parse(
28
+ data: DataType | Promise<DataType>,
29
+ loaders: Loader[],
30
+ options?: LoaderOptions,
31
+ context?: LoaderContext
32
+ ): Promise<any>;
33
+
34
+ export async function parse(
35
+ data: DataType | Promise<DataType>,
36
+ options?: LoaderOptions
37
+ ): Promise<any>;
38
+
11
39
  /**
12
40
  * Parses `data` using a specified loader
13
41
  * @param data
@@ -15,6 +43,7 @@ import {selectLoader} from './select-loader';
15
43
  * @param options
16
44
  * @param context
17
45
  */
46
+ // implementation signature
18
47
  export async function parse(
19
48
  data: DataType | Promise<DataType>,
20
49
  loaders?: Loader | Loader[] | LoaderOptions,
@@ -32,7 +61,7 @@ export async function parse(
32
61
  }
33
62
 
34
63
  data = await data; // Resolve any promise
35
- options = options || {};
64
+ options = options || ({} as LoaderOptions); // Could be invalid...
36
65
 
37
66
  // Extract a url for auto detection
38
67
  const {url} = getResourceUrlAndType(data);
@@ -49,7 +78,7 @@ export async function parse(
49
78
  }
50
79
 
51
80
  // Normalize options
52
- options = normalizeOptions(options, loader, candidateLoaders, url);
81
+ options = normalizeOptions(options, loader, candidateLoaders, url); // Could be invalid...
53
82
 
54
83
  // Get a context (if already present, will be unchanged)
55
84
  context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context);
@@ -62,6 +91,14 @@ export async function parse(
62
91
  async function parseWithLoader(loader, data, options, context) {
63
92
  validateWorkerVersion(loader);
64
93
 
94
+ if (isResponse(data)) {
95
+ // Serialize to support passing the response to web worker
96
+ const response = data as Response;
97
+ const {ok, redirected, status, statusText, type, url} = response;
98
+ const headers = Object.fromEntries(response.headers.entries());
99
+ context.response = {headers, ok, redirected, status, statusText, type, url};
100
+ }
101
+
65
102
  data = await getArrayBufferOrStringFromData(data, loader, options);
66
103
 
67
104
  // First check for synchronous text parser, wrap results in promises
@@ -11,7 +11,7 @@ const getGlobalLoaderRegistry = () => {
11
11
  };
12
12
 
13
13
  /** Register a list of global loaders */
14
- export function registerLoaders(loaders: Loader[]) {
14
+ export function registerLoaders(loaders: Loader[] | Loader) {
15
15
  const loaderRegistry = getGlobalLoaderRegistry();
16
16
 
17
17
  loaders = Array.isArray(loaders) ? loaders : [loaders];
@@ -1,6 +1,7 @@
1
1
  import type {LoaderContext, LoaderOptions, Loader} from '@loaders.gl/loader-utils';
2
2
  import {compareArrayBuffers, path} from '@loaders.gl/loader-utils';
3
3
  import {normalizeLoader} from '../loader-utils/normalize-loader';
4
+ import {log} from '../utils/log';
4
5
  import {getResourceUrlAndType} from '../utils/resource-utils';
5
6
  import {getRegisteredLoaders} from './register-loaders';
6
7
  import {isBlob} from '../../javascript-utils/is-type';
@@ -103,6 +104,7 @@ export function selectLoaderSync(
103
104
  }
104
105
 
105
106
  /** Implements loaders selection logic */
107
+ // eslint-disable-next-line complexity
106
108
  function selectLoaderInternal(
107
109
  data: Response | Blob | ArrayBuffer | string,
108
110
  loaders: Loader[],
@@ -114,19 +116,33 @@ function selectLoaderInternal(
114
116
  const testUrl = url || context?.url;
115
117
 
116
118
  let loader: Loader | null = null;
119
+ let reason: string = '';
117
120
 
118
121
  // if options.mimeType is supplied, it takes precedence
119
122
  if (options?.mimeType) {
120
123
  loader = findLoaderByMIMEType(loaders, options?.mimeType);
124
+ reason = `match forced by supplied MIME type ${options?.mimeType}`;
121
125
  }
126
+
122
127
  // Look up loader by url
123
128
  loader = loader || findLoaderByUrl(loaders, testUrl);
129
+ reason = reason || (loader ? `matched url ${testUrl}` : '');
130
+
124
131
  // Look up loader by mime type
125
132
  loader = loader || findLoaderByMIMEType(loaders, type);
133
+ reason = reason || (loader ? `matched MIME type ${type}` : '');
134
+
126
135
  // Look for loader via initial bytes (Note: not always accessible (e.g. Response, stream, async iterator)
127
136
  loader = loader || findLoaderByInitialBytes(loaders, data);
137
+ reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : '');
138
+
128
139
  // Look up loader by fallback mime type
129
140
  loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
141
+ reason = reason || (loader ? `matched fallback MIME type ${type}` : '');
142
+
143
+ if (reason) {
144
+ log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);
145
+ }
130
146
 
131
147
  return loader;
132
148
  }
package/src/lib/init.ts CHANGED
@@ -1,10 +1,17 @@
1
+ // loaders.gl, MIT license
2
+ import {log} from './utils/log';
3
+
1
4
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
2
5
  const version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';
3
6
 
4
7
  // @ts-ignore
5
- globalThis.loaders = Object.assign(globalThis.loaders || {}, {
6
- VERSION: version
7
- });
8
+ if (!globalThis.loaders) {
9
+ log.log(1, `loaders.gl ${version}`)();
8
10
 
11
+ globalThis.loaders = Object.assign(globalThis.loaders || {}, {
12
+ VERSION: version,
13
+ log
14
+ });
15
+ }
9
16
  // @ts-ignore
10
17
  export default globalThis.loaders;
@@ -0,0 +1,38 @@
1
+ // loaders.gl, MIT license
2
+
3
+ import type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
4
+ import {isObject} from '../../javascript-utils/is-type';
5
+ import {fetchFile} from '../fetch/fetch-file';
6
+ import {getGlobalLoaderOptions} from './option-utils';
7
+
8
+ /**
9
+ * Gets the current fetch function from options and context
10
+ * @param options
11
+ * @param context
12
+ */
13
+ export function getFetchFunction(
14
+ options?: LoaderOptions,
15
+ context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>
16
+ ) {
17
+ const globalOptions = getGlobalLoaderOptions();
18
+
19
+ const fetchOptions = options || globalOptions;
20
+
21
+ // options.fetch can be a function
22
+ if (typeof fetchOptions.fetch === 'function') {
23
+ return fetchOptions.fetch;
24
+ }
25
+
26
+ // options.fetch can be an options object
27
+ if (isObject(fetchOptions.fetch)) {
28
+ return (url) => fetchFile(url, fetchOptions as RequestInit);
29
+ }
30
+
31
+ // else refer to context (from parent loader) if available
32
+ if (context?.fetch) {
33
+ return context?.fetch;
34
+ }
35
+
36
+ // else return the default fetch function
37
+ return fetchFile;
38
+ }
@@ -1,5 +1,5 @@
1
1
  import type {Loader, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';
2
- import {getFetchFunction} from './option-utils';
2
+ import {getFetchFunction} from './get-fetch-function';
3
3
 
4
4
  /**
5
5
  * "sub" loaders invoked by other loaders get a "context" injected on `this`
@@ -1,5 +1,5 @@
1
1
  // probe.gl Log compatible loggers
2
- import {Log} from 'probe.gl';
2
+ import {Log} from '@probe.gl/log';
3
3
 
4
4
  export const probeLog = new Log({id: 'loaders.gl'});
5
5
 
@@ -1,4 +1,5 @@
1
1
  import type {LoaderOptions} from '@loaders.gl/loader-utils';
2
+ import {isBrowser} from '@loaders.gl/loader-utils';
2
3
  import {ConsoleLog} from './loggers';
3
4
 
4
5
  export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
@@ -12,7 +13,8 @@ export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
12
13
  worker: true, // By default, use worker if provided by loader.
13
14
  maxConcurrency: 3, // How many worker instances should be created for each loader.
14
15
  maxMobileConcurrency: 1, // How many worker instances should be created for each loader on mobile devices.
15
- reuseWorkers: true, // By default reuse workers,
16
+ reuseWorkers: isBrowser, // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)
17
+ _nodeWorkers: false, // By default do not support node workers
16
18
  _workerType: '', // 'test' to use locally generated workers
17
19
 
18
20
  limit: 0,
@@ -1,14 +1,16 @@
1
- import type {Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
1
+ // loaders.gl, MIT license
2
+
3
+ import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
2
4
  import {isPureObject, isObject} from '../../javascript-utils/is-type';
3
- import {fetchFile} from '../fetch/fetch-file';
4
5
  import {probeLog, NullLog} from './loggers';
5
6
  import {DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS} from './option-defaults';
7
+
6
8
  /**
7
9
  * Global state for loaders.gl. Stored on `global.loaders._state`
8
10
  */
9
11
  type GlobalLoaderState = {
10
12
  loaderRegistry: Loader[];
11
- globalOptions: {[key: string]: any};
13
+ globalOptions: LoaderOptions;
12
14
  };
13
15
 
14
16
  /**
@@ -26,9 +28,12 @@ export function getGlobalLoaderState(): GlobalLoaderState {
26
28
  return loaders._state;
27
29
  }
28
30
 
29
- // Store global loader options on the global object to increase chances of cross loaders-version interoperability
30
- // NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
31
- const getGlobalLoaderOptions = () => {
31
+ /**
32
+ * Store global loader options on the global object to increase chances of cross loaders-version interoperability
33
+ * NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
34
+ * @returns global loader options merged with default loader options
35
+ */
36
+ export const getGlobalLoaderOptions = (): LoaderOptions => {
32
37
  const state = getGlobalLoaderState();
33
38
  // Ensure all default loader options from this library are mentioned
34
39
  state.globalOptions = state.globalOptions || {...DEFAULT_LOADER_OPTIONS};
@@ -39,7 +44,7 @@ const getGlobalLoaderOptions = () => {
39
44
  * Set global loader options
40
45
  * @param options
41
46
  */
42
- export function setGlobalOptions(options: object): void {
47
+ export function setGlobalOptions(options: LoaderOptions): void {
43
48
  const state = getGlobalLoaderState();
44
49
  const globalOptions = getGlobalLoaderOptions();
45
50
  state.globalOptions = normalizeOptionsInternal(globalOptions, options);
@@ -53,11 +58,11 @@ export function setGlobalOptions(options: object): void {
53
58
  * @param url
54
59
  */
55
60
  export function normalizeOptions(
56
- options: object,
61
+ options: LoaderOptions,
57
62
  loader: Loader,
58
63
  loaders?: Loader[],
59
64
  url?: string
60
- ): object {
65
+ ): LoaderOptions {
61
66
  loaders = loaders || [];
62
67
  loaders = Array.isArray(loaders) ? loaders : [loaders];
63
68
 
@@ -65,38 +70,6 @@ export function normalizeOptions(
65
70
  return normalizeOptionsInternal(loader, options, url);
66
71
  }
67
72
 
68
- /**
69
- * Gets the current fetch function from options and context
70
- * @param options
71
- * @param context
72
- */
73
- export function getFetchFunction(
74
- options?: LoaderOptions,
75
- context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>
76
- ) {
77
- const globalOptions = getGlobalLoaderOptions();
78
-
79
- const fetchOptions = options || globalOptions;
80
-
81
- // options.fetch can be a function
82
- if (typeof fetchOptions.fetch === 'function') {
83
- return fetchOptions.fetch;
84
- }
85
-
86
- // options.fetch can be an options object
87
- if (isObject(fetchOptions.fetch)) {
88
- return (url) => fetchFile(url, fetchOptions);
89
- }
90
-
91
- // else refer to context (from parent loader) if available
92
- if (context?.fetch) {
93
- return context?.fetch;
94
- }
95
-
96
- // else return the default fetch function
97
- return fetchFile;
98
- }
99
-
100
73
  // VALIDATE OPTIONS
101
74
 
102
75
  /**
@@ -211,11 +184,14 @@ function mergeNestedFields(mergedOptions, options) {
211
184
  }
212
185
  }
213
186
 
214
- // Harvest information from the url
215
- // TODO - baseUri should be a directory, i.e. remove file component from baseUri
216
- // TODO - extract extension?
217
- // TODO - extract query parameters?
218
- // TODO - should these be injected on context instead of options?
187
+ /**
188
+ * Harvest information from the url
189
+ * @deprecated This is mainly there to support a hack in the GLTFLoader
190
+ * TODO - baseUri should be a directory, i.e. remove file component from baseUri
191
+ * TODO - extract extension?
192
+ * TODO - extract query parameters?
193
+ * TODO - should these be injected on context instead of options?
194
+ */
219
195
  function addUrlOptions(options, url?: string) {
220
196
  if (url && !('baseUri' in options)) {
221
197
  options.baseUri = url;
@@ -20,8 +20,8 @@ export default async function fetchProgress(
20
20
  return response;
21
21
  }
22
22
  const contentLength = response.headers.get('content-length') || 0;
23
- const totalBytes = contentLength && parseInt(contentLength);
24
- if (!(contentLength > 0)) {
23
+ const totalBytes = contentLength ? parseInt(contentLength) : 0;
24
+ if (!(totalBytes > 0)) {
25
25
  return response;
26
26
  }
27
27
  // Currently override only implemented in browser
@@ -0,0 +1,4 @@
1
+ // loaders.gl, MIT license
2
+ import {Log} from '@probe.gl/log';
3
+
4
+ export const log = new Log({id: 'loaders.gl'});