@loaders.gl/loader-utils 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 (261) hide show
  1. package/dist/es5/index.js +328 -0
  2. package/dist/es5/index.js.map +1 -0
  3. package/dist/es5/json-loader.js +44 -0
  4. package/dist/es5/json-loader.js.map +1 -0
  5. package/dist/es5/lib/binary-utils/array-buffer-utils.js +80 -0
  6. package/dist/es5/lib/binary-utils/array-buffer-utils.js.map +1 -0
  7. package/dist/es5/lib/binary-utils/dataview-copy-utils.js +58 -0
  8. package/dist/es5/lib/binary-utils/dataview-copy-utils.js.map +1 -0
  9. package/dist/es5/lib/binary-utils/get-first-characters.js +31 -0
  10. package/dist/es5/lib/binary-utils/get-first-characters.js.map +1 -0
  11. package/dist/es5/lib/binary-utils/memory-conversion-utils.js +44 -0
  12. package/dist/es5/lib/binary-utils/memory-conversion-utils.js.map +1 -0
  13. package/dist/es5/lib/binary-utils/memory-copy-utils.js +34 -0
  14. package/dist/es5/lib/binary-utils/memory-copy-utils.js.map +1 -0
  15. package/dist/es5/lib/env-utils/assert.js +12 -0
  16. package/dist/es5/lib/env-utils/assert.js.map +1 -0
  17. package/dist/es5/lib/env-utils/globals.js +30 -0
  18. package/dist/es5/lib/env-utils/globals.js.map +1 -0
  19. package/dist/es5/lib/filesystems/node-filesystem.js +210 -0
  20. package/dist/es5/lib/filesystems/node-filesystem.js.map +1 -0
  21. package/dist/es5/lib/filesystems/readable-file.js +91 -0
  22. package/dist/es5/lib/filesystems/readable-file.js.map +1 -0
  23. package/dist/es5/lib/filesystems/writable-file.js +82 -0
  24. package/dist/es5/lib/filesystems/writable-file.js.map +1 -0
  25. package/dist/es5/lib/iterators/async-iteration.js +190 -0
  26. package/dist/es5/lib/iterators/async-iteration.js.map +1 -0
  27. package/dist/es5/lib/iterators/text-iterators.js +305 -0
  28. package/dist/es5/lib/iterators/text-iterators.js.map +1 -0
  29. package/dist/es5/lib/node/buffer.browser.js +14 -0
  30. package/dist/es5/lib/node/buffer.browser.js.map +1 -0
  31. package/dist/es5/lib/node/buffer.js +27 -0
  32. package/dist/es5/lib/node/buffer.js.map +1 -0
  33. package/dist/es5/lib/node/fs.js +88 -0
  34. package/dist/es5/lib/node/fs.js.map +1 -0
  35. package/dist/es5/lib/node/promisify.js +36 -0
  36. package/dist/es5/lib/node/promisify.js.map +1 -0
  37. package/dist/es5/lib/node/stream.js +16 -0
  38. package/dist/es5/lib/node/stream.js.map +1 -0
  39. package/dist/es5/lib/option-utils/merge-loader-options.js +30 -0
  40. package/dist/es5/lib/option-utils/merge-loader-options.js.map +1 -0
  41. package/dist/es5/lib/parser-utils/parse-json.js +15 -0
  42. package/dist/es5/lib/parser-utils/parse-json.js.map +1 -0
  43. package/dist/es5/lib/path-utils/file-aliases.js +33 -0
  44. package/dist/es5/lib/path-utils/file-aliases.js.map +1 -0
  45. package/dist/es5/lib/path-utils/get-cwd.js +15 -0
  46. package/dist/es5/lib/path-utils/get-cwd.js.map +1 -0
  47. package/dist/es5/lib/path-utils/path.js +136 -0
  48. package/dist/es5/lib/path-utils/path.js.map +1 -0
  49. package/dist/es5/lib/request-utils/request-scheduler.js +150 -0
  50. package/dist/es5/lib/request-utils/request-scheduler.js.map +1 -0
  51. package/dist/es5/lib/worker-loader-utils/create-loader-worker.js +142 -0
  52. package/dist/es5/lib/worker-loader-utils/create-loader-worker.js.map +1 -0
  53. package/dist/es5/lib/worker-loader-utils/encode-with-worker.js +18 -0
  54. package/dist/es5/lib/worker-loader-utils/encode-with-worker.js.map +1 -0
  55. package/dist/es5/lib/worker-loader-utils/parse-with-worker.js +115 -0
  56. package/dist/es5/lib/worker-loader-utils/parse-with-worker.js.map +1 -0
  57. package/dist/es5/types.js +2 -0
  58. package/dist/es5/types.js.map +1 -0
  59. package/dist/es5/workers/json-worker.js +6 -0
  60. package/dist/es5/workers/json-worker.js.map +1 -0
  61. package/dist/esm/index.js +29 -0
  62. package/dist/esm/index.js.map +1 -0
  63. package/dist/esm/json-loader.js +18 -0
  64. package/dist/esm/json-loader.js.map +1 -0
  65. package/dist/esm/lib/binary-utils/array-buffer-utils.js +52 -0
  66. package/dist/esm/lib/binary-utils/array-buffer-utils.js.map +1 -0
  67. package/dist/{lib/binary-utils/binary-copy-utils.js → esm/lib/binary-utils/dataview-copy-utils.js} +27 -4
  68. package/dist/esm/lib/binary-utils/dataview-copy-utils.js.map +1 -0
  69. package/dist/esm/lib/binary-utils/get-first-characters.js +24 -0
  70. package/dist/esm/lib/binary-utils/get-first-characters.js.map +1 -0
  71. package/dist/esm/lib/binary-utils/memory-conversion-utils.js +31 -0
  72. package/dist/esm/lib/binary-utils/memory-conversion-utils.js.map +1 -0
  73. package/dist/esm/lib/binary-utils/memory-copy-utils.js +26 -0
  74. package/dist/esm/lib/binary-utils/memory-copy-utils.js.map +1 -0
  75. package/dist/esm/lib/env-utils/assert.js +6 -0
  76. package/dist/esm/lib/env-utils/assert.js.map +1 -0
  77. package/dist/esm/lib/env-utils/globals.js +16 -0
  78. package/dist/esm/lib/env-utils/globals.js.map +1 -0
  79. package/dist/esm/lib/filesystems/node-filesystem.js +53 -0
  80. package/dist/esm/lib/filesystems/node-filesystem.js.map +1 -0
  81. package/dist/esm/lib/filesystems/readable-file.js +20 -0
  82. package/dist/esm/lib/filesystems/readable-file.js.map +1 -0
  83. package/dist/esm/lib/filesystems/writable-file.js +20 -0
  84. package/dist/esm/lib/filesystems/writable-file.js.map +1 -0
  85. package/dist/esm/lib/iterators/async-iteration.js +32 -0
  86. package/dist/esm/lib/iterators/async-iteration.js.map +1 -0
  87. package/dist/esm/lib/iterators/text-iterators.js +47 -0
  88. package/dist/esm/lib/iterators/text-iterators.js.map +1 -0
  89. package/dist/esm/lib/node/buffer.browser.js +7 -0
  90. package/dist/esm/lib/node/buffer.browser.js.map +1 -0
  91. package/dist/esm/lib/node/buffer.js +20 -0
  92. package/dist/esm/lib/node/buffer.js.map +1 -0
  93. package/dist/esm/lib/node/fs.js +40 -0
  94. package/dist/esm/lib/node/fs.js.map +1 -0
  95. package/dist/esm/lib/node/promisify.js +10 -0
  96. package/dist/esm/lib/node/promisify.js.map +1 -0
  97. package/dist/esm/lib/node/stream.js +7 -0
  98. package/dist/esm/lib/node/stream.js.map +1 -0
  99. package/dist/esm/lib/option-utils/merge-loader-options.js +17 -0
  100. package/dist/esm/lib/option-utils/merge-loader-options.js.map +1 -0
  101. package/dist/esm/lib/parser-utils/parse-json.js +9 -0
  102. package/dist/esm/lib/parser-utils/parse-json.js.map +1 -0
  103. package/dist/esm/lib/path-utils/file-aliases.js +24 -0
  104. package/dist/esm/lib/path-utils/file-aliases.js.map +1 -0
  105. package/dist/esm/lib/path-utils/get-cwd.js +9 -0
  106. package/dist/esm/lib/path-utils/get-cwd.js.map +1 -0
  107. package/dist/esm/lib/path-utils/path.js +127 -0
  108. package/dist/esm/lib/path-utils/path.js.map +1 -0
  109. package/dist/esm/lib/request-utils/request-scheduler.js +120 -0
  110. package/dist/esm/lib/request-utils/request-scheduler.js.map +1 -0
  111. package/dist/esm/lib/worker-loader-utils/create-loader-worker.js +95 -0
  112. package/dist/esm/lib/worker-loader-utils/create-loader-worker.js.map +1 -0
  113. package/dist/esm/lib/worker-loader-utils/encode-with-worker.js +12 -0
  114. package/dist/esm/lib/worker-loader-utils/encode-with-worker.js.map +1 -0
  115. package/dist/esm/lib/worker-loader-utils/parse-with-worker.js +63 -0
  116. package/dist/esm/lib/worker-loader-utils/parse-with-worker.js.map +1 -0
  117. package/dist/esm/types.js +2 -0
  118. package/dist/esm/types.js.map +1 -0
  119. package/dist/esm/workers/json-worker.js +4 -0
  120. package/dist/esm/workers/json-worker.js.map +1 -0
  121. package/dist/index.d.ts +32 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +122 -26
  124. package/dist/json-loader.d.ts +9 -0
  125. package/dist/json-loader.d.ts.map +1 -0
  126. package/dist/json-loader.js +24 -18
  127. package/dist/lib/binary-utils/array-buffer-utils.d.ts +27 -0
  128. package/dist/lib/binary-utils/array-buffer-utils.d.ts.map +1 -0
  129. package/dist/lib/binary-utils/array-buffer-utils.js +78 -80
  130. package/dist/lib/binary-utils/dataview-copy-utils.d.ts +43 -0
  131. package/dist/lib/binary-utils/dataview-copy-utils.d.ts.map +1 -0
  132. package/dist/lib/binary-utils/dataview-copy-utils.js +97 -0
  133. package/dist/lib/binary-utils/get-first-characters.d.ts +17 -0
  134. package/dist/lib/binary-utils/get-first-characters.d.ts.map +1 -0
  135. package/dist/lib/binary-utils/get-first-characters.js +43 -25
  136. package/dist/lib/binary-utils/memory-conversion-utils.d.ts +15 -0
  137. package/dist/lib/binary-utils/memory-conversion-utils.d.ts.map +1 -0
  138. package/dist/lib/binary-utils/memory-conversion-utils.js +73 -0
  139. package/dist/lib/binary-utils/memory-copy-utils.d.ts +25 -0
  140. package/dist/lib/binary-utils/memory-copy-utils.d.ts.map +1 -0
  141. package/dist/lib/binary-utils/memory-copy-utils.js +58 -24
  142. package/dist/lib/env-utils/assert.d.ts +6 -0
  143. package/dist/lib/env-utils/assert.d.ts.map +1 -0
  144. package/dist/lib/env-utils/assert.js +12 -5
  145. package/dist/lib/env-utils/globals.d.ts +15 -0
  146. package/dist/lib/env-utils/globals.d.ts.map +1 -0
  147. package/dist/lib/env-utils/globals.js +23 -9
  148. package/dist/lib/filesystems/node-filesystem.d.ts +39 -0
  149. package/dist/lib/filesystems/node-filesystem.d.ts.map +1 -0
  150. package/dist/lib/filesystems/node-filesystem.js +72 -59
  151. package/dist/lib/filesystems/readable-file.d.ts +10 -0
  152. package/dist/lib/filesystems/readable-file.d.ts.map +1 -0
  153. package/dist/lib/filesystems/readable-file.js +25 -0
  154. package/dist/lib/filesystems/writable-file.d.ts +18 -0
  155. package/dist/lib/filesystems/writable-file.d.ts.map +1 -0
  156. package/dist/lib/filesystems/writable-file.js +48 -0
  157. package/dist/lib/iterators/async-iteration.d.ts +20 -0
  158. package/dist/lib/iterators/async-iteration.d.ts.map +1 -0
  159. package/dist/lib/iterators/async-iteration.js +49 -35
  160. package/dist/lib/iterators/text-iterators.d.ts +19 -0
  161. package/dist/lib/iterators/text-iterators.d.ts.map +1 -0
  162. package/dist/lib/iterators/text-iterators.js +56 -41
  163. package/dist/lib/node/buffer.browser.d.ts +12 -0
  164. package/dist/lib/node/buffer.browser.d.ts.map +1 -0
  165. package/dist/lib/node/buffer.browser.js +22 -0
  166. package/dist/lib/node/buffer.d.ts +12 -0
  167. package/dist/lib/node/buffer.d.ts.map +1 -0
  168. package/dist/lib/node/buffer.js +33 -25
  169. package/dist/lib/node/fs.d.ts +25 -0
  170. package/dist/lib/node/fs.d.ts.map +1 -0
  171. package/dist/lib/node/fs.js +48 -26
  172. package/dist/lib/node/promisify.d.ts +13 -0
  173. package/dist/lib/node/promisify.d.ts.map +1 -0
  174. package/dist/lib/node/promisify.js +22 -0
  175. package/dist/lib/node/stream.d.ts +4 -0
  176. package/dist/lib/node/stream.d.ts.map +1 -0
  177. package/dist/lib/node/stream.js +17 -0
  178. package/dist/lib/option-utils/merge-loader-options.d.ts +9 -0
  179. package/dist/lib/option-utils/merge-loader-options.d.ts.map +1 -0
  180. package/dist/lib/option-utils/merge-loader-options.js +27 -0
  181. package/dist/lib/parser-utils/parse-json.d.ts +5 -0
  182. package/dist/lib/parser-utils/parse-json.d.ts.map +1 -0
  183. package/dist/lib/parser-utils/parse-json.js +15 -8
  184. package/dist/lib/path-utils/file-aliases.d.ts +17 -0
  185. package/dist/lib/path-utils/file-aliases.d.ts.map +1 -0
  186. package/dist/lib/path-utils/file-aliases.js +40 -19
  187. package/dist/lib/path-utils/get-cwd.d.ts +2 -0
  188. package/dist/lib/path-utils/get-cwd.d.ts.map +1 -0
  189. package/dist/lib/path-utils/get-cwd.js +12 -0
  190. package/dist/lib/path-utils/path.d.ts +24 -0
  191. package/dist/lib/path-utils/path.d.ts.map +1 -0
  192. package/dist/lib/path-utils/path.js +173 -19
  193. package/dist/lib/request-utils/request-scheduler.d.ts +62 -0
  194. package/dist/lib/request-utils/request-scheduler.d.ts.map +1 -0
  195. package/dist/lib/request-utils/request-scheduler.js +127 -131
  196. package/dist/lib/worker-loader-utils/create-loader-worker.d.ts +7 -0
  197. package/dist/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -0
  198. package/dist/lib/worker-loader-utils/create-loader-worker.js +92 -96
  199. package/dist/lib/worker-loader-utils/encode-with-worker.d.ts +8 -0
  200. package/dist/lib/worker-loader-utils/encode-with-worker.d.ts.map +1 -0
  201. package/dist/lib/worker-loader-utils/encode-with-worker.js +21 -0
  202. package/dist/lib/worker-loader-utils/parse-with-worker.d.ts +15 -0
  203. package/dist/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -0
  204. package/dist/lib/worker-loader-utils/parse-with-worker.js +77 -60
  205. package/dist/types.d.ts +220 -0
  206. package/dist/types.d.ts.map +1 -0
  207. package/dist/types.js +3 -2
  208. package/dist/workers/json-worker.d.ts +2 -0
  209. package/dist/workers/json-worker.d.ts.map +1 -0
  210. package/dist/workers/json-worker.js +5 -4
  211. package/package.json +14 -24
  212. package/src/index.ts +32 -18
  213. package/src/json-loader.ts +5 -4
  214. package/src/lib/binary-utils/array-buffer-utils.ts +4 -40
  215. package/src/lib/binary-utils/{binary-copy-utils.ts → dataview-copy-utils.ts} +57 -5
  216. package/src/lib/binary-utils/get-first-characters.ts +17 -1
  217. package/src/lib/binary-utils/memory-conversion-utils.ts +53 -0
  218. package/src/lib/filesystems/readable-file.ts +30 -0
  219. package/src/lib/filesystems/writable-file.ts +44 -0
  220. package/src/lib/node/buffer.browser.ts +20 -0
  221. package/src/lib/node/buffer.ts +12 -11
  222. package/src/lib/node/fs.ts +51 -16
  223. package/src/lib/node/promisify.ts +70 -0
  224. package/src/lib/node/stream.ts +18 -0
  225. package/src/lib/option-utils/merge-loader-options.ts +35 -0
  226. package/src/lib/path-utils/get-cwd.ts +9 -0
  227. package/src/lib/path-utils/path.ts +138 -4
  228. package/src/lib/worker-loader-utils/create-loader-worker.ts +3 -2
  229. package/src/lib/worker-loader-utils/encode-with-worker.ts +21 -0
  230. package/src/lib/worker-loader-utils/parse-with-worker.ts +16 -3
  231. package/src/types.ts +156 -93
  232. package/dist/index.js.map +0 -1
  233. package/dist/json-loader.js.map +0 -1
  234. package/dist/lib/binary-utils/array-buffer-utils.js.map +0 -1
  235. package/dist/lib/binary-utils/binary-copy-utils.js.map +0 -1
  236. package/dist/lib/binary-utils/buffer-utils.js +0 -16
  237. package/dist/lib/binary-utils/buffer-utils.js.map +0 -1
  238. package/dist/lib/binary-utils/encode-utils.js +0 -31
  239. package/dist/lib/binary-utils/encode-utils.js.map +0 -1
  240. package/dist/lib/binary-utils/get-first-characters.js.map +0 -1
  241. package/dist/lib/binary-utils/memory-copy-utils.js.map +0 -1
  242. package/dist/lib/env-utils/assert.js.map +0 -1
  243. package/dist/lib/env-utils/globals.js.map +0 -1
  244. package/dist/lib/filesystems/node-filesystem.js.map +0 -1
  245. package/dist/lib/iterators/async-iteration.js.map +0 -1
  246. package/dist/lib/iterators/text-iterators.js.map +0 -1
  247. package/dist/lib/node/buffer.js.map +0 -1
  248. package/dist/lib/node/fs.js.map +0 -1
  249. package/dist/lib/node/util.js +0 -3
  250. package/dist/lib/node/util.js.map +0 -1
  251. package/dist/lib/parser-utils/parse-json.js.map +0 -1
  252. package/dist/lib/path-utils/file-aliases.js.map +0 -1
  253. package/dist/lib/path-utils/path.js.map +0 -1
  254. package/dist/lib/request-utils/request-scheduler.js.map +0 -1
  255. package/dist/lib/worker-loader-utils/create-loader-worker.js.map +0 -1
  256. package/dist/lib/worker-loader-utils/parse-with-worker.js.map +0 -1
  257. package/dist/types.js.map +0 -1
  258. package/dist/workers/json-worker.js.map +0 -1
  259. package/src/lib/binary-utils/buffer-utils.ts +0 -28
  260. package/src/lib/binary-utils/encode-utils.ts +0 -32
  261. package/src/lib/node/util.ts +0 -4
