@loaders.gl/core 4.4.5 → 5.0.0-alpha.2

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 (122) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +800 -271
  3. package/dist/dist.min.js +4 -3
  4. package/dist/index.cjs +2191 -296
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/index.d.ts +8 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/iterators/make-iterator/make-stream-iterator.js +48 -9
  11. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  12. package/dist/lib/api/core-api.d.ts +6 -0
  13. package/dist/lib/api/core-api.d.ts.map +1 -0
  14. package/dist/lib/api/core-api.js +23 -0
  15. package/dist/lib/api/core-api.js.map +1 -0
  16. package/dist/lib/api/create-data-source.d.ts +2 -2
  17. package/dist/lib/api/create-data-source.d.ts.map +1 -1
  18. package/dist/lib/api/create-data-source.js +15 -14
  19. package/dist/lib/api/create-data-source.js.map +1 -1
  20. package/dist/lib/api/load-in-batches.d.ts +4 -4
  21. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  22. package/dist/lib/api/load-in-batches.js +1 -1
  23. package/dist/lib/api/load-in-batches.js.map +1 -1
  24. package/dist/lib/api/load-loader.d.ts +8 -0
  25. package/dist/lib/api/load-loader.d.ts.map +1 -0
  26. package/dist/lib/api/load-loader.js +110 -0
  27. package/dist/lib/api/load-loader.js.map +1 -0
  28. package/dist/lib/api/load.d.ts +2 -2
  29. package/dist/lib/api/load.d.ts.map +1 -1
  30. package/dist/lib/api/load.js +66 -3
  31. package/dist/lib/api/load.js.map +1 -1
  32. package/dist/lib/api/parse-file.d.ts +15 -0
  33. package/dist/lib/api/parse-file.d.ts.map +1 -0
  34. package/dist/lib/api/parse-file.js +70 -0
  35. package/dist/lib/api/parse-file.js.map +1 -0
  36. package/dist/lib/api/parse-in-batches.d.ts +2 -2
  37. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  38. package/dist/lib/api/parse-in-batches.js +6 -4
  39. package/dist/lib/api/parse-in-batches.js.map +1 -1
  40. package/dist/lib/api/parse-sync.d.ts +2 -2
  41. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  42. package/dist/lib/api/parse-sync.js +10 -1
  43. package/dist/lib/api/parse-sync.js.map +1 -1
  44. package/dist/lib/api/parse.d.ts +2 -2
  45. package/dist/lib/api/parse.d.ts.map +1 -1
  46. package/dist/lib/api/parse.js +28 -16
  47. package/dist/lib/api/parse.js.map +1 -1
  48. package/dist/lib/api/preload.d.ts +11 -0
  49. package/dist/lib/api/preload.d.ts.map +1 -0
  50. package/dist/lib/api/preload.js +14 -0
  51. package/dist/lib/api/preload.js.map +1 -0
  52. package/dist/lib/api/register-loaders.js +1 -1
  53. package/dist/lib/api/register-loaders.js.map +1 -1
  54. package/dist/lib/api/select-loader.d.ts.map +1 -1
  55. package/dist/lib/api/select-loader.js +48 -5
  56. package/dist/lib/api/select-loader.js.map +1 -1
  57. package/dist/lib/api/select-source.d.ts +3 -3
  58. package/dist/lib/api/select-source.d.ts.map +1 -1
  59. package/dist/lib/api/select-source.js +2 -5
  60. package/dist/lib/api/select-source.js.map +1 -1
  61. package/dist/lib/fetch/fetch-error-message.js +1 -1
  62. package/dist/lib/fetch/fetch-error-message.js.map +1 -1
  63. package/dist/lib/init.js +1 -1
  64. package/dist/lib/init.js.map +1 -1
  65. package/dist/lib/loader-utils/check-errors.js +1 -1
  66. package/dist/lib/loader-utils/check-errors.js.map +1 -1
  67. package/dist/lib/loader-utils/get-data.d.ts +4 -0
  68. package/dist/lib/loader-utils/get-data.d.ts.map +1 -1
  69. package/dist/lib/loader-utils/get-data.js +26 -0
  70. package/dist/lib/loader-utils/get-data.js.map +1 -1
  71. package/dist/lib/loader-utils/get-fetch-function.d.ts +1 -1
  72. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  73. package/dist/lib/loader-utils/get-fetch-function.js +1 -1
  74. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  75. package/dist/lib/loader-utils/loader-context.d.ts +1 -1
  76. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  77. package/dist/lib/loader-utils/loader-context.js +3 -1
  78. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  79. package/dist/lib/loader-utils/loggers.d.ts +19 -0
  80. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  81. package/dist/lib/loader-utils/loggers.js +28 -2
  82. package/dist/lib/loader-utils/loggers.js.map +1 -1
  83. package/dist/lib/loader-utils/option-defaults.d.ts +1 -0
  84. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  85. package/dist/lib/loader-utils/option-defaults.js +2 -0
  86. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  87. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  88. package/dist/lib/loader-utils/option-utils.js +50 -2
  89. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  90. package/dist/lib/utils/response-utils.js +3 -3
  91. package/dist/lib/utils/response-utils.js.map +1 -1
  92. package/dist/null-loader.d.ts.map +1 -1
  93. package/dist/null-loader.js +1 -1
  94. package/dist/null-loader.js.map +1 -1
  95. package/dist/null-worker-node.js +199 -36
  96. package/dist/null-worker.js +199 -36
  97. package/package.json +6 -6
  98. package/src/index.ts +10 -1
  99. package/src/iterators/make-iterator/make-stream-iterator.ts +47 -9
  100. package/src/lib/api/core-api.ts +25 -0
  101. package/src/lib/api/create-data-source.ts +24 -24
  102. package/src/lib/api/load-in-batches.ts +16 -11
  103. package/src/lib/api/load-loader.ts +152 -0
  104. package/src/lib/api/load.ts +98 -5
  105. package/src/lib/api/parse-file.ts +143 -0
  106. package/src/lib/api/parse-in-batches.ts +13 -5
  107. package/src/lib/api/parse-sync.ts +27 -2
  108. package/src/lib/api/parse.ts +49 -18
  109. package/src/lib/api/preload.ts +31 -0
  110. package/src/lib/api/register-loaders.ts +1 -1
  111. package/src/lib/api/select-loader.ts +57 -5
  112. package/src/lib/api/select-source.ts +7 -10
  113. package/src/lib/fetch/fetch-error-message.ts +1 -1
  114. package/src/lib/loader-utils/check-errors.ts +1 -1
  115. package/src/lib/loader-utils/get-data.ts +36 -0
  116. package/src/lib/loader-utils/get-fetch-function.ts +3 -2
  117. package/src/lib/loader-utils/loader-context.ts +5 -2
  118. package/src/lib/loader-utils/loggers.ts +28 -2
  119. package/src/lib/loader-utils/option-defaults.ts +2 -0
  120. package/src/lib/loader-utils/option-utils.ts +59 -2
  121. package/src/lib/utils/response-utils.ts +3 -3
  122. package/src/null-loader.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,SAAS,EAAC,kCAA+B;AACjD,OAAO,EAAC,UAAU,EAAC,mCAAgC;AAEnD,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAK9D,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,oCAAiC;AAC5E,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,mCAAgC;AAGvE,OAAO,EAAC,KAAK,EAAC,2BAAwB;AACtC,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,cAAc,EAAC,sCAAmC;AAE1D,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,aAAa,EAAC,qCAAkC;AAGxD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,kCAA+B;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,4BAAyB;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,4BAAyB;AAG5D,OAAO,EAAC,gBAAgB,EAAC,wCAAqC;AAC9D,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,mCAAgC;AAGtE,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAC,YAAY,EAAC,mDAAgD;AACrE,OAAO,EAAC,UAAU,EAAC,+CAA4C;AAG/D,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,yBAAsB;AAC3D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,yCAAsC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,gDAA6C;AAG7F,OAAO,EAAC,kBAAkB,EAAC,sCAAmC;AAM9D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAC,SAAS,EAAC,kCAA+B;AACjD,OAAO,EAAC,UAAU,EAAC,mCAAgC;AAEnD,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAK9D,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,oCAAiC;AAC5E,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,mCAAgC;AAGvE,OAAO,EAAC,KAAK,EAAC,2BAAwB;AACtC,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,cAAc,EAAC,sCAAmC;AAC1D,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,6BAA0B;AACvD,OAAO,EAAC,OAAO,EAAC,8BAA2B;AAE3C,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,aAAa,EAAC,qCAAkC;AAGxD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,kCAA+B;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,4BAAyB;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,4BAAyB;AAG5D,OAAO,EAAC,gBAAgB,EAAC,wCAAqC;AAC9D,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,mCAAgC;AAGtE,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAC,YAAY,EAAC,mDAAgD;AACrE,OAAO,EAAC,UAAU,EAAC,+CAA4C;AAG/D,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,yCAAsC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,gDAA6C;AAG7F,OAAO,EAAC,kBAAkB,EAAC,sCAAmC;AAM9D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAGlC,kCAAkC;AAClC,OAAO,EAAC,gBAAgB,EAAC,yBAAsB"}
