@loaders.gl/loader-utils 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 (252) 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 +13 -8
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +122 -26
  124. package/dist/json-loader.d.ts +4 -17
  125. package/dist/json-loader.d.ts.map +1 -1
  126. package/dist/json-loader.js +24 -18
  127. package/dist/lib/binary-utils/array-buffer-utils.d.ts +4 -8
  128. package/dist/lib/binary-utils/array-buffer-utils.d.ts.map +1 -1
  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 +15 -1
  134. package/dist/lib/binary-utils/get-first-characters.d.ts.map +1 -1
  135. package/dist/lib/binary-utils/get-first-characters.js +43 -25
  136. package/dist/lib/binary-utils/{buffer-utils.d.ts → memory-conversion-utils.d.ts} +3 -4
  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.js +58 -24
  140. package/dist/lib/env-utils/assert.js +12 -5
  141. package/dist/lib/env-utils/globals.d.ts +1 -1
  142. package/dist/lib/env-utils/globals.d.ts.map +1 -1
  143. package/dist/lib/env-utils/globals.js +23 -9
  144. package/dist/lib/filesystems/node-filesystem.d.ts +3 -2
  145. package/dist/lib/filesystems/node-filesystem.d.ts.map +1 -1
  146. package/dist/lib/filesystems/node-filesystem.js +72 -59
  147. package/dist/lib/filesystems/readable-file.d.ts +10 -0
  148. package/dist/lib/filesystems/readable-file.d.ts.map +1 -0
  149. package/dist/lib/filesystems/readable-file.js +25 -0
  150. package/dist/lib/filesystems/writable-file.d.ts +18 -0
  151. package/dist/lib/filesystems/writable-file.d.ts.map +1 -0
  152. package/dist/lib/filesystems/writable-file.js +48 -0
  153. package/dist/lib/iterators/async-iteration.js +49 -35
  154. package/dist/lib/iterators/text-iterators.js +56 -41
  155. package/dist/lib/node/buffer.browser.d.ts +12 -0
  156. package/dist/lib/node/buffer.browser.d.ts.map +1 -0
  157. package/dist/lib/node/buffer.browser.js +22 -0
  158. package/dist/lib/node/buffer.d.ts +3 -1
  159. package/dist/lib/node/buffer.d.ts.map +1 -1
  160. package/dist/lib/node/buffer.js +33 -25
  161. package/dist/lib/node/fs.d.ts +4 -2
  162. package/dist/lib/node/fs.d.ts.map +1 -1
  163. package/dist/lib/node/fs.js +47 -40
  164. package/dist/lib/node/promisify.d.ts +13 -0
  165. package/dist/lib/node/promisify.d.ts.map +1 -0
  166. package/dist/lib/node/promisify.js +22 -0
  167. package/dist/lib/node/stream.d.ts +4 -0
  168. package/dist/lib/node/stream.d.ts.map +1 -0
  169. package/dist/lib/node/stream.js +17 -0
  170. package/dist/lib/option-utils/merge-loader-options.d.ts +9 -0
  171. package/dist/lib/option-utils/merge-loader-options.d.ts.map +1 -0
  172. package/dist/lib/option-utils/merge-loader-options.js +27 -0
  173. package/dist/lib/parser-utils/parse-json.js +15 -8
  174. package/dist/lib/path-utils/file-aliases.js +40 -19
  175. package/dist/lib/path-utils/get-cwd.d.ts +2 -0
  176. package/dist/lib/path-utils/get-cwd.d.ts.map +1 -0
  177. package/dist/lib/path-utils/get-cwd.js +12 -0
  178. package/dist/lib/path-utils/path.d.ts +8 -0
  179. package/dist/lib/path-utils/path.d.ts.map +1 -1
  180. package/dist/lib/path-utils/path.js +173 -19
  181. package/dist/lib/request-utils/request-scheduler.d.ts +6 -6
  182. package/dist/lib/request-utils/request-scheduler.d.ts.map +1 -1
  183. package/dist/lib/request-utils/request-scheduler.js +127 -131
  184. package/dist/lib/worker-loader-utils/create-loader-worker.d.ts.map +1 -1
  185. package/dist/lib/worker-loader-utils/create-loader-worker.js +92 -96
  186. package/dist/lib/worker-loader-utils/encode-with-worker.d.ts +8 -0
  187. package/dist/lib/worker-loader-utils/encode-with-worker.d.ts.map +1 -0
  188. package/dist/lib/worker-loader-utils/encode-with-worker.js +21 -0
  189. package/dist/lib/worker-loader-utils/parse-with-worker.d.ts.map +1 -1
  190. package/dist/lib/worker-loader-utils/parse-with-worker.js +77 -60
  191. package/dist/types.d.ts +85 -72
  192. package/dist/types.d.ts.map +1 -1
  193. package/dist/types.js +3 -2
  194. package/dist/workers/json-worker.js +5 -4
  195. package/package.json +12 -19
  196. package/src/index.ts +32 -18
  197. package/src/json-loader.ts +5 -4
  198. package/src/lib/binary-utils/array-buffer-utils.ts +4 -40
  199. package/src/lib/binary-utils/{binary-copy-utils.ts → dataview-copy-utils.ts} +57 -5
  200. package/src/lib/binary-utils/get-first-characters.ts +17 -1
  201. package/src/lib/binary-utils/memory-conversion-utils.ts +53 -0
  202. package/src/lib/filesystems/readable-file.ts +30 -0
  203. package/src/lib/filesystems/writable-file.ts +44 -0
  204. package/src/lib/node/buffer.browser.ts +20 -0
  205. package/src/lib/node/buffer.ts +12 -11
  206. package/src/lib/node/fs.ts +16 -11
  207. package/src/lib/node/promisify.ts +70 -0
  208. package/src/lib/node/stream.ts +18 -0
  209. package/src/lib/option-utils/merge-loader-options.ts +35 -0
  210. package/src/lib/path-utils/get-cwd.ts +9 -0
  211. package/src/lib/path-utils/path.ts +138 -4
  212. package/src/lib/worker-loader-utils/create-loader-worker.ts +3 -2
  213. package/src/lib/worker-loader-utils/encode-with-worker.ts +21 -0
  214. package/src/lib/worker-loader-utils/parse-with-worker.ts +15 -2
  215. package/src/types.ts +156 -93
  216. package/dist/index.js.map +0 -1
  217. package/dist/json-loader.js.map +0 -1
  218. package/dist/lib/binary-utils/array-buffer-utils.js.map +0 -1
  219. package/dist/lib/binary-utils/binary-copy-utils.d.ts +0 -24
  220. package/dist/lib/binary-utils/binary-copy-utils.d.ts.map +0 -1
  221. package/dist/lib/binary-utils/binary-copy-utils.js.map +0 -1
  222. package/dist/lib/binary-utils/buffer-utils.d.ts.map +0 -1
  223. package/dist/lib/binary-utils/buffer-utils.js +0 -16
  224. package/dist/lib/binary-utils/buffer-utils.js.map +0 -1
  225. package/dist/lib/binary-utils/encode-utils.d.ts +0 -4
  226. package/dist/lib/binary-utils/encode-utils.d.ts.map +0 -1
  227. package/dist/lib/binary-utils/encode-utils.js +0 -31
  228. package/dist/lib/binary-utils/encode-utils.js.map +0 -1
  229. package/dist/lib/binary-utils/get-first-characters.js.map +0 -1
  230. package/dist/lib/binary-utils/memory-copy-utils.js.map +0 -1
  231. package/dist/lib/env-utils/assert.js.map +0 -1
  232. package/dist/lib/env-utils/globals.js.map +0 -1
  233. package/dist/lib/filesystems/node-filesystem.js.map +0 -1
  234. package/dist/lib/iterators/async-iteration.js.map +0 -1
  235. package/dist/lib/iterators/text-iterators.js.map +0 -1
  236. package/dist/lib/node/buffer.js.map +0 -1
  237. package/dist/lib/node/fs.js.map +0 -1
  238. package/dist/lib/node/util.d.ts +0 -5
  239. package/dist/lib/node/util.d.ts.map +0 -1
  240. package/dist/lib/node/util.js +0 -3
  241. package/dist/lib/node/util.js.map +0 -1
  242. package/dist/lib/parser-utils/parse-json.js.map +0 -1
  243. package/dist/lib/path-utils/file-aliases.js.map +0 -1
  244. package/dist/lib/path-utils/path.js.map +0 -1
  245. package/dist/lib/request-utils/request-scheduler.js.map +0 -1
  246. package/dist/lib/worker-loader-utils/create-loader-worker.js.map +0 -1
  247. package/dist/lib/worker-loader-utils/parse-with-worker.js.map +0 -1
  248. package/dist/types.js.map +0 -1
  249. package/dist/workers/json-worker.js.map +0 -1
  250. package/src/lib/binary-utils/buffer-utils.ts +0 -28
  251. package/src/lib/binary-utils/encode-utils.ts +0 -32
  252. package/src/lib/node/util.ts +0 -4