@@ -1,64 +1,81 @@
1
- import { WorkerFarm, getWorkerURL } from '@loaders.gl/worker-utils';
2
- export function canParseWithWorker(loader, options) {
3
- if (!WorkerFarm.isSupported()) {
4
- return false;
5
- }
6
-
7
- return loader.worker && (options === null || options === void 0 ? void 0 : options.worker);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseWithWorker = exports.canParseWithWorker = void 0;
4
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
5
+ const worker_utils_2 = require("@loaders.gl/worker-utils");
6
+ /**
7
+ * Determines if a loader can parse with worker
8
+ * @param loader
9
+ * @param options
10
+ */
11
+ function canParseWithWorker(loader, options) {
12
+ if (!worker_utils_2.WorkerFarm.isSupported()) {
13
+ return false;
14
+ }
15
+ // Node workers are still experimental
16
+ if (!worker_utils_1.isBrowser && !options?._nodeWorkers) {
17
+ return false;
18
+ }
19
+ return loader.worker && options?.worker;
8
20
  }
9
- export async function parseWithWorker(loader, data, options, context, parseOnMainThread) {
10
- const name = loader.id;
11
- const url = getWorkerURL(loader, options);
12
- const workerFarm = WorkerFarm.getWorkerFarm(options);
13
- const workerPool = workerFarm.getWorkerPool({
14
- name,
15
- url
16
- });
17
- options = JSON.parse(JSON.stringify(options));
18
- const job = await workerPool.startJob('process-on-worker', onMessage.bind(null, parseOnMainThread));
19
- job.postMessage('process', {
20
- input: data,
21
- options
22
- });
23
- const result = await job.result;
24
- return await result.result;
21
+ exports.canParseWithWorker = canParseWithWorker;
22
+ /**
23
+ * this function expects that the worker function sends certain messages,
24
+ * this can be automated if the worker is wrapper by a call to createLoaderWorker in @loaders.gl/loader-utils.
25
+ */
26
+ async function parseWithWorker(loader, data, options, context, parseOnMainThread) {
27
+ const name = loader.id; // TODO
28
+ const url = (0, worker_utils_2.getWorkerURL)(loader, options);
29
+ const workerFarm = worker_utils_2.WorkerFarm.getWorkerFarm(options);
30
+ const workerPool = workerFarm.getWorkerPool({ name, url });
31
+ // options.log object contains functions which cannot be transferred
32
+ // context.fetch & context.parse functions cannot be transferred
33
+ // TODO - decide how to handle logging on workers
34
+ options = JSON.parse(JSON.stringify(options));
35
+ context = JSON.parse(JSON.stringify(context || {}));
36
+ const job = await workerPool.startJob('process-on-worker',
37
+ // @ts-expect-error
38
+ onMessage.bind(null, parseOnMainThread) // eslint-disable-line @typescript-eslint/no-misused-promises
39
+ );
40
+ job.postMessage('process', {
41
+ // @ts-ignore
42
+ input: data,
43
+ options,
44
+ context
45
+ });
46
+ const result = await job.result;
47
+ // TODO - what is going on here?
48
+ return await result.result;
25
49
  }
26
-
50
+ exports.parseWithWorker = parseWithWorker;
51
+ /**
52
+ * Handle worker's responses to the main thread
53
+ * @param job
54
+ * @param type
55
+ * @param payload
56
+ */
27
57
  async function onMessage(parseOnMainThread, job, type, payload) {
28
- switch (type) {
29
- case 'done':
30
- job.done(payload);
31
- break;
32
-
33
- case 'error':
34
- job.error(new Error(payload.error));
35
- break;
36
-
37
- case 'process':
38
- const {
39
- id,
40
- input,
41
- options
42
- } = payload;
43
-
44
- try {
45
- const result = await parseOnMainThread(input, options);
46
- job.postMessage('done', {
47
- id,
48
- result
49
- });
50
- } catch (error) {
51
- const message = error instanceof Error ? error.message : 'unknown error';
52
- job.postMessage('error', {
53
- id,
54
- error: message
55
- });
56
- }
57
-
58
- break;
59
-
60
- default:
61
- console.warn("parse-with-worker unknown message ".concat(type));
62
- }
58
+ switch (type) {
59
+ case 'done':
60
+ job.done(payload);
61
+ break;
62
+ case 'error':
63
+ job.error(new Error(payload.error));
64
+ break;
65
+ case 'process':
66
+ // Worker is asking for main thread to parseO
67
+ const { id, input, options } = payload;
68
+ try {
69
+ const result = await parseOnMainThread(input, options);
70
+ job.postMessage('done', { id, result });
71
+ }
72
+ catch (error) {
73
+ const message = error instanceof Error ? error.message : 'unknown error';
74
+ job.postMessage('error', { id, error: message });
75
+ }
76
+ break;
77
+ default:
78
+ // eslint-disable-next-line
79
+ console.warn(`parse-with-worker unknown message ${type}`);
80
+ }
63
81
  }
64
- //# sourceMappingURL=parse-with-worker.js.map
@@ -0,0 +1,220 @@
1
+ /// <reference types="node" />
2
+ export type TypedIntArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Int32Array | Uint32Array;
3
+ export type TypedFloatArray = Uint16Array | Float32Array | Float64Array;
4
+ export type TypedArray = TypedIntArray | TypedFloatArray;
5
+ export type NumericArray = Array<number> | TypedIntArray | TypedFloatArray;
6
+ type FetchLike = (url: string, options?: RequestInit) => Promise<Response>;
7
+ /**
8
+ * Core Loader Options
9
+ */
10
+ export type LoaderOptions = {
11
+ /** fetch options or a custom fetch function */
12
+ fetch?: typeof fetch | FetchLike | RequestInit | null;
13
+ /** Do not throw on errors */
14
+ nothrow?: boolean;
15
+ /** loader selection, search first for supplied mimeType */
16
+ mimeType?: string;
17
+ /** loader selection, provide fallback mimeType is server does not provide */
18
+ fallbackMimeType?: string;
19
+ /** loader selection, avoid searching registered loaders */
20
+ ignoreRegisteredLoaders?: boolean;
21
+ /** Experimental: Supply a logger to the parser */
22
+ log?: any;
23
+ /** Size of each batch. `auto` matches batches to size of incoming chunks */
24
+ batchSize?: number | 'auto';
25
+ /** Minimal amount of time between batches */
26
+ batchDebounceMs?: number;
27
+ /** Stop loading after a given number of rows (compare SQL limit clause) */
28
+ limit?: 0;
29
+ /** Experimental: Stop loading after reaching */
30
+ _limitMB?: 0;
31
+ /** Generate metadata batches */
32
+ metadata?: boolean;
33
+ /** Transforms to run on incoming batches */
34
+ transforms?: TransformBatches[];
35
+ /** CDN load workers from */
36
+ CDN?: string | null;
37
+ /** Set to `false` to disable workers */
38
+ worker?: boolean;
39
+ /** Number of concurrent workers (per loader) on desktop browser */
40
+ maxConcurrency?: number;
41
+ /** Number of concurrent workers (per loader) on mobile browsers */
42
+ maxMobileConcurrency?: number;
43
+ /** Set to `false` to prevent reuse workers */
44
+ reuseWorkers?: boolean;
45
+ /** Whether to use workers under Node.js (experimental) */
46
+ _nodeWorkers?: boolean;
47
+ /** set to 'test' to run local worker */
48
+ _workerType?: string;
49
+ /** @deprecated `options.batchType` removed, Use `options.<loader>.type` instead */
50
+ batchType?: 'row' | 'columnar' | 'arrow';
51
+ /** @deprecated `options.throw removed`, Use `options.nothrow` instead */
52
+ throws?: boolean;
53
+ /** @deprecated `options.dataType` no longer used */
54
+ dataType?: never;
55
+ /** @deprecated `options.uri` no longer used */
56
+ uri?: never;
57
+ /** @deprecated `options.method` removed. Use `options.fetch.method` */
58
+ method?: never;
59
+ /** @deprecated `options.headers` removed. Use `options.fetch.headers` */
60
+ headers?: never;
61
+ /** @deprecated `options.body` removed. Use `options.fetch.body` */
62
+ body?: never;
63
+ /** @deprecated `options.mode` removed. Use `options.fetch.mode` */
64
+ mode?: never;
65
+ /** @deprecated `options.credentials` removed. Use `options.fetch.credentials` */
66
+ credentials?: never;
67
+ /** @deprecated `options.cache` removed. Use `options.fetch.cache` */
68
+ cache?: never;
69
+ /** @deprecated `options.redirect` removed. Use `options.fetch.redirect` */
70
+ redirect?: never;
71
+ /** @deprecated `options.referrer` removed. Use `options.fetch.referrer` */
72
+ referrer?: never;
73
+ /** @deprecated `options.referrerPolicy` removed. Use `options.fetch.referrerPolicy` */
74
+ referrerPolicy?: never;
75
+ /** @deprecated `options.integrity` removed. Use `options.fetch.integrity` */
76
+ integrity?: never;
77
+ /** @deprecated `options.keepalive` removed. Use `options.fetch.keepalive` */
78
+ keepalive?: never;
79
+ /** @deprecated `options.signal` removed. Use `options.fetch.signal` */
80
+ signal?: never;
81
+ [loaderId: string]: unknown;
82
+ };
83
+ type PreloadOptions = {
84
+ [key: string]: unknown;
85
+ };
86
+ /**
87
+ * A worker loader definition that can be used with `@loaders.gl/core` functions
88
+ */
89
+ export type Loader<DataT = any, BatchT = any, LoaderOptionsT = LoaderOptions> = {
90
+ dataType?: DataT;
91
+ batchType?: BatchT;
92
+ options: LoaderOptionsT;
93
+ deprecatedOptions?: Record<string, string | Record<string, string>>;
94
+ name: string;
95
+ id: string;
96
+ module: string;
97
+ version: string;
98
+ worker?: string | boolean;
99
+ category?: string;
100
+ extensions: string[];
101
+ mimeTypes: string[];
102
+ binary?: boolean;
103
+ text?: boolean;
104
+ tests?: (((ArrayBuffer: ArrayBuffer) => boolean) | ArrayBuffer | string)[];
105
+ supported?: boolean;
106
+ testText?: (string: string) => boolean;
107
+ };
108
+ /**
109
+ * A "bundled" loader definition that can be used with `@loaders.gl/core` functions
110
+ * If a worker loader is supported it will also be supported.
111
+ */
112
+ export type LoaderWithParser<DataT = any, BatchT = any, LoaderOptionsT = LoaderOptions> = Loader<DataT, BatchT, LoaderOptionsT> & {
113
+ testText?: (string: string) => boolean;
114
+ parse: (arrayBuffer: ArrayBuffer, options?: LoaderOptionsT, context?: LoaderContext) => Promise<DataT>;
115
+ preload?: Preload;
116
+ parseSync?: (arrayBuffer: ArrayBuffer, options?: LoaderOptionsT, context?: LoaderContext) => DataT;
117
+ parseText?: (text: string, options?: LoaderOptionsT) => Promise<DataT>;
118
+ parseTextSync?: (text: string, options?: LoaderOptionsT) => DataT;
119
+ parseInBatches?: (iterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options?: LoaderOptionsT, context?: LoaderContext) => AsyncIterable<BatchT>;
120
+ parseFileInBatches?: (file: Blob, options?: LoaderOptionsT, context?: LoaderContext) => AsyncIterable<BatchT>;
121
+ };
122
+ export type LoaderContext = {
123
+ loaders?: Loader[] | null;
124
+ url?: string;
125
+ fetch: typeof fetch | FetchLike;
126
+ response?: Response;
127
+ parse: (arrayBuffer: ArrayBuffer, loaders?: Loader | Loader[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext) => Promise<any>;
128
+ parseSync?: (arrayBuffer: ArrayBuffer, loaders?: Loader | Loader[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext) => any;
129
+ parseInBatches?: (iterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, loaders?: Loader | Loader[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext) => AsyncIterable<any> | Promise<AsyncIterable<any>>;
130
+ };
131
+ type Preload = (url: string, options?: PreloadOptions) => any;
132
+ /** Typescript helper to extract options type from a generic loader type */
133
+ export type LoaderOptionsType<T = Loader> = T extends Loader<any, any, infer Options> ? Options : never;
134
+ /** Typescript helper to extract data type from a generic loader type */
135
+ export type LoaderReturnType<T = Loader> = T extends Loader<infer Return, any, any> ? Return : never;
136
+ /** Typescript helper to extract batch type from a generic loader type */
137
+ export type LoaderBatchType<T = Loader> = T extends Loader<any, infer Batch, any> ? Batch : never;
138
+ /** Options for writers */
139
+ export type WriterOptions = {
140
+ /** worker source. If is set will be used instead of loading worker from the Internet */
141
+ souce?: string | null;
142
+ /** writer-specific options */
143
+ [writerId: string]: any;
144
+ };
145
+ /**
146
+ * A writer definition that can be used with `@loaders.gl/core` functions
147
+ */
148
+ export type Writer<DataT = unknown, BatchT = unknown, WriterOptionsT = WriterOptions> = {
149
+ name: string;
150
+ id: string;
151
+ module: string;
152
+ version: string;
153
+ worker?: string | boolean;
154
+ extensions?: string[];
155
+ mimeTypes?: string[];
156
+ binary?: boolean;
157
+ text?: boolean;
158
+ options: WriterOptionsT;
159
+ deprecatedOptions?: Record<string, string>;
160
+ encodeSync?: EncodeSync;
161
+ encodeURLtoURL?: EncodeURLtoURL;
162
+ encode?(data: DataT, options?: WriterOptionsT): Promise<ArrayBuffer>;
163
+ encodeText?(table: DataT, options?: WriterOptionsT): Promise<string> | string;
164
+ encodeInBatches?(data: AsyncIterable<any>, options?: WriterOptionsT): AsyncIterable<ArrayBuffer>;
165
+ };
166
+ type EncodeSync = (data: any, options?: WriterOptions) => ArrayBuffer;
167
+ type EncodeURLtoURL = (inputUrl: string, outputUrl: string, options?: WriterOptions) => Promise<string>;
168
+ /** Typescript helper to extract the writer options type from a generic writer type */
169
+ export type WriterOptionsType<T = Writer> = T extends Writer<unknown, unknown, infer Options> ? Options : never;
170
+ export type TransformBatches = (asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>) => AsyncIterable<ArrayBuffer>;
171
+ /** Types that can be synchronously parsed */
172
+ export type SyncDataType = string | ArrayBuffer;
173
+ /** Types that can be parsed async */
174
+ export type DataType = string | ArrayBuffer | File | Blob | Response | ReadableStream | Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>;
175
+ /** Types that can be parsed in batches */
176
+ export type BatchableDataType = DataType | Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer> | Promise<AsyncIterable<ArrayBuffer>>;
177
+ /**
178
+ * A FileSystem interface can encapsulate a FileList, a ZipFile, a GoogleDrive etc.
179
+ */
180
+ export interface IFileSystem {
181
+ /**
182
+ * Return a list of file names
183
+ * @param dirname directory name. file system root directory if omitted
184
+ */
185
+ readdir(dirname?: string, options?: {
186
+ recursive?: boolean;
187
+ }): Promise<string[]>;
188
+ /**
189
+ * Gets information from a local file from the filesystem
190
+ * @param filename file name to stat
191
+ * @param options currently unused
192
+ * @throws if filename is not in local filesystem
193
+ */
194
+ stat(filename: string, options?: object): Promise<{
195
+ size: number;
196
+ }>;
197
+ /**
198
+ * Fetches a local file from the filesystem (or a URL)
199
+ * @param filename
200
+ * @param options
201
+ */
202
+ fetch(filename: string, options?: object): Promise<Response>;
203
+ }
204
+ type ReadOptions = {
205
+ buffer?: ArrayBuffer;
206
+ offset?: number;
207
+ length?: number;
208
+ position?: number;
209
+ };
210
+ export interface IRandomAccessReadFileSystem extends IFileSystem {
211
+ open(path: string, flags: string | number, mode?: any): Promise<any>;
212
+ close(fd: any): Promise<void>;
213
+ fstat(fd: any): Promise<object>;
214
+ read(fd: any, options?: ReadOptions): Promise<{
215
+ bytesRead: number;
216
+ buffer: Buffer;
217
+ }>;
218
+ }
219
+ export {};
220
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,2 +1,3 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";
2
+ // Typed arrays
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=json-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-worker.d.ts","sourceRoot":"","sources":["../../src/workers/json-worker.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import { createLoaderWorker } from '../lib/worker-loader-utils/create-loader-worker';
2
- import { JSONLoader } from '../json-loader';
3
- createLoaderWorker(JSONLoader);
4
- //# sourceMappingURL=json-worker.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const create_loader_worker_1 = require("../lib/worker-loader-utils/create-loader-worker");
4
+ const json_loader_1 = require("../json-loader");
5
+ (0, create_loader_worker_1.createLoaderWorker)(json_loader_1.JSONLoader);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/loader-utils",
3
- "version": "4.0.0-alpha.4",
3
+ "version": "4.0.0-alpha.6",
4
4
  "description": "Framework-independent loaders for 3D graphics formats",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -17,9 +17,9 @@
17
17
  "mesh",
18
18
  "point cloud"
19
19
  ],
20
- "types": "src/index.ts",
21
- "main": "dist/index.js",
22
- "module": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "main": "dist/es5/index.js",
22
+ "module": "dist/esm/index.js",
23
23
  "sideEffects": false,
24
24
  "files": [
25
25
  "src",
@@ -27,29 +27,19 @@
27
27
  "README.md"
28
28
  ],
29
29
  "browser": {
30
- "./src/lib/node/buffer.ts": false,
31
- "./src/lib/node/buffer.js": false,
32
- "./dist/es5/lib/node/buffer.js": false,
33
- "./dist/esm/lib/node/buffer.js": false,
34
- "./src/lib/node/fs.ts": false,
35
- "./src/lib/node/fs.js": false,
36
- "./dist/es5/lib/node/fs.js": false,
37
- "./dist/esm/lib/node/fs.js": false,
38
- "./src/lib/node/util.ts": false,
39
- "./src/lib/node/util.js": false,
40
- "./dist/es5/lib/node/util.js": false,
41
- "./dist/esm/lib/node/util.js": false,
30
+ "./src/lib/node/buffer.ts": "./src/lib/node/buffer.browser.ts",
31
+ "./src/lib/node/buffer.js": "./src/lib/node/buffer.browser.js",
32
+ "./dist/lib/node/buffer.js": "./dist/lib/node/buffer.browser.js",
33
+ "./dist/es5/lib/node/buffer.js": "./dist/es5/lib/node/buffer.browser.js",
34
+ "./dist/esm/lib/node/buffer.js": "./dist/esm/lib/node/buffer.browser.js",
42
35
  "fs": false,
43
- "util": false
44
- },
45
- "scripts": {
46
- "pre-build-disabled": "npm run build-bundle",
47
- "build-bundle": "webpack --config ../../scripts/webpack/bundle.js"
36
+ "stream": false
48
37
  },
38
+ "scripts": {},
49
39
  "dependencies": {
50
40
  "@babel/runtime": "^7.3.1",
51
- "@loaders.gl/worker-utils": "4.0.0-alpha.4",
52
- "@probe.gl/stats": "^3.4.0"
41
+ "@loaders.gl/worker-utils": "4.0.0-alpha.6",
42
+ "@probe.gl/stats": "^4.0.2"
53
43
  },
54
- "gitHead": "53026061b3c8871f7e96d3a5826125cc6613bddc"
44
+ "gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
55
45
  }
package/src/index.ts CHANGED
@@ -1,11 +1,18 @@
1
1
  // TYPES
2
2
  export type {
3
+ // loaders
3
4
  Loader,
4
5
  LoaderWithParser,
5
6
  LoaderContext,
6
7
  LoaderOptions,
8
+ LoaderOptionsType,
9
+ LoaderReturnType,
10
+ LoaderBatchType,
11
+ // writers
7
12
  Writer,
8
13
  WriterOptions,
14
+ WriterOptionsType,
15
+ // misc
9
16
  DataType,
10
17
  SyncDataType,
11
18
  BatchableDataType,
@@ -25,31 +32,31 @@ export {
25
32
  document
26
33
  } from './lib/env-utils/globals';
27
34
 
35
+ export {mergeLoaderOptions} from './lib/option-utils/merge-loader-options';
36
+
28
37
  // LOADERS.GL-SPECIFIC WORKER UTILS
29
38
  export {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';
30
39
  export {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';
40
+ export {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';
31
41
 
32
42
  // PARSER UTILS
33
43
  export {parseJSON} from './lib/parser-utils/parse-json';
34
44
 
35
45
  // MEMORY COPY UTILS
36
46
  export {
37
- toArrayBuffer,
38
47
  sliceArrayBuffer,
39
48
  concatenateArrayBuffers,
40
49
  concatenateTypedArrays,
41
50
  compareArrayBuffers
42
51
  } from './lib/binary-utils/array-buffer-utils';
43
52
  export {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';
44
- export {
45
- copyPaddedArrayBufferToDataView,
46
- copyPaddedStringToDataView
47
- } from './lib/binary-utils/binary-copy-utils';
48
53
  export {
49
54
  padStringToByteAlignment,
50
55
  copyStringToDataView,
51
- copyBinaryToDataView
52
- } from './lib/binary-utils/encode-utils';
56
+ copyBinaryToDataView,
57
+ copyPaddedArrayBufferToDataView,
58
+ copyPaddedStringToDataView
59
+ } from './lib/binary-utils/dataview-copy-utils';
53
60
  export {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';
54
61
 
55
62
  // ITERATOR UTILS
@@ -75,24 +82,31 @@ export {JSONLoader} from './json-loader';
75
82
 
76
83
  // Node.js emulation (can be used in browser)
77
84
 
78
- // `path` replacement (avoids bundling big path polyfill)
79
- import * as path from './lib/path-utils/path';
80
- export {path};
81
-
82
85
  // Avoid direct use of `Buffer` which pulls in 50KB polyfill
83
- export {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';
86
+ export {isBuffer, toBuffer, toArrayBuffer} from './lib/binary-utils/memory-conversion-utils';
84
87
 
85
88
  // Note.js wrappers (can be safely imported, but not used in browser)
86
89
 
87
- // Use instead of importing 'util'
88
- import * as util from './lib/node/util';
89
- export {util};
90
- // TODO - remove
91
- export {promisify} from './lib/node/util';
90
+ // Use instead of importing 'util' to avoid node dependencies
91
+ export {promisify1, promisify2} from './lib/node/promisify';
92
+
93
+ // `path` replacement (avoids bundling big path polyfill)
94
+ import * as path from './lib/path-utils/path';
95
+ export {path};
92
96
 
93
- // Use instead of importing 'fs';`
97
+ // Use instead of importing 'fs' to avoid node dependencies`
94
98
  import * as fs from './lib/node/fs';
95
99
  export {fs};
96
100
 
101
+ // Use instead of importing 'stream' to avoid node dependencies`
102
+ import * as stream from './lib/node/stream';
103
+ export {stream};
104
+
97
105
  // EXPERIMENTAL
106
+ export type {ReadableFile} from './lib/filesystems/readable-file';
107
+ export {makeReadableFile} from './lib/filesystems/readable-file';
108
+
109
+ export type {WritableFile} from './lib/filesystems/writable-file';
110
+ export {makeWritableFile} from './lib/filesystems/writable-file';
111
+
98
112
  export {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';
@@ -1,14 +1,17 @@
1
- import type {LoaderWithParser} from './types';
1
+ import type {LoaderWithParser, LoaderOptions} from './types';
2
+ import type {Table, TableBatch} from '@loaders.gl/schema';
2
3
 
3
4
  // __VERSION__ is injected by babel-plugin-version-inline
4
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
5
6
  const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
6
7
 
8
+ export type JSONLoaderOptions = LoaderOptions;
9
+
7
10
  /**
8
11
  * A JSON Micro loader (minimal bundle size)
9
12
  * Alternative to `@loaders.gl/json`
10
13
  */
11
- export const JSONLoader = {
14
+ export const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions> = {
12
15
  name: 'JSON',
13
16
  id: 'json',
14
17
  module: 'json',
@@ -26,5 +29,3 @@ export const JSONLoader = {
26
29
  function parseTextSync(text) {
27
30
  return JSON.parse(text);
28
31
  }
29
-
30
- export const _typecheckJSONLoader: LoaderWithParser = JSONLoader;
@@ -1,46 +1,10 @@
1
1
  import {TypedArray} from '../../types';
2
- import {isBuffer, bufferToArrayBuffer} from './buffer-utils';
3
-
4
- /**
5
- * Convert an object to an array buffer
6
- */
7
- export function toArrayBuffer(data: any): ArrayBuffer {
8
- // Note: Should be called first, Buffers can trigger other detections below
9
- if (isBuffer(data)) {
10
- return bufferToArrayBuffer(data);
11
- }
12
-
13
- if (data instanceof ArrayBuffer) {
14
- return data;
15
- }
16
-
17
- // Careful - Node Buffers look like Uint8Arrays (keep after isBuffer)
18
- if (ArrayBuffer.isView(data)) {
19
- if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
20
- return data.buffer;
21
- }
22
- return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
23
- }
24
-
25
- if (typeof data === 'string') {
26
- const text = data;
27
- const uint8Array = new TextEncoder().encode(text);
28
- return uint8Array.buffer;
29
- }
30
-
31
- // HACK to support Blob polyfill
32
- if (data && typeof data === 'object' && data._toArrayBuffer) {
33
- return data._toArrayBuffer();
34
- }
35
-
36
- throw new Error('toArrayBuffer');
37
- }
38
2
 
39
3
  /**
40
4
  * compare two binary arrays for equality
41
- * @param {ArrayBuffer} a
42
- * @param {ArrayBuffer} b
43
- * @param {number} byteLength
5
+ * @param a
6
+ * @param b
7
+ * @param byteLength
44
8
  */
45
9
  export function compareArrayBuffers(
46
10
  arrayBuffer1: ArrayBuffer,
@@ -91,7 +55,7 @@ export function concatenateArrayBuffers(...sources: (ArrayBuffer | Uint8Array)[]
91
55
  /**
92
56
  * Concatenate arbitrary count of typed arrays
93
57
  * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays
94
- * @param {...*} arrays - list of arrays. All arrays should be the same type
58
+ * @param - list of arrays. All arrays should be the same type
95
59
  * @return A concatenated TypedArray
96
60
  */
97
61
  export function concatenateTypedArrays<T>(...typedArrays: T[]): T {