package/dist/index.js CHANGED
@@ -13,8 +13,11 @@ export { registerLoaders } from "./lib/api/register-loaders.js";
13
13
  export { selectLoader, selectLoaderSync } from "./lib/api/select-loader.js";
14
14
  // LOADING (READING + PARSING)
15
15
  export { parse } from "./lib/api/parse.js";
16
+ export { parseFile } from "./lib/api/parse-file.js";
16
17
  export { parseSync } from "./lib/api/parse-sync.js";
17
18
  export { parseInBatches } from "./lib/api/parse-in-batches.js";
19
+ export { preload, preloadSync } from "./lib/api/preload.js";
20
+ export { coreApi } from "./lib/api/core-api.js";
18
21
  export { load } from "./lib/api/load.js";
19
22
  export { loadInBatches } from "./lib/api/load-in-batches.js";
20
23
  // ENCODING (ENCODING AND WRITING)
@@ -31,7 +34,7 @@ export { RequestScheduler } from '@loaders.gl/loader-utils';
31
34
  export { makeIterator } from "./iterators/make-iterator/make-iterator.js";
32
35
  export { makeStream } from "./iterators/make-stream/make-stream.js";
33
36
  // CORE LOADERS
34
- export { NullWorkerLoader, NullLoader } from "./null-loader.js";
37
+ export { NullLoader } from "./null-loader.js";
35
38
  export { JSONLoader } from '@loaders.gl/loader-utils';
36
39
  // EXPERIMENTAL
37
40
  export { fetchProgress as _fetchProgress } from "./lib/progress/fetch-progress.js";
