@loaders.gl/core 4.0.0-alpha.4 → 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 (413) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +2 -2
  4. package/dist/core-addons/write-file-browser.d.ts +1 -0
  5. package/dist/core-addons/write-file-browser.d.ts.map +1 -0
  6. package/dist/core-addons/write-file-browser.js +59 -1
  7. package/dist/dist.min.js +3874 -0
  8. package/dist/es5/bundle.js +6 -0
  9. package/dist/es5/bundle.js.map +1 -0
  10. package/dist/es5/core-addons/write-file-browser.js +2 -0
  11. package/dist/es5/core-addons/write-file-browser.js.map +1 -0
  12. package/dist/es5/index.js +377 -0
  13. package/dist/es5/index.js.map +1 -0
  14. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +94 -0
  15. package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  16. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +42 -0
  17. package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  18. package/dist/es5/iterators/make-iterator/make-blob-iterator.js +47 -0
  19. package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  20. package/dist/es5/iterators/make-iterator/make-iterator.js +31 -0
  21. package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -0
  22. package/dist/es5/iterators/make-iterator/make-stream-iterator.js +133 -0
  23. package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  24. package/dist/es5/iterators/make-iterator/make-string-iterator.js +38 -0
  25. package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -0
  26. package/dist/es5/iterators/make-stream/make-dom-stream.js +67 -0
  27. package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -0
  28. package/dist/es5/iterators/make-stream/make-node-stream.js +168 -0
  29. package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -0
  30. package/dist/es5/javascript-utils/is-type.js +79 -0
  31. package/dist/es5/javascript-utils/is-type.js.map +1 -0
  32. package/dist/es5/lib/api/encode-table.js +159 -0
  33. package/dist/es5/lib/api/encode-table.js.map +1 -0
  34. package/dist/es5/lib/api/encode.js +244 -0
  35. package/dist/es5/lib/api/encode.js.map +1 -0
  36. package/dist/es5/lib/api/load-in-batches.js +63 -0
  37. package/dist/es5/lib/api/load-in-batches.js.map +1 -0
  38. package/dist/es5/lib/api/load.js +76 -0
  39. package/dist/es5/lib/api/load.js.map +1 -0
  40. package/dist/es5/lib/api/loader-options.js +19 -0
  41. package/dist/es5/lib/api/loader-options.js.map +1 -0
  42. package/dist/es5/lib/api/parse-in-batches.js +277 -0
  43. package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
  44. package/dist/es5/lib/api/parse-sync.js +54 -0
  45. package/dist/es5/lib/api/parse-sync.js.map +1 -0
  46. package/dist/es5/lib/api/parse.js +143 -0
  47. package/dist/es5/lib/api/parse.js.map +1 -0
  48. package/dist/es5/lib/api/register-loaders.js +50 -0
  49. package/dist/es5/lib/api/register-loaders.js.map +1 -0
  50. package/dist/es5/lib/api/save.js +42 -0
  51. package/dist/es5/lib/api/save.js.map +1 -0
  52. package/dist/es5/lib/api/select-loader.js +303 -0
  53. package/dist/es5/lib/api/select-loader.js.map +1 -0
  54. package/dist/es5/lib/common.js +2 -0
  55. package/dist/es5/lib/common.js.map +1 -0
  56. package/dist/es5/lib/fetch/fetch-error-message.js +56 -0
  57. package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -0
  58. package/dist/es5/lib/fetch/fetch-file.js +47 -0
  59. package/dist/es5/lib/fetch/fetch-file.js.map +1 -0
  60. package/dist/es5/lib/fetch/read-array-buffer.js +76 -0
  61. package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -0
  62. package/dist/es5/lib/fetch/read-file.js +20 -0
  63. package/dist/es5/lib/fetch/read-file.js.map +1 -0
  64. package/dist/es5/lib/fetch/write-file.js +48 -0
  65. package/dist/es5/lib/fetch/write-file.js.map +1 -0
  66. package/dist/es5/lib/filesystems/browser-filesystem.js +249 -0
  67. package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -0
  68. package/dist/es5/lib/filesystems/filesystem.js +2 -0
  69. package/dist/es5/lib/filesystems/filesystem.js.map +1 -0
  70. package/dist/es5/lib/filesystems/read-array-buffer.js +41 -0
  71. package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -0
  72. package/dist/es5/lib/init.js +18 -0
  73. package/dist/es5/lib/init.js.map +1 -0
  74. package/dist/es5/lib/loader-utils/check-errors.js +57 -0
  75. package/dist/es5/lib/loader-utils/check-errors.js.map +1 -0
  76. package/dist/es5/lib/loader-utils/get-data.js +237 -0
  77. package/dist/es5/lib/loader-utils/get-data.js.map +1 -0
  78. package/dist/es5/lib/loader-utils/get-fetch-function.js +26 -0
  79. package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -0
  80. package/dist/es5/lib/loader-utils/loader-context.js +41 -0
  81. package/dist/es5/lib/loader-utils/loader-context.js.map +1 -0
  82. package/dist/es5/lib/loader-utils/loggers.js +90 -0
  83. package/dist/es5/lib/loader-utils/loggers.js.map +1 -0
  84. package/dist/es5/lib/loader-utils/normalize-loader.js +44 -0
  85. package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -0
  86. package/dist/es5/lib/loader-utils/option-defaults.js +47 -0
  87. package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -0
  88. package/dist/es5/lib/loader-utils/option-utils.js +132 -0
  89. package/dist/es5/lib/loader-utils/option-utils.js.map +1 -0
  90. package/dist/es5/lib/progress/fetch-progress.js +134 -0
  91. package/dist/es5/lib/progress/fetch-progress.js.map +1 -0
  92. package/dist/es5/lib/utils/log.js +12 -0
  93. package/dist/es5/lib/utils/log.js.map +1 -0
  94. package/dist/es5/lib/utils/mime-type-utils.js +24 -0
  95. package/dist/es5/lib/utils/mime-type-utils.js.map +1 -0
  96. package/dist/es5/lib/utils/resource-utils.js +58 -0
  97. package/dist/es5/lib/utils/resource-utils.js.map +1 -0
  98. package/dist/es5/lib/utils/response-utils.js +196 -0
  99. package/dist/es5/lib/utils/response-utils.js.map +1 -0
  100. package/dist/es5/null-loader.js +139 -0
  101. package/dist/es5/null-loader.js.map +1 -0
  102. package/dist/es5/workers/null-worker.js +6 -0
  103. package/dist/es5/workers/null-worker.js.map +1 -0
  104. package/dist/esm/bundle.js +4 -0
  105. package/dist/esm/bundle.js.map +1 -0
  106. package/dist/esm/core-addons/README.md +1 -0
  107. package/dist/esm/core-addons/write-file-browser.js +2 -0
  108. package/dist/esm/core-addons/write-file-browser.js.map +1 -0
  109. package/dist/esm/index.js +30 -0
  110. package/dist/esm/index.js.map +1 -0
  111. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +16 -0
  112. package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
  113. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +20 -0
  114. package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
  115. package/dist/esm/iterators/make-iterator/make-blob-iterator.js +12 -0
  116. package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -0
  117. package/dist/esm/iterators/make-iterator/make-iterator.js +25 -0
  118. package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -0
  119. package/dist/esm/iterators/make-iterator/make-stream-iterator.js +32 -0
  120. package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -0
  121. package/dist/esm/iterators/make-iterator/make-string-iterator.js +13 -0
  122. package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -0
  123. package/dist/esm/iterators/make-stream/make-dom-stream.js +29 -0
  124. package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -0
  125. package/dist/esm/iterators/make-stream/make-node-stream.js +57 -0
  126. package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -0
  127. package/dist/esm/javascript-utils/is-type.js +19 -0
  128. package/dist/esm/javascript-utils/is-type.js.map +1 -0
  129. package/dist/esm/lib/api/encode-table.js +45 -0
  130. package/dist/esm/lib/api/encode-table.js.map +1 -0
  131. package/dist/esm/lib/api/encode.js +87 -0
  132. package/dist/esm/lib/api/encode.js.map +1 -0
  133. package/dist/esm/lib/api/load-in-batches.js +25 -0
  134. package/dist/esm/lib/api/load-in-batches.js.map +1 -0
  135. package/dist/esm/lib/api/load.js +26 -0
  136. package/dist/esm/lib/api/load.js.map +1 -0
  137. package/dist/esm/lib/api/loader-options.js +3 -0
  138. package/dist/esm/lib/api/loader-options.js.map +1 -0
  139. package/dist/esm/lib/api/parse-in-batches.js +85 -0
  140. package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
  141. package/dist/esm/lib/api/parse-sync.js +47 -0
  142. package/dist/esm/lib/api/parse-sync.js.map +1 -0
  143. package/dist/esm/lib/api/parse.js +76 -0
  144. package/dist/esm/lib/api/parse.js.map +1 -0
  145. package/dist/esm/lib/api/register-loaders.js +25 -0
  146. package/dist/esm/lib/api/register-loaders.js.map +1 -0
  147. package/dist/esm/lib/api/save.js +11 -0
  148. package/dist/esm/lib/api/save.js.map +1 -0
  149. package/dist/esm/lib/api/select-loader.js +204 -0
  150. package/dist/esm/lib/api/select-loader.js.map +1 -0
  151. package/dist/esm/lib/common.js +2 -0
  152. package/dist/esm/lib/common.js.map +1 -0
  153. package/dist/esm/lib/fetch/fetch-error-message.js +18 -0
  154. package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -0
  155. package/dist/esm/lib/fetch/fetch-file.js +14 -0
  156. package/dist/esm/lib/fetch/fetch-file.js.map +1 -0
  157. package/dist/esm/lib/fetch/read-array-buffer.js +23 -0
  158. package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -0
  159. package/dist/esm/lib/fetch/read-file.js +15 -0
  160. package/dist/esm/lib/fetch/read-file.js.map +1 -0
  161. package/dist/esm/lib/fetch/write-file.js +21 -0
  162. package/dist/esm/lib/fetch/write-file.js.map +1 -0
  163. package/dist/esm/lib/filesystems/browser-filesystem.js +92 -0
  164. package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -0
  165. package/dist/esm/lib/filesystems/filesystem.js +2 -0
  166. package/dist/esm/lib/filesystems/filesystem.js.map +1 -0
  167. package/dist/esm/lib/filesystems/read-array-buffer.js +8 -0
  168. package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -0
  169. package/dist/esm/lib/init.js +11 -0
  170. package/dist/esm/lib/init.js.map +1 -0
  171. package/dist/esm/lib/loader-utils/check-errors.js +22 -0
  172. package/dist/esm/lib/loader-utils/check-errors.js.map +1 -0
  173. package/dist/esm/lib/loader-utils/get-data.js +103 -0
  174. package/dist/esm/lib/loader-utils/get-data.js.map +1 -0
  175. package/dist/esm/lib/loader-utils/get-fetch-function.js +18 -0
  176. package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -0
  177. package/dist/esm/lib/loader-utils/loader-context.js +30 -0
  178. package/dist/esm/lib/loader-utils/loader-context.js.map +1 -0
  179. package/dist/esm/lib/loader-utils/loggers.js +50 -0
  180. package/dist/esm/lib/loader-utils/loggers.js.map +1 -0
  181. package/dist/esm/lib/loader-utils/normalize-loader.js +37 -0
  182. package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -0
  183. package/dist/esm/lib/loader-utils/option-defaults.js +39 -0
  184. package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -0
  185. package/dist/esm/lib/loader-utils/option-utils.js +106 -0
  186. package/dist/esm/lib/loader-utils/option-utils.js.map +1 -0
  187. package/dist/esm/lib/progress/fetch-progress.js +52 -0
  188. package/dist/esm/lib/progress/fetch-progress.js.map +1 -0
  189. package/dist/esm/lib/utils/log.js +5 -0
  190. package/dist/esm/lib/utils/log.js.map +1 -0
  191. package/dist/esm/lib/utils/mime-type-utils.js +17 -0
  192. package/dist/esm/lib/utils/mime-type-utils.js.map +1 -0
  193. package/dist/esm/lib/utils/resource-utils.js +51 -0
  194. package/dist/esm/lib/utils/resource-utils.js.map +1 -0
  195. package/dist/esm/lib/utils/response-utils.js +91 -0
  196. package/dist/esm/lib/utils/response-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 +31 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +108 -31
  204. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts +5 -0
  205. package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -0
  206. package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
  207. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts +9 -0
  208. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -0
  209. package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
  210. package/dist/iterators/make-iterator/make-blob-iterator.d.ts +9 -0
  211. package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -0
  212. package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
  213. package/dist/iterators/make-iterator/make-iterator.d.ts +19 -0
  214. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -0
  215. package/dist/iterators/make-iterator/make-iterator.js +36 -29
  216. package/dist/iterators/make-iterator/make-stream-iterator.d.ts +11 -0
  217. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -0
  218. package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
  219. package/dist/iterators/make-iterator/make-string-iterator.d.ts +9 -0
  220. package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -0
  221. package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
  222. package/dist/iterators/make-stream/make-dom-stream.d.ts +14 -0
  223. package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -0
  224. package/dist/iterators/make-stream/make-dom-stream.js +44 -32
  225. package/dist/iterators/make-stream/make-node-stream.d.ts +11 -0
  226. package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -0
  227. package/dist/iterators/make-stream/make-node-stream.js +75 -70
  228. package/dist/javascript-utils/is-type.d.ts +22 -0
  229. package/dist/javascript-utils/is-type.d.ts.map +1 -0
  230. package/dist/javascript-utils/is-type.js +41 -21
  231. package/dist/lib/api/encode-table.d.ts +6 -0
  232. package/dist/lib/api/encode-table.d.ts.map +1 -0
  233. package/dist/lib/api/encode-table.js +54 -0
  234. package/dist/lib/api/encode.d.ts +26 -0
  235. package/dist/lib/api/encode.d.ts.map +1 -0
  236. package/dist/lib/api/encode.js +111 -81
  237. package/dist/lib/api/load-in-batches.d.ts +13 -0
  238. package/dist/lib/api/load-in-batches.d.ts.map +1 -0
  239. package/dist/lib/api/load-in-batches.js +30 -27
  240. package/dist/lib/api/load.d.ts +14 -0
  241. package/dist/lib/api/load.d.ts.map +1 -0
  242. package/dist/lib/api/load.js +42 -24
  243. package/dist/lib/api/loader-options.d.ts +3 -0
  244. package/dist/lib/api/loader-options.d.ts.map +1 -0
  245. package/dist/lib/api/loader-options.js +7 -0
  246. package/dist/lib/api/parse-in-batches.d.ts +10 -0
  247. package/dist/lib/api/parse-in-batches.d.ts.map +1 -0
  248. package/dist/lib/api/parse-in-batches.js +113 -92
  249. package/dist/lib/api/parse-sync.d.ts +10 -0
  250. package/dist/lib/api/parse-sync.d.ts.map +1 -0
  251. package/dist/lib/api/parse-sync.js +56 -54
  252. package/dist/lib/api/parse.d.ts +6 -0
  253. package/dist/lib/api/parse.d.ts.map +1 -0
  254. package/dist/lib/api/parse.js +81 -61
  255. package/dist/lib/api/register-loaders.d.ts +7 -0
  256. package/dist/lib/api/register-loaders.d.ts.map +1 -0
  257. package/dist/lib/api/register-loaders.js +29 -23
  258. package/dist/lib/api/save.d.ts +4 -0
  259. package/dist/lib/api/save.d.ts.map +1 -0
  260. package/dist/lib/api/save.js +13 -9
  261. package/dist/lib/api/select-loader.d.ts +22 -0
  262. package/dist/lib/api/select-loader.d.ts.map +1 -0
  263. package/dist/lib/api/select-loader.js +216 -194
  264. package/dist/lib/common.d.ts +2 -0
  265. package/dist/lib/common.d.ts.map +1 -0
  266. package/dist/lib/common.js +2 -2
  267. package/dist/lib/fetch/fetch-error-message.d.ts +3 -0
  268. package/dist/lib/fetch/fetch-error-message.d.ts.map +1 -0
  269. package/dist/lib/fetch/fetch-error-message.js +21 -17
  270. package/dist/lib/fetch/fetch-file.d.ts +13 -0
  271. package/dist/lib/fetch/fetch-file.d.ts.map +1 -0
  272. package/dist/lib/fetch/fetch-file.js +25 -15
  273. package/dist/lib/fetch/read-array-buffer.d.ts +17 -0
  274. package/dist/lib/fetch/read-array-buffer.d.ts.map +1 -0
  275. package/dist/lib/fetch/read-array-buffer.js +39 -27
  276. package/dist/lib/fetch/read-file.d.ts +5 -0
  277. package/dist/lib/fetch/read-file.d.ts.map +1 -0
  278. package/dist/lib/fetch/read-file.js +28 -16
  279. package/dist/lib/fetch/write-file.d.ts +3 -0
  280. package/dist/lib/fetch/write-file.d.ts.map +1 -0
  281. package/dist/lib/fetch/write-file.js +20 -23
  282. package/dist/lib/filesystems/browser-filesystem.d.ts +58 -0
  283. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -0
  284. package/dist/lib/filesystems/browser-filesystem.js +118 -107
  285. package/dist/lib/filesystems/filesystem.d.ts +46 -0
  286. package/dist/lib/filesystems/filesystem.d.ts.map +1 -0
  287. package/dist/lib/filesystems/filesystem.js +2 -2
  288. package/dist/lib/filesystems/read-array-buffer.d.ts +19 -0
  289. package/dist/lib/filesystems/read-array-buffer.d.ts.map +1 -0
  290. package/dist/lib/filesystems/read-array-buffer.js +28 -8
  291. package/dist/lib/init.d.ts +3 -0
  292. package/dist/lib/init.d.ts.map +1 -0
  293. package/dist/lib/init.js +16 -6
  294. package/dist/lib/loader-utils/check-errors.d.ts +3 -0
  295. package/dist/lib/loader-utils/check-errors.d.ts.map +1 -0
  296. package/dist/lib/loader-utils/check-errors.js +26 -22
  297. package/dist/lib/loader-utils/get-data.d.ts +6 -0
  298. package/dist/lib/loader-utils/get-data.d.ts.map +1 -0
  299. package/dist/lib/loader-utils/get-data.js +122 -122
  300. package/dist/lib/loader-utils/get-fetch-function.d.ts +9 -0
  301. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
  302. package/dist/lib/loader-utils/get-fetch-function.js +31 -0
  303. package/dist/lib/loader-utils/loader-context.d.ts +13 -0
  304. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -0
  305. package/dist/lib/loader-utils/loader-context.js +47 -34
  306. package/dist/lib/loader-utils/loggers.d.ts +17 -0
  307. package/dist/lib/loader-utils/loggers.d.ts.map +1 -0
  308. package/dist/lib/loader-utils/loggers.js +39 -46
  309. package/dist/lib/loader-utils/normalize-loader.d.ts +4 -0
  310. package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -0
  311. package/dist/lib/loader-utils/normalize-loader.js +50 -41
  312. package/dist/lib/loader-utils/option-defaults.d.ts +20 -0
  313. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -0
  314. package/dist/lib/loader-utils/option-defaults.js +41 -35
  315. package/dist/lib/loader-utils/option-utils.d.ts +34 -0
  316. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -0
  317. package/dist/lib/loader-utils/option-utils.js +140 -120
  318. package/dist/lib/progress/fetch-progress.d.ts +6 -0
  319. package/dist/lib/progress/fetch-progress.d.ts.map +1 -0
  320. package/dist/lib/progress/fetch-progress.js +54 -56
  321. package/dist/lib/utils/log.d.ts +3 -0
  322. package/dist/lib/utils/log.d.ts.map +1 -0
  323. package/dist/lib/utils/log.js +6 -0
  324. package/dist/lib/utils/mime-type-utils.d.ts +20 -0
  325. package/dist/lib/utils/mime-type-utils.d.ts.map +1 -0
  326. package/dist/lib/utils/mime-type-utils.js +38 -17
  327. package/dist/lib/utils/resource-utils.d.ts +21 -0
  328. package/dist/lib/utils/resource-utils.d.ts.map +1 -0
  329. package/dist/lib/utils/resource-utils.js +70 -52
  330. package/dist/lib/utils/response-utils.d.ts +18 -0
  331. package/dist/lib/utils/response-utils.d.ts.map +1 -0
  332. package/dist/lib/utils/response-utils.js +104 -105
  333. package/dist/null-loader.d.ts +10 -0
  334. package/dist/null-loader.d.ts.map +1 -0
  335. package/dist/null-loader.js +53 -31
  336. package/dist/null-worker.js +61 -21
  337. package/dist/workers/null-worker.d.ts +2 -0
  338. package/dist/workers/null-worker.d.ts.map +1 -0
  339. package/dist/workers/null-worker.js +5 -4
  340. package/package.json +16 -15
  341. package/src/index.ts +20 -4
  342. package/src/iterators/make-stream/make-dom-stream.ts +10 -5
  343. package/src/iterators/make-stream/make-node-stream.ts +10 -9
  344. package/src/lib/api/encode-table.ts +71 -0
  345. package/src/lib/api/encode.ts +15 -5
  346. package/src/lib/api/load-in-batches.ts +1 -1
  347. package/src/lib/api/load.ts +39 -8
  348. package/src/lib/api/loader-options.ts +2 -0
  349. package/src/lib/api/parse.ts +39 -2
  350. package/src/lib/api/register-loaders.ts +1 -1
  351. package/src/lib/api/select-loader.ts +16 -0
  352. package/src/lib/init.ts +17 -0
  353. package/src/lib/loader-utils/get-fetch-function.ts +38 -0
  354. package/src/lib/loader-utils/loader-context.ts +1 -1
  355. package/src/lib/loader-utils/loggers.ts +1 -1
  356. package/src/lib/loader-utils/option-defaults.ts +3 -1
  357. package/src/lib/loader-utils/option-utils.ts +22 -46
  358. package/src/lib/progress/fetch-progress.ts +2 -2
  359. package/src/lib/utils/log.ts +4 -0
  360. package/src/lib/utils/response-utils.ts +2 -2
  361. package/src/null-loader.ts +17 -5
  362. package/dist/bundle.js.map +0 -1
  363. package/dist/core-addons/write-file-browser.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  366. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  367. package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  368. package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
  369. package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  370. package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
  371. package/dist/iterators/make-stream/make-dom-stream.js.map +0 -1
  372. package/dist/iterators/make-stream/make-node-stream.js.map +0 -1
  373. package/dist/iterators/make-stream/make-stream.js +0 -7
  374. package/dist/iterators/make-stream/make-stream.js.map +0 -1
  375. package/dist/javascript-utils/is-type.js.map +0 -1
  376. package/dist/lib/api/encode.js.map +0 -1
  377. package/dist/lib/api/load-in-batches.js.map +0 -1
  378. package/dist/lib/api/load.js.map +0 -1
  379. package/dist/lib/api/parse-in-batches.js.map +0 -1
  380. package/dist/lib/api/parse-sync.js.map +0 -1
  381. package/dist/lib/api/parse.js.map +0 -1
  382. package/dist/lib/api/register-loaders.js.map +0 -1
  383. package/dist/lib/api/save.js.map +0 -1
  384. package/dist/lib/api/select-loader.js.map +0 -1
  385. package/dist/lib/api/set-loader-options.js +0 -5
  386. package/dist/lib/api/set-loader-options.js.map +0 -1
  387. package/dist/lib/common.js.map +0 -1
  388. package/dist/lib/fetch/fetch-error-message.js.map +0 -1
  389. package/dist/lib/fetch/fetch-file.js.map +0 -1
  390. package/dist/lib/fetch/read-array-buffer.js.map +0 -1
  391. package/dist/lib/fetch/read-file.js.map +0 -1
  392. package/dist/lib/fetch/write-file.js.map +0 -1
  393. package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
  394. package/dist/lib/filesystems/filesystem.js.map +0 -1
  395. package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
  396. package/dist/lib/init.js.map +0 -1
  397. package/dist/lib/loader-utils/check-errors.js.map +0 -1
  398. package/dist/lib/loader-utils/get-data.js.map +0 -1
  399. package/dist/lib/loader-utils/loader-context.js.map +0 -1
  400. package/dist/lib/loader-utils/loggers.js.map +0 -1
  401. package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
  402. package/dist/lib/loader-utils/option-defaults.js.map +0 -1
  403. package/dist/lib/loader-utils/option-utils.js.map +0 -1
  404. package/dist/lib/progress/fetch-progress.js.map +0 -1
  405. package/dist/lib/utils/mime-type-utils.js.map +0 -1
  406. package/dist/lib/utils/resource-utils.js.map +0 -1
  407. package/dist/lib/utils/response-utils.js.map +0 -1
  408. package/dist/null-loader.js.map +0 -1
  409. package/dist/workers/null-worker.js.map +0 -1
  410. package/src/iterators/make-stream/make-stream.ts +0 -19
  411. package/src/lib/api/set-loader-options.ts +0 -9
  412. package/src/lib/init.js +0 -10
  413. /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