@@ -1,39 +1,53 @@
1
- import { concatenateArrayBuffers } from '../binary-utils/array-buffer-utils';
2
- export async function forEach(iterator, visitor) {
3
- while (true) {
4
- const {
5
- done,
6
- value
7
- } = await iterator.next();
8
-
9
- if (done) {
10
- iterator.return();
11
- return;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatenateStringsAsync = exports.concatenateArrayBuffersAsync = exports.forEach = void 0;
4
+ const array_buffer_utils_1 = require("../binary-utils/array-buffer-utils");
5
+ // GENERAL UTILITIES
6
+ /**
7
+ * Iterate over async iterator, without resetting iterator if end is not reached
8
+ * - forEach intentionally does not reset iterator if exiting loop prematurely
9
+ * so that iteration can continue in a second loop
10
+ * - It is recommended to use a standard for-await as last loop to ensure
11
+ * iterator gets properly reset
12
+ *
13
+ * TODO - optimize using sync iteration if argument is an Iterable?
14
+ *
15
+ * @param iterator
16
+ * @param visitor
17
+ */
18
+ async function forEach(iterator, visitor) {
19
+ // eslint-disable-next-line
20
+ while (true) {
21
+ const { done, value } = await iterator.next();
22
+ if (done) {
23
+ iterator.return();
24
+ return;
25
+ }
26
+ const cancel = visitor(value);
27
+ if (cancel) {
28
+ return;
29
+ }
12
30
  }
13
-
14
- const cancel = visitor(value);
15
-
16
- if (cancel) {
17
- return;
18
- }
19
- }
20
31
  }
21
- export async function concatenateArrayBuffersAsync(asyncIterator) {
22
- const arrayBuffers = [];
23
-
24
- for await (const chunk of asyncIterator) {
25
- arrayBuffers.push(chunk);
26
- }
27
-
28
- return concatenateArrayBuffers(...arrayBuffers);
32
+ exports.forEach = forEach;
33
+ // Breaking big data into iterable chunks, concatenating iterable chunks into big data objects
34
+ /**
35
+ * Concatenates all data chunks yielded by an (async) iterator
36
+ * This function can e.g. be used to enable atomic parsers to work on (async) iterator inputs
37
+ */
38
+ async function concatenateArrayBuffersAsync(asyncIterator) {
39
+ const arrayBuffers = [];
40
+ for await (const chunk of asyncIterator) {
41
+ arrayBuffers.push(chunk);
42
+ }
43
+ return (0, array_buffer_utils_1.concatenateArrayBuffers)(...arrayBuffers);
29
44
  }
30
- export async function concatenateStringsAsync(asyncIterator) {
31
- const strings = [];
32
-
33
- for await (const chunk of asyncIterator) {
34
- strings.push(chunk);
35
- }
36
-
37
- return strings.join('');
45
+ exports.concatenateArrayBuffersAsync = concatenateArrayBuffersAsync;
46
+ async function concatenateStringsAsync(asyncIterator) {
47
+ const strings = [];
48
+ for await (const chunk of asyncIterator) {
49
+ strings.push(chunk);
50
+ }
51
+ return strings.join('');
38
52
  }
39
- //# sourceMappingURL=async-iteration.js.map
53
+ exports.concatenateStringsAsync = concatenateStringsAsync;
@@ -1,46 +1,61 @@
1
- export async function* makeTextDecoderIterator(arrayBufferIterator, options = {}) {
2
- const textDecoder = new TextDecoder(undefined, options);
3
-
4
- for await (const arrayBuffer of arrayBufferIterator) {
5
- yield typeof arrayBuffer === 'string' ? arrayBuffer : textDecoder.decode(arrayBuffer, {
6
- stream: true
7
- });
8
- }
1
+ "use strict";
2
+ // TextDecoder iterators
3
+ // TextDecoder will keep any partial undecoded bytes between calls to `decode`
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.makeNumberedLineIterator = exports.makeLineIterator = exports.makeTextEncoderIterator = exports.makeTextDecoderIterator = void 0;
6
+ async function* makeTextDecoderIterator(arrayBufferIterator, options = {}) {
7
+ const textDecoder = new TextDecoder(undefined, options);
8
+ for await (const arrayBuffer of arrayBufferIterator) {
9
+ yield typeof arrayBuffer === 'string'
10
+ ? arrayBuffer
11
+ : textDecoder.decode(arrayBuffer, { stream: true });
12
+ }
9
13
  }
10
- export async function* makeTextEncoderIterator(textIterator) {
11
- const textEncoder = new TextEncoder();
12
-
13
- for await (const text of textIterator) {
14
- yield typeof text === 'string' ? textEncoder.encode(text) : text;
15
- }
14
+ exports.makeTextDecoderIterator = makeTextDecoderIterator;
15
+ // TextEncoder iterator
16
+ // TODO - this is not useful unless min chunk size is given
17
+ // TextEncoder will keep any partial undecoded bytes between calls to `encode`
18
+ // If iterator does not yield strings, assume arrayBuffer and return unencoded
19
+ async function* makeTextEncoderIterator(textIterator) {
20
+ const textEncoder = new TextEncoder();
21
+ for await (const text of textIterator) {
22
+ yield typeof text === 'string' ? textEncoder.encode(text) : text;
23
+ }
16
24
  }
17
- export async function* makeLineIterator(textIterator) {
18
- let previous = '';
19
-
20
- for await (const textChunk of textIterator) {
21
- previous += textChunk;
22
- let eolIndex;
23
-
24
- while ((eolIndex = previous.indexOf('\n')) >= 0) {
25
- const line = previous.slice(0, eolIndex + 1);
26
- previous = previous.slice(eolIndex + 1);
27
- yield line;
25
+ exports.makeTextEncoderIterator = makeTextEncoderIterator;
26
+ /**
27
+ * @param textIterator async iterable yielding strings
28
+ * @returns an async iterable over lines
29
+ * See http://2ality.com/2018/04/async-iter-nodejs.html
30
+ */
31
+ async function* makeLineIterator(textIterator) {
32
+ let previous = '';
33
+ for await (const textChunk of textIterator) {
34
+ previous += textChunk;
35
+ let eolIndex;
36
+ while ((eolIndex = previous.indexOf('\n')) >= 0) {
37
+ // line includes the EOL
38
+ const line = previous.slice(0, eolIndex + 1);
39
+ previous = previous.slice(eolIndex + 1);
40
+ yield line;
41
+ }
42
+ }
43
+ if (previous.length > 0) {
44
+ yield previous;
28
45
  }
29
- }
30
-
31
- if (previous.length > 0) {
32
- yield previous;
33
- }
34
46
  }
35
- export async function* makeNumberedLineIterator(lineIterator) {
36
- let counter = 1;
37
-
38
- for await (const line of lineIterator) {
39
- yield {
40
- counter,
41
- line
42
- };
43
- counter++;
44
- }
47
+ exports.makeLineIterator = makeLineIterator;
48
+ /**
49
+ * @param lineIterator async iterable yielding lines
50
+ * @returns async iterable yielding numbered lines
51
+ *
52
+ * See http://2ality.com/2018/04/async-iter-nodejs.html
53
+ */
54
+ async function* makeNumberedLineIterator(lineIterator) {
55
+ let counter = 1;
56
+ for await (const line of lineIterator) {
57
+ yield { counter, line };
58
+ counter++;
59
+ }
45
60
  }
46
- //# sourceMappingURL=text-iterators.js.map
61
+ exports.makeNumberedLineIterator = makeNumberedLineIterator;
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * Convert Buffer to ArrayBuffer
4
+ * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)
5
+ * @todo better data type
6
+ */
7
+ export declare function toArrayBuffer(buffer: any): any;
8
+ /**
9
+ * Convert (copy) ArrayBuffer to Buffer
10
+ */
11
+ export declare function toBuffer(binaryData: ArrayBuffer | ArrayBuffer | Buffer): Buffer;
12
+ //# sourceMappingURL=buffer.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer.browser.d.ts","sourceRoot":"","sources":["../../../src/lib/node/buffer.browser.ts"],"names":[],"mappings":";AAKA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,KAAA,OAEnC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAE/E"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.toBuffer = exports.toArrayBuffer = void 0;
5
+ // Isolates Buffer references to ensure they are only bundled under Node.js (avoids big webpack polyfill)
6
+ // this file is selected by the package.json "browser" field).
7
+ /**
8
+ * Convert Buffer to ArrayBuffer
9
+ * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)
10
+ * @todo better data type
11
+ */
12
+ function toArrayBuffer(buffer) {
13
+ return buffer;
14
+ }
15
+ exports.toArrayBuffer = toArrayBuffer;
16
+ /**
17
+ * Convert (copy) ArrayBuffer to Buffer
18
+ */
19
+ function toBuffer(binaryData) {
20
+ throw new Error('Buffer not supported in browser');
21
+ }
22
+ exports.toBuffer = toBuffer;
@@ -1,10 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  /**
3
3
  * Convert Buffer to ArrayBuffer
4
+ * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)
5
+ * @todo better data type
4
6
  */
5
7
  export declare function toArrayBuffer(buffer: any): any;
6
8
  /**
7
9
  * Convert (copy) ArrayBuffer to Buffer
8
10
  */
9
- export declare function toBuffer(binaryData: any): void | Buffer;
11
+ export declare function toBuffer(binaryData: ArrayBuffer | ArrayBuffer | Buffer): Buffer;
10
12
  //# sourceMappingURL=buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../src/lib/node/buffer.ts"],"names":[],"mappings":";AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,KAAA,OAOnC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,KAAA,iBAelC"}
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../src/lib/node/buffer.ts"],"names":[],"mappings":";AAKA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,KAAA,OAOnC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAc/E"}
@@ -1,28 +1,36 @@
1
- import { assert } from '../env-utils/assert';
2
- export function toArrayBuffer(buffer) {
3
- if (Buffer.isBuffer(buffer)) {
4
- const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
5
- return typedArray.slice().buffer;
6
- }
7
-
8
- return buffer;
9
- }
10
- export function toBuffer(binaryData) {
11
- if (ArrayBuffer.isView(binaryData)) {
12
- binaryData = binaryData.buffer;
13
- }
14
-
15
- if (typeof Buffer !== 'undefined' && binaryData instanceof ArrayBuffer) {
16
- const buffer = new Buffer(binaryData.byteLength);
17
- const view = new Uint8Array(binaryData);
18
-
19
- for (let i = 0; i < buffer.length; ++i) {
20
- buffer[i] = view[i];
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.toBuffer = exports.toArrayBuffer = void 0;
5
+ // Isolates Buffer references to ensure they are only bundled under Node.js (avoids big webpack polyfill)
6
+ // this file is selected by the package.json "browser" field).
7
+ /**
8
+ * Convert Buffer to ArrayBuffer
9
+ * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)
10
+ * @todo better data type
11
+ */
12
+ function toArrayBuffer(buffer) {
13
+ // TODO - per docs we should just be able to call buffer.buffer, but there are issues
14
+ if (Buffer.isBuffer(buffer)) {
15
+ const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
16
+ return typedArray.slice().buffer;
21
17
  }
22
-
23
18
  return buffer;
24
- }
25
-
26
- return assert(false);
27
19
  }
28
- //# sourceMappingURL=buffer.js.map
20
+ exports.toArrayBuffer = toArrayBuffer;
21
+ /**
22
+ * Convert (copy) ArrayBuffer to Buffer
23
+ */
24
+ function toBuffer(binaryData) {
25
+ if (Buffer.isBuffer(binaryData)) {
26
+ return binaryData;
27
+ }
28
+ if (ArrayBuffer.isView(binaryData)) {
29
+ binaryData = binaryData.buffer;
30
+ }
31
+ if (typeof Buffer !== 'undefined' && binaryData instanceof ArrayBuffer) {
32
+ return Buffer.from(binaryData);
33
+ }
34
+ throw new Error('toBuffer');
35
+ }
36
+ exports.toBuffer = toBuffer;
@@ -1,4 +1,5 @@
1
- export type { Stats } from 'fs';
1
+ import fs from 'fs';
2
+ export type { Stats, WriteStream } from 'fs';
2
3
  export declare let readdir: any;
3
4
  /** Wrapper for Node.js fs method */
4
5
  export declare let stat: any;
@@ -13,11 +14,12 @@ export declare let writeFileSync: any;
13
14
  /** Wrapper for Node.js fs method */
14
15
  export declare let open: any;
15
16
  /** Wrapper for Node.js fs method */
16
- export declare let close: any;
17
+ export declare let close: (fd: number) => Promise<void>;
17
18
  /** Wrapper for Node.js fs method */
18
19
  export declare let read: any;
19
20
  /** Wrapper for Node.js fs method */
20
21
  export declare let fstat: any;
22
+ export declare let createWriteStream: typeof fs.createWriteStream;
21
23
  export declare let isSupported: boolean;
22
24
  export declare function _readToArrayBuffer(fd: number, start: number, length: number): Promise<any>;
23
25
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/lib/node/fs.ts"],"names":[],"mappings":"AAKA,YAAY,EAAC,KAAK,EAAC,MAAM,IAAI,CAAC;AAE9B,eAAO,IAAI,OAAO,KAAA,CAAC;AACnB,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAEhB,oCAAoC;AACpC,eAAO,IAAI,QAAQ,KAAA,CAAC;AACpB,oCAAoC;AACpC,eAAO,IAAI,YAAY,KAAA,CAAC;AACxB,oCAAoC;AACpC,eAAO,IAAI,SAAS,KAAA,CAAC;AACrB,oCAAoC;AACpC,eAAO,IAAI,aAAa,KAAA,CAAC;AAIzB,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAChB,oCAAoC;AACpC,eAAO,IAAI,KAAK,KAAA,CAAC;AACjB,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAChB,oCAAoC;AACpC,eAAO,IAAI,KAAK,KAAA,CAAC;AAEjB,eAAO,IAAI,WAAW,SAAc,CAAC;AAmCrC,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAOjF"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/lib/node/fs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,YAAY,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,IAAI,CAAC;AAE3C,eAAO,IAAI,OAAO,KAAA,CAAC;AACnB,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAEhB,oCAAoC;AACpC,eAAO,IAAI,QAAQ,KAAA,CAAC;AACpB,oCAAoC;AACpC,eAAO,IAAI,YAAY,KAAA,CAAC;AACxB,oCAAoC;AACpC,eAAO,IAAI,SAAS,KAAA,CAAC;AACrB,oCAAoC;AACpC,eAAO,IAAI,aAAa,KAAA,CAAC;AAIzB,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAChB,oCAAoC;AACpC,eAAO,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAChD,oCAAoC;AACpC,eAAO,IAAI,IAAI,KAAA,CAAC;AAChB,oCAAoC;AACpC,eAAO,IAAI,KAAK,KAAA,CAAC;AAEjB,eAAO,IAAI,iBAAiB,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAE1D,eAAO,IAAI,WAAW,SAAc,CAAC;AAsCrC,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAOjF"}
@@ -1,42 +1,49 @@
1
- import fs from 'fs';
2
- import { toArrayBuffer } from './buffer';
3
- import { promisify } from './util';
4
- export let readdir;
5
- export let stat;
6
- export let readFile;
7
- export let readFileSync;
8
- export let writeFile;
9
- export let writeFileSync;
10
- export let open;
11
- export let close;
12
- export let read;
13
- export let fstat;
14
- export let isSupported = Boolean(fs);
15
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports._readToArrayBuffer = exports.isSupported = exports.createWriteStream = exports.fstat = exports.read = exports.close = exports.open = exports.writeFileSync = exports.writeFile = exports.readFileSync = exports.readFile = exports.stat = exports.readdir = void 0;
7
+ // fs wrapper (promisified fs + avoids bundling fs in browsers)
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const buffer_1 = require("./buffer");
10
+ const promisify_1 = require("./promisify");
11
+ exports.isSupported = Boolean(fs_1.default);
12
+ // paths
16
13
  try {
17
- readdir = promisify(fs.readdir);
18
- stat = promisify(fs.stat);
19
- readFile = promisify(fs.readFile);
20
- readFileSync = fs.readFileSync;
21
- writeFile = promisify(fs.writeFile);
22
- writeFileSync = fs.writeFileSync;
23
- open = promisify(fs.open);
24
- close = promisify(fs.close);
25
- read = promisify(fs.read);
26
- fstat = promisify(fs.fstat);
27
- isSupported = Boolean(fs);
28
- } catch {}
29
-
30
- export async function _readToArrayBuffer(fd, start, length) {
31
- const buffer = Buffer.alloc(length);
32
- const {
33
- bytesRead
34
- } = await read(fd, buffer, 0, length, start);
35
-
36
- if (bytesRead !== length) {
37
- throw new Error('fs.read failed');
38
- }
39
-
40
- return toArrayBuffer(buffer);
14
+ /** Wrapper for Node.js fs method */
15
+ exports.readdir = (0, promisify_1.promisify2)(fs_1.default.readdir);
16
+ /** Wrapper for Node.js fs method */
17
+ exports.stat = (0, promisify_1.promisify2)(fs_1.default.stat);
18
+ /** Wrapper for Node.js fs method */
19
+ exports.readFile = fs_1.default.readFile;
20
+ /** Wrapper for Node.js fs method */
21
+ exports.readFileSync = fs_1.default.readFileSync;
22
+ /** Wrapper for Node.js fs method */
23
+ exports.writeFile = (0, promisify_1.promisify3)(fs_1.default.writeFile);
24
+ /** Wrapper for Node.js fs method */
25
+ exports.writeFileSync = fs_1.default.writeFileSync;
26
+ // file descriptors
27
+ /** Wrapper for Node.js fs method */
28
+ exports.open = fs_1.default.open;
29
+ /** Wrapper for Node.js fs method */
30
+ exports.close = (fd) => new Promise((resolve, reject) => fs_1.default.close(fd, (err) => (err ? reject(err) : resolve())));
31
+ /** Wrapper for Node.js fs method */
32
+ exports.read = fs_1.default.read;
33
+ /** Wrapper for Node.js fs method */
34
+ exports.fstat = fs_1.default.fstat;
35
+ exports.createWriteStream = fs_1.default.createWriteStream;
36
+ exports.isSupported = Boolean(fs_1.default);
41
37
  }
42
- //# sourceMappingURL=fs.js.map
38
+ catch {
39
+ // ignore
40
+ }
41
+ async function _readToArrayBuffer(fd, start, length) {
42
+ const buffer = Buffer.alloc(length);
43
+ const { bytesRead } = await (0, exports.read)(fd, buffer, 0, length, start);
44
+ if (bytesRead !== length) {
45
+ throw new Error('fs.read failed');
46
+ }
47
+ return (0, buffer_1.toArrayBuffer)(buffer);
48
+ }
49
+ exports._readToArrayBuffer = _readToArrayBuffer;
@@ -0,0 +1,13 @@
1
+ /** Wrapper for Node.js promisify */
2
+ type Callback<A> = (error: unknown, args: A) => void;
3
+ /**
4
+ * Typesafe promisify implementation
5
+ * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34
6
+ * @param fn
7
+ * @returns
8
+ */
9
+ export declare function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A>;
10
+ export declare function promisify2<T1, T2, A>(fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void): (arg1: T1, arg2: T2) => Promise<A>;
11
+ export declare function promisify3<T1, T2, T3, A>(fn: (arg1: T1, arg2: T2, arg3: T3, cb: Callback<A>) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise<A>;
12
+ export {};
13
+ //# sourceMappingURL=promisify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promisify.d.ts","sourceRoot":"","sources":["../../../src/lib/node/promisify.ts"],"names":[],"mappings":"AAqCA,oCAAoC;AACpC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAKhG;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAClC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAChD,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAKpC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACtC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAC1D,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAK9C"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // @loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.promisify3 = exports.promisify2 = exports.promisify1 = void 0;
5
+ /**
6
+ * Typesafe promisify implementation
7
+ * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34
8
+ * @param fn
9
+ * @returns
10
+ */
11
+ function promisify1(fn) {
12
+ return (args) => new Promise((resolve, reject) => fn(args, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs))));
13
+ }
14
+ exports.promisify1 = promisify1;
15
+ function promisify2(fn) {
16
+ return (arg1, arg2) => new Promise((resolve, reject) => fn(arg1, arg2, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs))));
17
+ }
18
+ exports.promisify2 = promisify2;
19
+ function promisify3(fn) {
20
+ return (arg1, arg2, arg3) => new Promise((resolve, reject) => fn(arg1, arg2, arg3, (error, callbackArgs) => (error ? reject(error) : resolve(callbackArgs))));
21
+ }
22
+ exports.promisify3 = promisify3;
@@ -0,0 +1,4 @@
1
+ export type { Writable } from 'stream';
2
+ export declare let Transform: any;
3
+ export declare const isSupported: boolean;
4
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/lib/node/stream.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAErC,eAAO,IAAI,SAAS,KAAA,CAAC;AAErB,eAAO,MAAM,WAAW,SAAkB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.isSupported = exports.Transform = void 0;
8
+ const stream_1 = __importDefault(require("stream"));
9
+ exports.isSupported = Boolean(stream_1.default);
10
+ // paths
11
+ try {
12
+ /** Wrapper for Node.js fs method */
13
+ exports.Transform = stream_1.default.Transform;
14
+ }
15
+ catch {
16
+ // ignore
17
+ }
@@ -0,0 +1,9 @@
1
+ import { LoaderOptions } from '../../types';
2
+ /**
3
+ *
4
+ * @param baseOptions Can be undefined, in which case a fresh options object will be minted
5
+ * @param newOptions
6
+ * @returns
7
+ */
8
+ export declare function mergeLoaderOptions<Options extends LoaderOptions>(baseOptions: Options | undefined, newOptions: Options): Options;
9
+ //# sourceMappingURL=merge-loader-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-loader-options.d.ts","sourceRoot":"","sources":["../../../src/lib/option-utils/merge-loader-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,aAAa,EAC9D,WAAW,EAAE,OAAO,GAAG,SAAS,EAChC,UAAU,EAAE,OAAO,GAClB,OAAO,CAET"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.mergeLoaderOptions = void 0;
5
+ /**
6
+ *
7
+ * @param baseOptions Can be undefined, in which case a fresh options object will be minted
8
+ * @param newOptions
9
+ * @returns
10
+ */
11
+ function mergeLoaderOptions(baseOptions, newOptions) {
12
+ return mergeOptionsRecursively(baseOptions || {}, newOptions);
13
+ }
14
+ exports.mergeLoaderOptions = mergeLoaderOptions;
15
+ function mergeOptionsRecursively(baseOptions, newOptions) {
16
+ const options = { ...baseOptions };
17
+ for (const [key, newValue] of Object.entries(newOptions)) {
18
+ if (newValue && typeof newValue === 'object') {
19
+ options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key]);
20
+ // Object.assign(options[key] as object, newOptions[key]);
21
+ }
22
+ else {
23
+ options[key] = newOptions[key];
24
+ }
25
+ }
26
+ return options;
27
+ }
@@ -1,9 +1,16 @@
1
- import { getFirstCharacters } from '../binary-utils/get-first-characters';
2
- export function parseJSON(string) {
3
- try {
4
- return JSON.parse(string);
5
- } catch (_) {
6
- throw new Error("Failed to parse JSON from data starting with \"".concat(getFirstCharacters(string), "\""));
7
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseJSON = void 0;
4
+ const get_first_characters_1 = require("../binary-utils/get-first-characters");
5
+ /**
6
+ * Minimal JSON parser that throws more meaningful error messages
7
+ */
8
+ function parseJSON(string) {
9
+ try {
10
+ return JSON.parse(string);
11
+ }
12
+ catch (_) {
13
+ throw new Error(`Failed to parse JSON from data starting with "${(0, get_first_characters_1.getFirstCharacters)(string)}"`);
14
+ }
8
15
  }
9
- //# sourceMappingURL=parse-json.js.map
16
+ exports.parseJSON = parseJSON;