@@ -47,4 +50,7 @@ export { forEach, concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils'
47
50
  export { makeTextDecoderIterator, makeTextEncoderIterator, makeLineIterator, makeNumberedLineIterator } from '@loaders.gl/loader-utils';
48
51
  // "JAVASCRIPT" UTILS - move to loader-utils?
49
52
  export { isPureObject, isPromise, isIterable, isAsyncIterable, isIterator, isResponse, isReadableStream, isWritableStream } from '@loaders.gl/loader-utils';
53
+ // DEPRECATED EXPORTS
54
+ /** @deprecated Use NullLoader. */
55
+ export { NullWorkerLoader } from "./null-loader.js";
50
56
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAoBpC,2BAA2B;AAC3B,OAAO,EAAC,SAAS,EAAC,kCAA+B;AACjD,OAAO,EAAC,UAAU,EAAC,mCAAgC;AAEnD,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAC9D,sDAAsD;AACtD,mEAAmE;AAEnE,gBAAgB;AAChB,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,oCAAiC;AAC5E,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,mCAAgC;AAEvE,8BAA8B;AAC9B,OAAO,EAAC,KAAK,EAAC,2BAAwB;AACtC,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,cAAc,EAAC,sCAAmC;AAE1D,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,aAAa,EAAC,qCAAkC;AAExD,kCAAkC;AAClC,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,kCAA+B;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,4BAAyB;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,4BAAyB;AAE5D,uBAAuB;AACvB,OAAO,EAAC,gBAAgB,EAAC,wCAAqC;AAC9D,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,mCAAgC;AAEtE,iEAAiE;AACjE,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,iBAAiB;AACjB,OAAO,EAAC,YAAY,EAAC,mDAAgD;AACrE,OAAO,EAAC,UAAU,EAAC,+CAA4C;AAE/D,eAAe;AACf,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,yBAAsB;AAC3D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,eAAe;AACf,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,yCAAsC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,gDAA6C;AAE7F,cAAc;AACd,OAAO,EAAC,kBAAkB,EAAC,sCAAmC;AAE9D,EAAE;AACF,qDAAqD;AACrD,EAAE;AAEF,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAsBpC,2BAA2B;AAC3B,OAAO,EAAC,SAAS,EAAC,kCAA+B;AACjD,OAAO,EAAC,UAAU,EAAC,mCAAgC;AAEnD,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAC9D,sDAAsD;AACtD,mEAAmE;AAEnE,gBAAgB;AAChB,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,oCAAiC;AAC5E,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,mCAAgC;AAEvE,8BAA8B;AAC9B,OAAO,EAAC,KAAK,EAAC,2BAAwB;AACtC,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,SAAS,EAAC,gCAA6B;AAC/C,OAAO,EAAC,cAAc,EAAC,sCAAmC;AAC1D,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,6BAA0B;AACvD,OAAO,EAAC,OAAO,EAAC,8BAA2B;AAE3C,OAAO,EAAC,IAAI,EAAC,0BAAuB;AACpC,OAAO,EAAC,aAAa,EAAC,qCAAkC;AAExD,kCAAkC;AAClC,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAC,kCAA+B;AAC5F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAC,4BAAyB;AACrF,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,4BAAyB;AAE5D,uBAAuB;AACvB,OAAO,EAAC,gBAAgB,EAAC,wCAAqC;AAC9D,OAAO,EAAC,YAAY,IAAI,aAAa,EAAC,mCAAgC;AAEtE,iEAAiE;AACjE,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,iBAAiB;AACjB,OAAO,EAAC,YAAY,EAAC,mDAAgD;AACrE,OAAO,EAAC,UAAU,EAAC,+CAA4C;AAE/D,eAAe;AACf,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEpD,eAAe;AACf,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,yCAAsC;AAC9E,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,gDAA6C;AAE7F,cAAc;AACd,OAAO,EAAC,kBAAkB,EAAC,sCAAmC;AAE9D,EAAE;AACF,qDAAqD;AACrD,EAAE;AAEF,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,qBAAqB;AACrB,kCAAkC;AAClC,OAAO,EAAC,gBAAgB,EAAC,yBAAsB"}
@@ -27,30 +27,69 @@ async function* makeBrowserStreamIterator(stream, options) {
27
27
  // In the browser, we first need to get a lock on the stream
28
28
  const reader = stream.getReader();
29
29
  let nextBatchPromise;
30
+ let streamFinished = false;
31
+ let streamReadFailed = false;
32
+ let iteratorFailed = false;
30
33
  try {
31
34
  // eslint-disable-next-line no-constant-condition
32
35
  while (true) {
33
36
  const currentBatchPromise = nextBatchPromise || reader.read();
34
- // Issue a read for an additional batch, while we await the next batch
35
- // Idea is to make fetching happen in parallel with processing / parsing
36
- if (options?._streamReadAhead) {
37
- nextBatchPromise = reader.read();
38
- }
37
+ nextBatchPromise = undefined;
39
38
  // Read from the stream
40
39
  // value is a Uint8Array
41
- const { done, value } = await currentBatchPromise;
40
+ let batch;
41
+ try {
42
+ batch = await currentBatchPromise;
43
+ }
44
+ catch (error) {
45
+ streamReadFailed = true;
46
+ throw error;
47
+ }
48
+ const { done, value } = batch;
42
49
  // Exit if we're done
43
50
  if (done) {
51
+ streamFinished = true;
44
52
  return;
45
53
  }
54
+ // Issue a read for an additional batch while the current batch is processed
55
+ if (options?._streamReadAhead) {
56
+ nextBatchPromise = reader.read();
57
+ // Observe a prefetched rejection even if the consumer stops before requesting it
58
+ void nextBatchPromise.catch(() => { });
59
+ }
46
60
  // Else yield the chunk
47
61
  yield toArrayBuffer(value);
48
62
  }
49
63
  }
50
64
  catch (error) {
51
- // TODO - examples makes it look like this should always be called,
52
- // but that generates exceptions so only call it if we do not reach the end
53
- reader.releaseLock();
65
+ iteratorFailed = true;
66
+ throw error;
67
+ }
68
+ finally {
69
+ let cleanupFailed = false;
70
+ let cleanupError;
71
+ if (!streamFinished && !streamReadFailed) {
72
+ try {
73
+ await reader.cancel();
74
+ }
75
+ catch (error) {
76
+ cleanupFailed = true;
77
+ cleanupError = error;
78
+ }
79
+ }
80
+ try {
81
+ reader.releaseLock();
82
+ }
83
+ catch (error) {
84
+ if (!cleanupFailed) {
85
+ cleanupFailed = true;
86
+ cleanupError = error;
87
+ }
88
+ }
89
+ // Preserve errors from iteration instead of replacing them with cleanup errors
90
+ if (!iteratorFailed && cleanupFailed) {
91
+ throw cleanupError;
92
+ }
54
93
  }
55
94
  }
56
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMlE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAiC,EACjC,OAA+B;IAE/B,OAAO,SAAS;QACd,CAAC,CAAC,yBAAyB,CAAC,MAAwB,EAAE,OAAO,CAAC;QAC9D,CAAC,CAAC,sBAAsB,CAAC,MAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,yBAAyB,CACvC,MAAsB,EACtB,OAA+B;IAE/B,4DAA4D;IAC5D,kDAAkD;IAClD,iCAAiC;IACjC,IAAI;IACJ,4DAA4D;IAC5D,8CAA8C;IAC9C,IAAI;IAEJ,4DAA4D;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAElC,IAAI,gBAA2E,CAAC;IAEhF,IAAI,CAAC;QACH,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;YACD,uBAAuB;YACvB,wBAAwB;YACxB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,mBAAmB,CAAC;YAChD,qBAAqB;YACrB,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,uBAAuB;YACvB,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mEAAmE;QACnE,2EAA2E;QAC3E,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,sBAAsB,CACpC,MAAgB,EAChB,OAA+B;IAE/B,oEAAoE;IACpE,uCAAuC;IACvC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC;IACjE,CAAC;AACH,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI"}
1
+ {"version":3,"file":"make-stream-iterator.js","sourceRoot":"","sources":["../../../src/iterators/make-iterator/make-stream-iterator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CoreAPI } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Shared Core API surface that can be injected into contexts and sources.
4
+ */
5
+ export declare const coreApi: CoreAPI;
6
+ //# sourceMappingURL=core-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-api.d.ts","sourceRoot":"","sources":["../../../src/lib/api/core-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAStD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAQpB,CAAC"}
@@ -0,0 +1,23 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { fetchFile } from "../fetch/fetch-file.js";
5
+ import { parse } from "./parse.js";
6
+ import { parseFile } from "./parse-file.js";
7
+ import { parseSync } from "./parse-sync.js";
8
+ import { parseInBatches } from "./parse-in-batches.js";
9
+ import { load } from "./load.js";
10
+ import { loadInBatches } from "./load-in-batches.js";
11
+ /**
12
+ * Shared Core API surface that can be injected into contexts and sources.
13
+ */
14
+ export const coreApi = Object.freeze({
15
+ fetchFile,
16
+ parse,
17
+ parseFile,
18
+ parseSync,
19
+ parseInBatches,
20
+ load,
21
+ loadInBatches
22
+ });
23
+ //# sourceMappingURL=core-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-api.js","sourceRoot":"","sources":["../../../src/lib/api/core-api.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,+BAA4B;AAC9C,OAAO,EAAC,KAAK,EAAC,mBAAgB;AAC9B,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAClD,OAAO,EAAC,IAAI,EAAC,kBAAe;AAC5B,OAAO,EAAC,aAAa,EAAC,6BAA0B;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY,MAAM,CAAC,MAAM,CAAC;IAC5C,SAAS;IACT,KAAK;IACL,SAAS;IACT,SAAS;IACT,cAAc;IACd,IAAI;IACJ,aAAa;CACd,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Source, SourceArrayOptionsType, SourceArrayDataSourceType } from '@loaders.gl/loader-utils';
1
+ import { SourceLoader, SourceArrayOptionsType, SourceArrayDataSourceType } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Creates a source from a service
4
4
  * If type is not supplied, will try to automatically detect the the
@@ -6,5 +6,5 @@ import { Source, SourceArrayOptionsType, SourceArrayDataSourceType } from '@load
6
6
  * @param type type of source. if not known, set to 'auto'
7
7
  * @returns an DataSource instance
8
8
  */
9
- export declare function createDataSource<SourceArrayT extends Source[]>(data: string | Blob, sources: Readonly<SourceArrayT>, options: Readonly<SourceArrayOptionsType<SourceArrayT>>): SourceArrayDataSourceType<SourceArrayT>;
9
+ export declare function createDataSource<SourceArrayT extends SourceLoader[]>(data: unknown, sources: Readonly<SourceArrayT>, options: Readonly<SourceArrayOptionsType<SourceArrayT>>): SourceArrayDataSourceType<SourceArrayT>;
10
10
  //# sourceMappingURL=create-data-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-source.d.ts","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,sBAAsB,EAAE,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAEnG;;;;;;GAMG;AAGH,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,MAAM,EAAE,EAC5D,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,GACtD,yBAAyB,CAAC,YAAY,CAAC,CAQzC"}
1
+ {"version":3,"file":"create-data-source.d.ts","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC;;;;;;GAMG;AAGH,wBAAgB,gBAAgB,CAAC,YAAY,SAAS,YAAY,EAAE,EAClE,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,GACtD,yBAAyB,CAAC,YAAY,CAAC,CAmBzC"}
@@ -1,6 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { coreApi } from "./core-api.js";
5
+ import { selectLoaderSync } from "./select-loader.js";
4
6
  /**
5
7
  * Creates a source from a service
6
8
  * If type is not supplied, will try to automatically detect the the
@@ -11,23 +13,22 @@
11
13
  // DataSourceOptionsT extends DataSourceOptions = DataSourceOptions,
12
14
  // DataSourceT extends DataSource = DataSource
13
15
  export function createDataSource(data, sources, options) {
14
- const type = options?.core?.type || options.type || 'auto';
15
- const source = type === 'auto' ? selectSource(data, sources) : getSourceOfType(type, sources);
16
+ const resolvedOptions = (options || {});
17
+ const type = resolvedOptions?.core?.type || resolvedOptions.type || 'auto';
18
+ const source = sources.length === 1
19
+ ? sources[0]
20
+ : type === 'auto'
21
+ ? selectLoaderSync(data, sources, {
22
+ // `createDataSource` supports non-fetch inputs such as in-memory tables.
23
+ // Selection remains best-effort for those cases.
24
+ ...resolvedOptions,
25
+ core: { ...resolvedOptions?.core, type: 'auto' }
26
+ })
27
+ : getSourceOfType(type, sources);
16
28
  if (!source) {
17
29
  throw new Error('Not a valid source type');
18
30
  }
19
- return source.createDataSource(data, options);
20
- }
21
- // TODO - use selectSource...
22
- /** Guess service type from URL */
23
- function selectSource(url, sources) {
24
- for (const service of sources) {
25
- // @ts-expect-error
26
- if (service.testURL && service.testURL(url)) {
27
- return service;
28
- }
29
- }
30
- return null;
31
+ return source.createDataSource(data, resolvedOptions, coreApi);
31
32
  }
32
33
  /** Guess service type from URL */
33
34
  function getSourceOfType(type, sources) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-source.js","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC;;;;;;GAMG;AACH,oEAAoE;AACpE,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAC9B,IAAmB,EACnB,OAA+B,EAC/B,OAAuD;IAEvD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,IAAK,OAAO,CAAC,IAA0B,IAAI,MAAM,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,6BAA6B;AAE7B,kCAAkC;AAClC,SAAS,YAAY,CACnB,GAAkB,EAClB,OAA+B;IAE/B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,mBAAmB;QACnB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kCAAkC;AAClC,SAAS,eAAe,CAAC,IAAY,EAAE,OAA2B;IAChE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"create-data-source.js","sourceRoot":"","sources":["../../../src/lib/api/create-data-source.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,OAAO,EAAC,sBAAmB;AACnC,OAAO,EAAC,gBAAgB,EAAC,2BAAwB;AAEjD;;;;;;GAMG;AACH,oEAAoE;AACpE,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAC9B,IAAa,EACb,OAA+B,EAC/B,OAAuD;IAEvD,MAAM,eAAe,GAAG,CAAC,OAAO,IAAI,EAAE,CAAyC,CAAC;IAChF,MAAM,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,IAAK,eAAe,CAAC,IAA0B,IAAI,MAAM,CAAC;IAClG,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAE,gBAAgB,CAAC,IAAa,EAAE,OAAoC,EAAE;gBACrE,yEAAyE;gBACzE,iDAAiD;gBACjD,GAAG,eAAe;gBAClB,IAAI,EAAE,EAAC,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC;aAC/C,CAAiC;YACpC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAqB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAED,kCAAkC;AAClC,SAAS,eAAe,CAAC,IAAY,EAAE,OAAiC;IACtE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,9 +1,9 @@
1
- import type { LoaderWithParser, LoaderOptions, LoaderContext, LoaderBatchType, LoaderOptionsType } from '@loaders.gl/loader-utils';
1
+ import type { Loader, LoaderOptions, LoaderContext, LoaderBatchType, LoaderOptionsType, LoaderOptionsWithShape, LoaderShapeType } from '@loaders.gl/loader-utils';
2
2
  type FileType = string | File | Blob | Response | (string | File | Blob | Response)[] | FileList;
3
3
  /**
4
4
  * Parses `data` synchronously using a specified loader
5
5
  */
6
- export declare function loadInBatches<LoaderT extends LoaderWithParser, OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>>(files: FileType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;
6
+ export declare function loadInBatches<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(files: FileType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<AsyncIterable<LoaderBatchType<LoaderT>>>;
7
7
  /**
8
8
  * Parses `data` using a specified loader
9
9
  * @param data
@@ -11,7 +11,7 @@ export declare function loadInBatches<LoaderT extends LoaderWithParser, OptionsT
11
11
  * @param options
12
12
  * @param context
13
13
  */
14
- export declare function loadInBatches(files: FileType, loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext): Promise<AsyncIterable<unknown>>;
15
- export declare function loadInBatches(files: FileType[] | FileList, loaders?: LoaderWithParser | LoaderWithParser[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext): Promise<AsyncIterable<unknown>>[];
14
+ export declare function loadInBatches(files: FileType, loaders?: Loader | Loader[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext): Promise<AsyncIterable<unknown>>;
15
+ export declare function loadInBatches(files: FileType[] | FileList, loaders?: Loader | Loader[] | LoaderOptions, options?: LoaderOptions, context?: LoaderContext): Promise<AsyncIterable<unknown>>[];
16
16
  export {};
17
17
  //# sourceMappingURL=load-in-batches.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EAGb,eAAe,EACf,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAMlC,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC;AAEjG;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,SAAS,gBAAgB,EAChC,QAAQ,SAAS,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAE3D,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAC/D,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAC/D,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"load-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EAGb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAMlC,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC;AAEjG;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EAC3C,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC"}
@@ -22,7 +22,7 @@ export function loadInBatches(files, loaders, options, context) {
22
22
  return loadOneFileInBatches(files, loadersArray, options || {}, fetch);
23
23
  }
24
24
  // Multiple URLs / files
25
- const promises = files.map((file) => loadOneFileInBatches(file, loadersArray, options || {}, fetch));
25
+ const promises = files.map(file => loadOneFileInBatches(file, loadersArray, options || {}, fetch));
26
26
  // No point in waiting here for all responses before starting to stream individual streams?
27
27
  return promises;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAWpC,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AAEpE,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAsClD,MAAM,UAAU,aAAa,CAC3B,KAAuC,EACvC,OAA+D,EAC/D,OAAuB,EACvB,OAAuB;IAEvB,IAAI,YAA+D,CAAC;IACpE,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;QAChE,OAAO,GAAG,OAAwB,CAAC;QACnC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,OAA4D,CAAC;IAC9E,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAE9C,kBAAkB;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,oBAAoB,CAAC,KAAK,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,oBAAoB,CAAC,IAAI,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAChE,CAAC;IAEF,2FAA2F;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAc,EACd,OAA8C,EAC9C,OAAsB,EACtB,KAAgB;IAEhB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,sBAAsB;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YAClD,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,sBAAsB;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC;QACnE,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"load-in-batches.js","sourceRoot":"","sources":["../../../src/lib/api/load-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAapC,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AAEpE,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAyClD,MAAM,UAAU,aAAa,CAC3B,KAAuC,EACvC,OAA2C,EAC3C,OAAuB,EACvB,OAAuB;IAEvB,IAAI,YAA2C,CAAC;IAChD,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;QAChE,OAAO,GAAG,OAAwB,CAAC;QACnC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,OAAwC,CAAC;IAC1D,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAE9C,kBAAkB;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,oBAAoB,CAAC,KAAK,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChC,oBAAoB,CAAC,IAAI,EAAE,YAAa,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAChE,CAAC;IAEF,2FAA2F;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAc,EACd,OAA0B,EAC1B,OAAsB,EACtB,KAAgB;IAEhB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,sBAAsB;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YAClD,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,sBAAsB;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC;QACnE,CAAC,CAAC,MAAM,cAAc,CAAC,IAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Loader, LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ /** Gets a parser-bearing implementation for a loader, loading it if needed. */
3
+ export declare function getLoaderImplementation(loader: Loader, options?: LoaderOptions, url?: string): Promise<LoaderWithParser>;
4
+ /** Gets a cached parser-bearing implementation for a loader without loading it. */
5
+ export declare function getLoaderImplementationSync(loader: Loader): LoaderWithParser | null;
6
+ /** Returns true when a loader object already includes parser methods. */
7
+ export declare function isLoaderWithParser(loader: Loader): loader is LoaderWithParser;
8
+ //# sourceMappingURL=load-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKtF,+EAA+E;AAC/E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAOnF;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAW7E"}
@@ -0,0 +1,110 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const loaderImplementationPromises = new Map();
5
+ const loaderImplementations = new Map();
6
+ /** Gets a parser-bearing implementation for a loader, loading it if needed. */
7
+ export async function getLoaderImplementation(loader, options, url) {
8
+ if (isLoaderWithParser(loader)) {
9
+ return loader;
10
+ }
11
+ const implementationCacheKey = getLoaderImplementationCacheKey(loader, options);
12
+ const loaderImplementation = loaderImplementations.get(loader)?.get(implementationCacheKey);
13
+ if (loaderImplementation) {
14
+ return loaderImplementation;
15
+ }
16
+ let loaderImplementationPromisesForLoader = loaderImplementationPromises.get(loader);
17
+ if (!loaderImplementationPromisesForLoader) {
18
+ loaderImplementationPromisesForLoader = new Map();
19
+ loaderImplementationPromises.set(loader, loaderImplementationPromisesForLoader);
20
+ }
21
+ let loaderImplementationPromise = loaderImplementationPromisesForLoader.get(implementationCacheKey);
22
+ if (!loaderImplementationPromise) {
23
+ loaderImplementationPromise = resolveLoaderImplementation(loader, options, url)
24
+ .then(implementation => {
25
+ let loaderImplementationsForLoader = loaderImplementations.get(loader);
26
+ if (!loaderImplementationsForLoader) {
27
+ loaderImplementationsForLoader = new Map();
28
+ loaderImplementations.set(loader, loaderImplementationsForLoader);
29
+ }
30
+ loaderImplementationsForLoader.set(implementationCacheKey, implementation);
31
+ return implementation;
32
+ })
33
+ .catch(error => {
34
+ loaderImplementationPromisesForLoader.delete(implementationCacheKey);
35
+ if (loaderImplementationPromisesForLoader.size === 0) {
36
+ loaderImplementationPromises.delete(loader);
37
+ }
38
+ throw error;
39
+ });
40
+ loaderImplementationPromisesForLoader.set(implementationCacheKey, loaderImplementationPromise);
41
+ }
42
+ return await loaderImplementationPromise;
43
+ }
44
+ /** Gets a cached parser-bearing implementation for a loader without loading it. */
45
+ export function getLoaderImplementationSync(loader) {
46
+ if (isLoaderWithParser(loader)) {
47
+ return loader;
48
+ }
49
+ const implementationCacheKey = getLoaderImplementationCacheKey(loader);
50
+ return loaderImplementations.get(loader)?.get(implementationCacheKey) || null;
51
+ }
52
+ /** Returns true when a loader object already includes parser methods. */
53
+ export function isLoaderWithParser(loader) {
54
+ const candidate = loader;
55
+ return Boolean(candidate.parse ||
56
+ candidate.parseSync ||
57
+ candidate.parseInBatches ||
58
+ candidate.parseText ||
59
+ candidate.parseTextSync ||
60
+ candidate.parseFile ||
61
+ candidate.parseFileInBatches);
62
+ }
63
+ /** Resolves a parser-bearing implementation through loader preload or the test import fallback. */
64
+ async function resolveLoaderImplementation(loader, options, url) {
65
+ if (loader.preload) {
66
+ const preloadedLoader = await loader.preload(url || '', options);
67
+ if (isLoaderWithParser(preloadedLoader)) {
68
+ return preloadedLoader;
69
+ }
70
+ throw new Error(`${loader.id} loader preload() did not return a parser-bearing loader`);
71
+ }
72
+ const implementationSpecifier = getLoaderImplementationSpecifier(loader, options);
73
+ return await importLoaderImplementation(implementationSpecifier, loader.id);
74
+ }
75
+ /** Gets the dynamic implementation specifier for the test worker fallback path. */
76
+ function getLoaderImplementationSpecifier(loader, options) {
77
+ const workerType = options?._workerType || options?.core?._workerType;
78
+ if (workerType === 'test') {
79
+ const sourcePath = `modules/${loader.module}/src/${loader.id}-loader.ts`;
80
+ if (typeof window !== 'undefined') {
81
+ return `/${sourcePath}`;
82
+ }
83
+ if (typeof process !== 'undefined' && process.cwd) {
84
+ return new URL(sourcePath, `file://${process.cwd()}/`).toString();
85
+ }
86
+ return sourcePath;
87
+ }
88
+ throw new Error(`${loader.id} loader does not provide a parser implementation. Import a parser-bearing loader directly, or use preload() before parse/load.`);
89
+ }
90
+ /** Gets the cache key for option-selected parser implementations. */
91
+ function getLoaderImplementationCacheKey(loader, options) {
92
+ const loaderOptions = options?.[loader.id];
93
+ const defaultLoaderOptions = loader.options?.[loader.id];
94
+ return String(loaderOptions?.backend || defaultLoaderOptions?.backend || '');
95
+ }
96
+ /** Imports a module and finds the parser-bearing loader implementation with the requested id. */
97
+ async function importLoaderImplementation(implementationSpecifier, loaderId) {
98
+ const moduleExports = await import(
99
+ /* webpackIgnore: true */ /* @vite-ignore */ implementationSpecifier);
100
+ for (const exportValue of Object.values(moduleExports)) {
101
+ if (exportValue &&
102
+ typeof exportValue === 'object' &&
103
+ exportValue.id === loaderId &&
104
+ isLoaderWithParser(exportValue)) {
105
+ return exportValue;
106
+ }
107
+ }
108
+ throw new Error(`Could not find parser implementation for ${loaderId} in ${implementationSpecifier}`);
109
+ }
110
+ //# sourceMappingURL=load-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-loader.js","sourceRoot":"","sources":["../../../src/lib/api/load-loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType } from '@loaders.gl/loader-utils';
1
+ import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsWithShape, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType } from '@loaders.gl/loader-utils';
2
2
  /**
3
3
  * Parses `data` using a specified loader
4
4
  * Note: Load does duplicate a lot of parse.
@@ -8,7 +8,7 @@ import type { DataType, Loader, LoaderContext, LoaderOptions, LoaderOptionsType,
8
8
  * @param options
9
9
  * @param context
10
10
  */
11
- export declare function load<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>>(url: string | DataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
11
+ export declare function load<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(url: string | DataType, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
12
12
  export declare function load<LoaderArrayT extends Loader[], OptionsT extends LoaderOptions = LoaderArrayOptionsType<LoaderArrayT>>(url: string | DataType, loaders: LoaderArrayT, options?: OptionsT, context?: LoaderContext): Promise<LoaderArrayReturnType<LoaderArrayT>>;
13
13
  /**
14
14
  * Loads data asynchronously by matching a pre-registered loader
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAQlC;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CACxB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAE3D,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC,wBAAsB,IAAI,CACxB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAclC;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CACxB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC,wBAAsB,IAAI,CACxB,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC"}
@@ -1,11 +1,17 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isBlob } from '@loaders.gl/loader-utils';
4
+ import { isBlob, isSourceLoader } from '@loaders.gl/loader-utils';
5
5
  import { isLoaderObject } from "../loader-utils/normalize-loader.js";
6
6
  import { getFetchFunction } from "../loader-utils/get-fetch-function.js";
7
7
  import { normalizeLoaderOptions } from "../loader-utils/option-utils.js";
8
+ import { fetchFile } from "../fetch/fetch-file.js";
8
9
  import { parse } from "./parse.js";
10
+ import { parseFile } from "./parse-file.js";
11
+ import { parseSync } from "./parse-sync.js";
12
+ import { parseInBatches } from "./parse-in-batches.js";
13
+ import { loadInBatches } from "./load-in-batches.js";
14
+ import { selectLoader } from "./select-loader.js";
9
15
  // export async function load(url: string | DataType, loaders: LoaderOptions): Promise<any>;
10
16
  // implementation signature
11
17
  export async function load(url, loaders, options, context) {
@@ -21,6 +27,52 @@ export async function load(url, loaders, options, context) {
21
27
  resolvedLoaders = loaders;
22
28
  resolvedOptions = options;
23
29
  }
30
+ if (!Array.isArray(resolvedLoaders) && isSourceLoader(resolvedLoaders)) {
31
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders, url, resolvedOptions);
32
+ const runtimeCoreApi = {
33
+ fetchFile,
34
+ parse,
35
+ parseFile,
36
+ parseSync,
37
+ parseInBatches,
38
+ load,
39
+ loadInBatches
40
+ };
41
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
42
+ }
43
+ if (Array.isArray(resolvedLoaders) &&
44
+ resolvedLoaders.length === 1 &&
45
+ isSourceLoader(resolvedLoaders[0])) {
46
+ const sourceLoader = await resolveSourceLoader(resolvedLoaders[0], url, resolvedOptions);
47
+ const runtimeCoreApi = {
48
+ fetchFile,
49
+ parse,
50
+ parseFile,
51
+ parseSync,
52
+ parseInBatches,
53
+ load,
54
+ loadInBatches
55
+ };
56
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), runtimeCoreApi);
57
+ }
58
+ if (typeof url === 'string' || isBlob(url)) {
59
+ const selectedLoader = await selectLoader(url, resolvedLoaders, {
60
+ ...resolvedOptions,
61
+ core: { ...resolvedOptions?.core, nothrow: true }
62
+ });
63
+ if (selectedLoader && isSourceLoader(selectedLoader)) {
64
+ const sourceLoader = await resolveSourceLoader(selectedLoader, url, resolvedOptions);
65
+ return sourceLoader.createDataSource(url, (resolvedOptions || {}), {
66
+ fetchFile,
67
+ parse,
68
+ parseFile,
69
+ parseSync,
70
+ parseInBatches,
71
+ load,
72
+ loadInBatches
73
+ });
74
+ }
75
+ }
24
76
  // Select fetch function
25
77
  const fetch = getFetchFunction(resolvedOptions);
26
78
  // at this point, `url` could be already loaded binary data
@@ -50,7 +102,18 @@ export async function load(url, loaders, options, context) {
50
102
  // Data is loaded (at least we have a `Response` object) so time to hand over to `parse`
51
103
  // return await parse(data, loaders as Loader[], options);
52
104
  return Array.isArray(resolvedLoaders)
53
- ? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload
54
- : await parse(data, resolvedLoaders, resolvedOptions); // single loader overload
105
+ ? await parse(data, resolvedLoaders, resolvedOptions, context) // loader array overload
106
+ : await parse(data, resolvedLoaders, resolvedOptions, context); // single loader overload
107
+ }
108
+ /** Resolves a lightweight source loader into its runtime implementation when necessary. */
109
+ async function resolveSourceLoader(loader, url, options) {
110
+ if (!loader.preload) {
111
+ return loader;
112
+ }
113
+ const sourceLoader = await loader.preload(typeof url === 'string' ? url : '', options);
114
+ if (!isSourceLoader(sourceLoader)) {
115
+ throw new Error(`${loader.id} source loader preload() did not return a runtime source loader`);
116
+ }
117
+ return sourceLoader;
55
118
  }
56
119
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAYpC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,4CAAyC;AAChE,OAAO,EAAC,gBAAgB,EAAC,8CAA2C;AACpE,OAAO,EAAC,sBAAsB,EAAC,wCAAqC;AAEpE,OAAO,EAAC,KAAK,EAAC,mBAAgB;AA0C9B,4FAA4F;AAE5F,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,GAAsB,EACtB,OAAkC,EAClC,OAAuC,EACvC,OAAuB;IAEvB,IAAI,eAAkC,CAAC;IACvC,IAAI,eAA0C,CAAC;IAE/C,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,eAAe,GAAG,EAAE,CAAC;QACrB,eAAe,GAAG,OAAwB,CAAC;QAC3C,OAAO,GAAG,SAAS,CAAC,CAAC,2CAA2C;IAClE,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,OAA4B,CAAC;QAC/C,eAAe,GAAG,OAAwB,CAAC;IAC7C,CAAC;IAED,wBAAwB;IACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,iCAAiC;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,oFAAoF;IACtF,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,mDAAmD;QACnD,2EAA2E;QAC3E,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACrC,eAAe,GAAG;gBAChB,GAAG,eAAe;gBAClB,IAAI,EAAE;oBACJ,GAAG,eAAe,EAAE,IAAI;oBACxB,OAAO,EAAE,GAAG;iBACb;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,0DAA0D;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACnC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,wBAAwB;QAC9E,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB;AACpF,CAAC"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/lib/api/load.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Loader, LoaderContext, LoaderOptions, LoaderOptionsWithShape, LoaderOptionsType, LoaderShapeType, LoaderReturnType, LoaderArrayOptionsType, LoaderArrayReturnType, ReadableFile } from '@loaders.gl/loader-utils';
2
+ /**
3
+ * Parses a random access readable file asynchronously using the supplied loader.
4
+ */
5
+ export declare function parseFile<LoaderT extends Loader, OptionsT extends LoaderOptions = LoaderOptionsWithShape<LoaderOptionsType<LoaderT>, LoaderShapeType<LoaderT>>>(file: ReadableFile, loader: LoaderT, options?: OptionsT, context?: LoaderContext): Promise<LoaderReturnType<LoaderT>>;
6
+ /**
7
+ * Parses a random access readable file asynchronously by matching one of the supplied loaders.
8
+ */
9
+ export declare function parseFile<LoaderArrayT extends Loader[], OptionsT extends LoaderOptions = LoaderArrayOptionsType<LoaderArrayT>>(file: ReadableFile, loaders: LoaderArrayT, options?: OptionsT, context?: LoaderContext): Promise<LoaderArrayReturnType<LoaderArrayT>>;
10
+ /**
11
+ * Parses a random access readable file asynchronously by matching a pre-registered loader.
12
+ * @deprecated Loader registration is deprecated, use parseFile(file, loaders, options) instead.
13
+ */
14
+ export declare function parseFile(file: ReadableFile, options?: LoaderOptions): Promise<unknown>;
15
+ //# sourceMappingURL=parse-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-file.d.ts","sourceRoot":"","sources":["../../../src/lib/api/parse-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EAErB,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAUlC;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CACrD,iBAAiB,CAAC,OAAO,CAAC,EAC1B,eAAe,CAAC,OAAO,CAAC,CACzB,EAED,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,wBAAsB,SAAS,CAC7B,YAAY,SAAS,MAAM,EAAE,EAC7B,QAAQ,SAAS,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,EAErE,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC"}