@@ -0,0 +1,3 @@
1
+ import { Log } from '@probe.gl/log';
2
+ export declare const log: Log;
3
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/log.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAElC,eAAO,MAAM,GAAG,KAA8B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.log = void 0;
4
+ // loaders.gl, MIT license
5
+ const log_1 = require("@probe.gl/log");
6
+ exports.log = new log_1.Log({ id: 'loaders.gl' });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Remove extra data like `charset` from MIME types
3
+ * @param mimeString
4
+ * @returns A clean MIME type, or an empty string
5
+ *
6
+ * @todo - handle more advanced MIMETYpes, multiple types
7
+ * @todo - extract charset etc
8
+ */
9
+ export declare function parseMIMEType(mimeString: string): string;
10
+ /**
11
+ * Extract MIME type from data URL
12
+ *
13
+ * @param mimeString
14
+ * @returns A clean MIME type, or an empty string
15
+ *
16
+ * @todo - handle more advanced MIMETYpes, multiple types
17
+ * @todo - extract charset etc
18
+ */
19
+ export declare function parseMIMETypeFromURL(url: string): string;
20
+ //# sourceMappingURL=mime-type-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime-type-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/mime-type-utils.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOxD"}
@@ -1,21 +1,42 @@
1
+ "use strict";
2
+ // TODO - build/integrate proper MIME type parsing
3
+ // https://mimesniff.spec.whatwg.org/
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.parseMIMETypeFromURL = exports.parseMIMEType = void 0;
1
6
  const DATA_URL_PATTERN = /^data:([-\w.]+\/[-\w.+]+)(;|,)/;
2
7
  const MIME_TYPE_PATTERN = /^([-\w.]+\/[-\w.+]+)/;
3
- export function parseMIMEType(mimeString) {
4
- const matches = MIME_TYPE_PATTERN.exec(mimeString);
5
-
6
- if (matches) {
7
- return matches[1];
8
- }
9
-
10
- return mimeString;
8
+ /**
9
+ * Remove extra data like `charset` from MIME types
10
+ * @param mimeString
11
+ * @returns A clean MIME type, or an empty string
12
+ *
13
+ * @todo - handle more advanced MIMETYpes, multiple types
14
+ * @todo - extract charset etc
15
+ */
16
+ function parseMIMEType(mimeString) {
17
+ // If resource is a data url, extract any embedded mime type
18
+ const matches = MIME_TYPE_PATTERN.exec(mimeString);
19
+ if (matches) {
20
+ return matches[1];
21
+ }
22
+ return mimeString;
11
23
  }
12
- export function parseMIMETypeFromURL(url) {
13
- const matches = DATA_URL_PATTERN.exec(url);
14
-
15
- if (matches) {
16
- return matches[1];
17
- }
18
-
19
- return '';
24
+ exports.parseMIMEType = parseMIMEType;
25
+ /**
26
+ * Extract MIME type from data URL
27
+ *
28
+ * @param mimeString
29
+ * @returns A clean MIME type, or an empty string
30
+ *
31
+ * @todo - handle more advanced MIMETYpes, multiple types
32
+ * @todo - extract charset etc
33
+ */
34
+ function parseMIMETypeFromURL(url) {
35
+ // If resource is a data URL, extract any embedded mime type
36
+ const matches = DATA_URL_PATTERN.exec(url);
37
+ if (matches) {
38
+ return matches[1];
39
+ }
40
+ return '';
20
41
  }
21
- //# sourceMappingURL=mime-type-utils.js.map
42
+ exports.parseMIMETypeFromURL = parseMIMETypeFromURL;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Returns an object with `url` and (MIME) `type` fields
3
+ * If it cannot determine url or type, the corresponding value will be an empty string
4
+ *
5
+ * @param resource Any type, but only Responses, string URLs and data URLs are processed
6
+ *
7
+ * @todo string parameters are assumed to be URLs
8
+ */
9
+ export declare function getResourceUrlAndType(resource: any): {
10
+ url: string;
11
+ type: string;
12
+ };
13
+ /**
14
+ * Returns (approximate) content length for a resource if it can be determined.
15
+ * Returns -1 if content length cannot be determined.
16
+ * @param resource
17
+
18
+ * @note string parameters are NOT assumed to be URLs
19
+ */
20
+ export declare function getResourceContentLength(resource: any): number;
21
+ //# sourceMappingURL=resource-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/resource-utils.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAmChF;AAED;;;;;;IAMI;AACJ,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAkB9D"}
@@ -1,60 +1,78 @@
1
- import { isResponse, isBlob } from '../../javascript-utils/is-type';
2
- import { parseMIMEType, parseMIMETypeFromURL } from './mime-type-utils';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getResourceContentLength = exports.getResourceUrlAndType = void 0;
4
+ const is_type_1 = require("../../javascript-utils/is-type");
5
+ const mime_type_utils_1 = require("./mime-type-utils");
3
6
  const QUERY_STRING_PATTERN = /\?.*/;
4
- export function getResourceUrlAndType(resource) {
5
- if (isResponse(resource)) {
6
- const url = stripQueryString(resource.url || '');
7
- const contentTypeHeader = resource.headers.get('content-type') || '';
7
+ /**
8
+ * Returns an object with `url` and (MIME) `type` fields
9
+ * If it cannot determine url or type, the corresponding value will be an empty string
10
+ *
11
+ * @param resource Any type, but only Responses, string URLs and data URLs are processed
12
+ *
13
+ * @todo string parameters are assumed to be URLs
14
+ */
15
+ function getResourceUrlAndType(resource) {
16
+ // If resource is a response, it contains the information directly
17
+ if ((0, is_type_1.isResponse)(resource)) {
18
+ const url = stripQueryString(resource.url || '');
19
+ const contentTypeHeader = resource.headers.get('content-type') || '';
20
+ return {
21
+ url,
22
+ type: (0, mime_type_utils_1.parseMIMEType)(contentTypeHeader) || (0, mime_type_utils_1.parseMIMETypeFromURL)(url)
23
+ };
24
+ }
25
+ // If the resource is a Blob or a File (subclass of Blob)
26
+ if ((0, is_type_1.isBlob)(resource)) {
27
+ return {
28
+ // File objects have a "name" property. Blob objects don't have any
29
+ // url (name) information
30
+ url: stripQueryString(resource.name || ''),
31
+ type: resource.type || ''
32
+ };
33
+ }
34
+ if (typeof resource === 'string') {
35
+ return {
36
+ // TODO this could mess up data URL but it doesn't matter as it is just used for inference
37
+ url: stripQueryString(resource),
38
+ // If a data url
39
+ type: (0, mime_type_utils_1.parseMIMETypeFromURL)(resource)
40
+ };
41
+ }
42
+ // Unknown
8
43
  return {
9
- url,
10
- type: parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(url)
44
+ url: '',
45
+ type: ''
11
46
  };
12
- }
13
-
14
- if (isBlob(resource)) {
15
- return {
16
- url: stripQueryString(resource.name || ''),
17
- type: resource.type || ''
18
- };
19
- }
20
-
21
- if (typeof resource === 'string') {
22
- return {
23
- url: stripQueryString(resource),
24
- type: parseMIMETypeFromURL(resource)
25
- };
26
- }
27
-
28
- return {
29
- url: '',
30
- type: ''
31
- };
32
47
  }
33
- export function getResourceContentLength(resource) {
34
- if (isResponse(resource)) {
35
- return resource.headers['content-length'] || -1;
36
- }
37
-
38
- if (isBlob(resource)) {
39
- return resource.size;
40
- }
41
-
42
- if (typeof resource === 'string') {
43
- return resource.length;
44
- }
48
+ exports.getResourceUrlAndType = getResourceUrlAndType;
49
+ /**
50
+ * Returns (approximate) content length for a resource if it can be determined.
51
+ * Returns -1 if content length cannot be determined.
52
+ * @param resource
45
53
 
46
- if (resource instanceof ArrayBuffer) {
47
- return resource.byteLength;
48
- }
49
-
50
- if (ArrayBuffer.isView(resource)) {
51
- return resource.byteLength;
52
- }
53
-
54
- return -1;
54
+ * @note string parameters are NOT assumed to be URLs
55
+ */
56
+ function getResourceContentLength(resource) {
57
+ if ((0, is_type_1.isResponse)(resource)) {
58
+ return resource.headers['content-length'] || -1;
59
+ }
60
+ if ((0, is_type_1.isBlob)(resource)) {
61
+ return resource.size;
62
+ }
63
+ if (typeof resource === 'string') {
64
+ // TODO - handle data URL?
65
+ return resource.length;
66
+ }
67
+ if (resource instanceof ArrayBuffer) {
68
+ return resource.byteLength;
69
+ }
70
+ if (ArrayBuffer.isView(resource)) {
71
+ return resource.byteLength;
72
+ }
73
+ return -1;
55
74
  }
56
-
75
+ exports.getResourceContentLength = getResourceContentLength;
57
76
  function stripQueryString(url) {
58
- return url.replace(QUERY_STRING_PATTERN, '');
77
+ return url.replace(QUERY_STRING_PATTERN, '');
59
78
  }
60
- //# sourceMappingURL=resource-utils.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Returns a Response object
3
+ * Adds content-length header when possible
4
+ *
5
+ * @param resource
6
+ */
7
+ export declare function makeResponse(resource: any): Promise<Response>;
8
+ /**
9
+ * Checks response status (async) and throws a helpful error message if status is not OK.
10
+ * @param response
11
+ */
12
+ export declare function checkResponse(response: Response): Promise<void>;
13
+ /**
14
+ * Checks response status (sync) and throws a helpful error message if status is not OK.
15
+ * @param response
16
+ */
17
+ export declare function checkResponseSync(response: Response): void;
18
+ //# sourceMappingURL=response-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/response-utils.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsCnE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAM1D"}
@@ -1,115 +1,114 @@
1
- import { isResponse } from '../../javascript-utils/is-type';
2
- import { getResourceContentLength, getResourceUrlAndType } from './resource-utils';
3
- export async function makeResponse(resource) {
4
- if (isResponse(resource)) {
5
- return resource;
6
- }
7
-
8
- const headers = {};
9
- const contentLength = getResourceContentLength(resource);
10
-
11
- if (contentLength >= 0) {
12
- headers['content-length'] = String(contentLength);
13
- }
14
-
15
- const {
16
- url,
17
- type
18
- } = getResourceUrlAndType(resource);
19
-
20
- if (type) {
21
- headers['content-type'] = type;
22
- }
23
-
24
- const initialDataUrl = await getInitialDataUrl(resource);
25
-
26
- if (initialDataUrl) {
27
- headers['x-first-bytes'] = initialDataUrl;
28
- }
29
-
30
- if (typeof resource === 'string') {
31
- resource = new TextEncoder().encode(resource);
32
- }
33
-
34
- const response = new Response(resource, {
35
- headers
36
- });
37
- Object.defineProperty(response, 'url', {
38
- value: url
39
- });
40
- return response;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkResponseSync = exports.checkResponse = exports.makeResponse = void 0;
4
+ const is_type_1 = require("../../javascript-utils/is-type");
5
+ const resource_utils_1 = require("./resource-utils");
6
+ /**
7
+ * Returns a Response object
8
+ * Adds content-length header when possible
9
+ *
10
+ * @param resource
11
+ */
12
+ async function makeResponse(resource) {
13
+ if ((0, is_type_1.isResponse)(resource)) {
14
+ return resource;
15
+ }
16
+ // Add content-length header if possible
17
+ const headers = {};
18
+ const contentLength = (0, resource_utils_1.getResourceContentLength)(resource);
19
+ if (contentLength >= 0) {
20
+ headers['content-length'] = String(contentLength);
21
+ }
22
+ // `new Response(File)` does not preserve content-type and URL
23
+ // so we add them here
24
+ const { url, type } = (0, resource_utils_1.getResourceUrlAndType)(resource);
25
+ if (type) {
26
+ headers['content-type'] = type;
27
+ }
28
+ // Add a custom header with initial bytes if available
29
+ const initialDataUrl = await getInitialDataUrl(resource);
30
+ if (initialDataUrl) {
31
+ headers['x-first-bytes'] = initialDataUrl;
32
+ }
33
+ // TODO - is this the best way of handling strings?
34
+ // Maybe package as data URL instead?
35
+ if (typeof resource === 'string') {
36
+ // Convert to ArrayBuffer to avoid Response treating it as a URL
37
+ resource = new TextEncoder().encode(resource);
38
+ }
39
+ // Attempt to create a Response from the resource, adding headers and setting url
40
+ const response = new Response(resource, { headers });
41
+ // We can't control `Response.url` via constructor, use a property override to record URL.
42
+ Object.defineProperty(response, 'url', { value: url });
43
+ return response;
41
44
  }
42
- export async function checkResponse(response) {
43
- if (!response.ok) {
44
- const message = await getResponseError(response);
45
- throw new Error(message);
46
- }
45
+ exports.makeResponse = makeResponse;
46
+ /**
47
+ * Checks response status (async) and throws a helpful error message if status is not OK.
48
+ * @param response
49
+ */
50
+ async function checkResponse(response) {
51
+ if (!response.ok) {
52
+ const message = await getResponseError(response);
53
+ throw new Error(message);
54
+ }
47
55
  }
48
- export function checkResponseSync(response) {
49
- if (!response.ok) {
50
- let message = "".concat(response.status, " ").concat(response.statusText);
51
- message = message.length > 60 ? "".concat(message.slice(60), "...") : message;
52
- throw new Error(message);
53
- }
56
+ exports.checkResponse = checkResponse;
57
+ /**
58
+ * Checks response status (sync) and throws a helpful error message if status is not OK.
59
+ * @param response
60
+ */
61
+ function checkResponseSync(response) {
62
+ if (!response.ok) {
63
+ let message = `${response.status} ${response.statusText}`;
64
+ message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
65
+ throw new Error(message);
66
+ }
54
67
  }
55
-
68
+ exports.checkResponseSync = checkResponseSync;
69
+ // HELPERS
56
70
  async function getResponseError(response) {
57
- let message = "Failed to fetch resource ".concat(response.url, " (").concat(response.status, "): ");
58
-
59
- try {
60
- const contentType = response.headers.get('Content-Type');
61
- let text = response.statusText;
62
-
63
- if (contentType.includes('application/json')) {
64
- text += " ".concat(await response.text());
71
+ let message = `Failed to fetch resource ${response.url} (${response.status}): `;
72
+ try {
73
+ const contentType = response.headers.get('Content-Type');
74
+ let text = response.statusText;
75
+ if (contentType.includes('application/json')) {
76
+ text += ` ${await response.text()}`;
77
+ }
78
+ message += text;
79
+ message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
80
+ }
81
+ catch (error) {
82
+ // eslint forbids return in a finally statement, so we just catch here
65
83
  }
66
-
67
- message += text;
68
- message = message.length > 60 ? "".concat(message.slice(60), "...") : message;
69
- } catch (error) {}
70
-
71
- return message;
84
+ return message;
72
85
  }
73
-
74
86
  async function getInitialDataUrl(resource) {
75
- const INITIAL_DATA_LENGTH = 5;
76
-
77
- if (typeof resource === 'string') {
78
- return "data:,".concat(resource.slice(0, INITIAL_DATA_LENGTH));
79
- }
80
-
81
- if (resource instanceof Blob) {
82
- const blobSlice = resource.slice(0, 5);
83
- return await new Promise(resolve => {
84
- const reader = new FileReader();
85
-
86
- reader.onload = event => {
87
- var _event$target;
88
-
89
- return resolve(event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.result);
90
- };
91
-
92
- reader.readAsDataURL(blobSlice);
93
- });
94
- }
95
-
96
- if (resource instanceof ArrayBuffer) {
97
- const slice = resource.slice(0, INITIAL_DATA_LENGTH);
98
- const base64 = arrayBufferToBase64(slice);
99
- return "data:base64,".concat(base64);
100
- }
101
-
102
- return null;
87
+ const INITIAL_DATA_LENGTH = 5;
88
+ if (typeof resource === 'string') {
89
+ return `data:,${resource.slice(0, INITIAL_DATA_LENGTH)}`;
90
+ }
91
+ if (resource instanceof Blob) {
92
+ const blobSlice = resource.slice(0, 5);
93
+ return await new Promise((resolve) => {
94
+ const reader = new FileReader();
95
+ reader.onload = (event) => resolve(event?.target?.result);
96
+ reader.readAsDataURL(blobSlice);
97
+ });
98
+ }
99
+ if (resource instanceof ArrayBuffer) {
100
+ const slice = resource.slice(0, INITIAL_DATA_LENGTH);
101
+ const base64 = arrayBufferToBase64(slice);
102
+ return `data:base64,${base64}`;
103
+ }
104
+ return null;
103
105
  }
104
-
106
+ // https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
105
107
  function arrayBufferToBase64(buffer) {
106
- let binary = '';
107
- const bytes = new Uint8Array(buffer);
108
-
109
- for (let i = 0; i < bytes.byteLength; i++) {
110
- binary += String.fromCharCode(bytes[i]);
111
- }
112
-
113
- return btoa(binary);
108
+ let binary = '';
109
+ const bytes = new Uint8Array(buffer);
110
+ for (let i = 0; i < bytes.byteLength; i++) {
111
+ binary += String.fromCharCode(bytes[i]);
112
+ }
113
+ return btoa(binary);
114
114
  }
115
- //# sourceMappingURL=response-utils.js.map
@@ -0,0 +1,10 @@
1
+ import { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Loads any data and returns null (or optionally passes through data unparsed)
4
+ */
5
+ export declare const NullWorkerLoader: Loader;
6
+ /**
7
+ * Loads any data and returns null (or optionally passes through data unparsed)
8
+ */
9
+ export declare const NullLoader: LoaderWithParser;
10
+ //# sourceMappingURL=null-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-loader.d.ts","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAY9B,CAAC;AAYF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAoBxB,CAAC"}
@@ -1,34 +1,56 @@
1
- const VERSION = typeof "4.0.0-alpha.4" !== 'undefined' ? "4.0.0-alpha.4" : 'latest';
2
- export const NullWorkerLoader = {
3
- name: 'Null loader',
4
- id: 'null',
5
- module: 'core',
6
- version: VERSION,
7
- worker: true,
8
- mimeTypes: ['application/x.empty'],
9
- extensions: ['null'],
10
- tests: [() => false],
11
- options: {
12
- null: {}
13
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NullLoader = exports.NullWorkerLoader = void 0;
4
+ // __VERSION__ is injected by babel-plugin-version-inline
5
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
7
+ /**
8
+ * Loads any data and returns null (or optionally passes through data unparsed)
9
+ */
10
+ exports.NullWorkerLoader = {
11
+ name: 'Null loader',
12
+ id: 'null',
13
+ module: 'core',
14
+ version: VERSION,
15
+ worker: true,
16
+ mimeTypes: ['application/x.empty'],
17
+ extensions: ['null'],
18
+ tests: [() => false],
19
+ options: {
20
+ null: {}
21
+ }
14
22
  };
15
- export const NullLoader = {
16
- name: 'Null loader',
17
- id: 'null',
18
- module: 'core',
19
- version: VERSION,
20
- mimeTypes: ['application/x.empty'],
21
- extensions: ['null'],
22
- parse: async arrayBuffer => arrayBuffer,
23
- parseSync: arrayBuffer => arrayBuffer,
24
- parseInBatches: async function* generator(asyncIterator) {
25
- for await (const batch of asyncIterator) {
26
- yield batch;
23
+ /**
24
+ * Returns arguments passed to the parse API in a format that can be transfered to a
25
+ * web worker. The `context` parameter is stripped using JSON.stringify & parse.
26
+ */
27
+ function parseSync(arrayBuffer, options, context) {
28
+ if (!options.null.echoParameters)
29
+ return null;
30
+ context = context && JSON.parse(JSON.stringify(context));
31
+ return { arrayBuffer, options, context };
32
+ }
33
+ /**
34
+ * Loads any data and returns null (or optionally passes through data unparsed)
35
+ */
36
+ exports.NullLoader = {
37
+ name: 'Null loader',
38
+ id: 'null',
39
+ module: 'core',
40
+ version: VERSION,
41
+ mimeTypes: ['application/x.empty'],
42
+ extensions: ['null'],
43
+ parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
44
+ parseSync,
45
+ parseInBatches: async function* generator(asyncIterator, options, context) {
46
+ for await (const batch of asyncIterator) {
47
+ yield parseSync(batch, options, context);
48
+ }
49
+ },
50
+ tests: [() => false],
51
+ options: {
52
+ null: {
53
+ echoParameters: false
54
+ }
27
55
  }
28
- },
29
- tests: [() => false],
30
- options: {
31
- null: {}
32
- }
33
56
  };
34
- //# sourceMappingURL=null-loader.js.map