@loaders.gl/core 4.0.0-alpha.5 → 4.0.0-alpha.7
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.
- package/dist/bundle.js +2 -2
- package/dist/core-addons/write-file-browser.js +59 -1
- package/dist/dist.min.js +934 -451
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/core-addons/write-file-browser.js +2 -0
- package/dist/es5/core-addons/write-file-browser.js.map +1 -0
- package/dist/es5/index.js +377 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js +94 -0
- package/dist/es5/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
- package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js +42 -0
- package/dist/es5/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
- package/dist/es5/iterators/make-iterator/make-blob-iterator.js +47 -0
- package/dist/es5/iterators/make-iterator/make-blob-iterator.js.map +1 -0
- package/dist/es5/iterators/make-iterator/make-iterator.js +31 -0
- package/dist/es5/iterators/make-iterator/make-iterator.js.map +1 -0
- package/dist/es5/iterators/make-iterator/make-stream-iterator.js +133 -0
- package/dist/es5/iterators/make-iterator/make-stream-iterator.js.map +1 -0
- package/dist/es5/iterators/make-iterator/make-string-iterator.js +38 -0
- package/dist/es5/iterators/make-iterator/make-string-iterator.js.map +1 -0
- package/dist/es5/iterators/make-stream/make-dom-stream.js +67 -0
- package/dist/es5/iterators/make-stream/make-dom-stream.js.map +1 -0
- package/dist/es5/iterators/make-stream/make-node-stream.js +168 -0
- package/dist/es5/iterators/make-stream/make-node-stream.js.map +1 -0
- package/dist/es5/javascript-utils/is-type.js +79 -0
- package/dist/es5/javascript-utils/is-type.js.map +1 -0
- package/dist/es5/lib/api/encode-table.js +159 -0
- package/dist/es5/lib/api/encode-table.js.map +1 -0
- package/dist/es5/lib/api/encode.js +244 -0
- package/dist/es5/lib/api/encode.js.map +1 -0
- package/dist/es5/lib/api/load-in-batches.js +63 -0
- package/dist/es5/lib/api/load-in-batches.js.map +1 -0
- package/dist/es5/lib/api/load.js +76 -0
- package/dist/es5/lib/api/load.js.map +1 -0
- package/dist/es5/lib/api/loader-options.js +19 -0
- package/dist/es5/lib/api/loader-options.js.map +1 -0
- package/dist/es5/lib/api/parse-in-batches.js +278 -0
- package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
- package/dist/es5/lib/api/parse-sync.js +53 -0
- package/dist/es5/lib/api/parse-sync.js.map +1 -0
- package/dist/es5/lib/api/parse.js +143 -0
- package/dist/es5/lib/api/parse.js.map +1 -0
- package/dist/es5/lib/api/register-loaders.js +50 -0
- package/dist/es5/lib/api/register-loaders.js.map +1 -0
- package/dist/es5/lib/api/save.js +42 -0
- package/dist/es5/lib/api/save.js.map +1 -0
- package/dist/es5/lib/api/select-loader.js +302 -0
- package/dist/es5/lib/api/select-loader.js.map +1 -0
- package/dist/es5/lib/common.js +2 -0
- package/dist/es5/lib/common.js.map +1 -0
- package/dist/es5/lib/fetch/fetch-error-message.js +56 -0
- package/dist/es5/lib/fetch/fetch-error-message.js.map +1 -0
- package/dist/es5/lib/fetch/fetch-file.js +47 -0
- package/dist/es5/lib/fetch/fetch-file.js.map +1 -0
- package/dist/es5/lib/fetch/read-array-buffer.js +76 -0
- package/dist/es5/lib/fetch/read-array-buffer.js.map +1 -0
- package/dist/es5/lib/fetch/read-file.js +20 -0
- package/dist/es5/lib/fetch/read-file.js.map +1 -0
- package/dist/es5/lib/fetch/write-file.js +48 -0
- package/dist/es5/lib/fetch/write-file.js.map +1 -0
- package/dist/es5/lib/filesystems/browser-filesystem.js +249 -0
- package/dist/es5/lib/filesystems/browser-filesystem.js.map +1 -0
- package/dist/es5/lib/filesystems/filesystem.js +2 -0
- package/dist/es5/lib/filesystems/filesystem.js.map +1 -0
- package/dist/es5/lib/filesystems/read-array-buffer.js +41 -0
- package/dist/es5/lib/filesystems/read-array-buffer.js.map +1 -0
- package/dist/es5/lib/init.js +18 -0
- package/dist/es5/lib/init.js.map +1 -0
- package/dist/es5/lib/loader-utils/check-errors.js +57 -0
- package/dist/es5/lib/loader-utils/check-errors.js.map +1 -0
- package/dist/es5/lib/loader-utils/get-data.js +237 -0
- package/dist/es5/lib/loader-utils/get-data.js.map +1 -0
- package/dist/es5/lib/loader-utils/get-fetch-function.js +26 -0
- package/dist/es5/lib/loader-utils/get-fetch-function.js.map +1 -0
- package/dist/es5/lib/loader-utils/loader-context.js +49 -0
- package/dist/es5/lib/loader-utils/loader-context.js.map +1 -0
- package/dist/es5/lib/loader-utils/loggers.js +90 -0
- package/dist/es5/lib/loader-utils/loggers.js.map +1 -0
- package/dist/es5/lib/loader-utils/normalize-loader.js +44 -0
- package/dist/es5/lib/loader-utils/normalize-loader.js.map +1 -0
- package/dist/es5/lib/loader-utils/option-defaults.js +47 -0
- package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -0
- package/dist/es5/lib/loader-utils/option-utils.js +132 -0
- package/dist/es5/lib/loader-utils/option-utils.js.map +1 -0
- package/dist/es5/lib/progress/fetch-progress.js +134 -0
- package/dist/es5/lib/progress/fetch-progress.js.map +1 -0
- package/dist/es5/lib/utils/log.js +12 -0
- package/dist/es5/lib/utils/log.js.map +1 -0
- package/dist/es5/lib/utils/mime-type-utils.js +24 -0
- package/dist/es5/lib/utils/mime-type-utils.js.map +1 -0
- package/dist/es5/lib/utils/resource-utils.js +62 -0
- package/dist/es5/lib/utils/resource-utils.js.map +1 -0
- package/dist/es5/lib/utils/response-utils.js +197 -0
- package/dist/es5/lib/utils/response-utils.js.map +1 -0
- package/dist/es5/lib/utils/url-utils.js +16 -0
- package/dist/es5/lib/utils/url-utils.js.map +1 -0
- package/dist/es5/null-loader.js +139 -0
- package/dist/es5/null-loader.js.map +1 -0
- package/dist/es5/workers/null-worker.js +6 -0
- package/dist/es5/workers/null-worker.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/core-addons/README.md +1 -0
- package/dist/esm/core-addons/write-file-browser.js +2 -0
- package/dist/esm/core-addons/write-file-browser.js.map +1 -0
- package/dist/esm/index.js +30 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js +16 -0
- package/dist/esm/iterators/batch-iterators/timed-batch-iterator.js.map +1 -0
- package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js +20 -0
- package/dist/esm/iterators/make-iterator/make-array-buffer-iterator.js.map +1 -0
- package/dist/esm/iterators/make-iterator/make-blob-iterator.js +12 -0
- package/dist/esm/iterators/make-iterator/make-blob-iterator.js.map +1 -0
- package/dist/esm/iterators/make-iterator/make-iterator.js +25 -0
- package/dist/esm/iterators/make-iterator/make-iterator.js.map +1 -0
- package/dist/esm/iterators/make-iterator/make-stream-iterator.js +32 -0
- package/dist/esm/iterators/make-iterator/make-stream-iterator.js.map +1 -0
- package/dist/esm/iterators/make-iterator/make-string-iterator.js +13 -0
- package/dist/esm/iterators/make-iterator/make-string-iterator.js.map +1 -0
- package/dist/esm/iterators/make-stream/make-dom-stream.js +29 -0
- package/dist/esm/iterators/make-stream/make-dom-stream.js.map +1 -0
- package/dist/esm/iterators/make-stream/make-node-stream.js +57 -0
- package/dist/esm/iterators/make-stream/make-node-stream.js.map +1 -0
- package/dist/esm/javascript-utils/is-type.js +19 -0
- package/dist/esm/javascript-utils/is-type.js.map +1 -0
- package/dist/esm/lib/api/encode-table.js +45 -0
- package/dist/esm/lib/api/encode-table.js.map +1 -0
- package/dist/esm/lib/api/encode.js +87 -0
- package/dist/esm/lib/api/encode.js.map +1 -0
- package/dist/esm/lib/api/load-in-batches.js +25 -0
- package/dist/esm/lib/api/load-in-batches.js.map +1 -0
- package/dist/esm/lib/api/load.js +26 -0
- package/dist/esm/lib/api/load.js.map +1 -0
- package/dist/esm/lib/api/loader-options.js +3 -0
- package/dist/esm/lib/api/loader-options.js.map +1 -0
- package/dist/esm/lib/api/parse-in-batches.js +84 -0
- package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
- package/dist/esm/lib/api/parse-sync.js +45 -0
- package/dist/esm/lib/api/parse-sync.js.map +1 -0
- package/dist/esm/lib/api/parse.js +74 -0
- package/dist/esm/lib/api/parse.js.map +1 -0
- package/dist/esm/lib/api/register-loaders.js +25 -0
- package/dist/esm/lib/api/register-loaders.js.map +1 -0
- package/dist/esm/lib/api/save.js +11 -0
- package/dist/esm/lib/api/save.js.map +1 -0
- package/dist/esm/lib/api/select-loader.js +201 -0
- package/dist/esm/lib/api/select-loader.js.map +1 -0
- package/dist/esm/lib/common.js +2 -0
- package/dist/esm/lib/common.js.map +1 -0
- package/dist/esm/lib/fetch/fetch-error-message.js +18 -0
- package/dist/esm/lib/fetch/fetch-error-message.js.map +1 -0
- package/dist/esm/lib/fetch/fetch-file.js +14 -0
- package/dist/esm/lib/fetch/fetch-file.js.map +1 -0
- package/dist/esm/lib/fetch/read-array-buffer.js +23 -0
- package/dist/esm/lib/fetch/read-array-buffer.js.map +1 -0
- package/dist/esm/lib/fetch/read-file.js +15 -0
- package/dist/esm/lib/fetch/read-file.js.map +1 -0
- package/dist/esm/lib/fetch/write-file.js +21 -0
- package/dist/esm/lib/fetch/write-file.js.map +1 -0
- package/dist/esm/lib/filesystems/browser-filesystem.js +92 -0
- package/dist/esm/lib/filesystems/browser-filesystem.js.map +1 -0
- package/dist/esm/lib/filesystems/filesystem.js +2 -0
- package/dist/esm/lib/filesystems/filesystem.js.map +1 -0
- package/dist/esm/lib/filesystems/read-array-buffer.js +8 -0
- package/dist/esm/lib/filesystems/read-array-buffer.js.map +1 -0
- package/dist/esm/lib/init.js +11 -0
- package/dist/esm/lib/init.js.map +1 -0
- package/dist/esm/lib/loader-utils/check-errors.js +22 -0
- package/dist/esm/lib/loader-utils/check-errors.js.map +1 -0
- package/dist/esm/lib/loader-utils/get-data.js +103 -0
- package/dist/esm/lib/loader-utils/get-data.js.map +1 -0
- package/dist/esm/lib/loader-utils/get-fetch-function.js +18 -0
- package/dist/esm/lib/loader-utils/get-fetch-function.js.map +1 -0
- package/dist/esm/lib/loader-utils/loader-context.js +38 -0
- package/dist/esm/lib/loader-utils/loader-context.js.map +1 -0
- package/dist/esm/lib/loader-utils/loggers.js +50 -0
- package/dist/esm/lib/loader-utils/loggers.js.map +1 -0
- package/dist/esm/lib/loader-utils/normalize-loader.js +37 -0
- package/dist/esm/lib/loader-utils/normalize-loader.js.map +1 -0
- package/dist/esm/lib/loader-utils/option-defaults.js +39 -0
- package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -0
- package/dist/esm/lib/loader-utils/option-utils.js +106 -0
- package/dist/esm/lib/loader-utils/option-utils.js.map +1 -0
- package/dist/esm/lib/progress/fetch-progress.js +52 -0
- package/dist/esm/lib/progress/fetch-progress.js.map +1 -0
- package/dist/esm/lib/utils/log.js +5 -0
- package/dist/esm/lib/utils/log.js.map +1 -0
- package/dist/esm/lib/utils/mime-type-utils.js +17 -0
- package/dist/esm/lib/utils/mime-type-utils.js.map +1 -0
- package/dist/esm/lib/utils/resource-utils.js +54 -0
- package/dist/esm/lib/utils/resource-utils.js.map +1 -0
- package/dist/esm/lib/utils/response-utils.js +89 -0
- package/dist/esm/lib/utils/response-utils.js.map +1 -0
- package/dist/esm/lib/utils/url-utils.js +9 -0
- package/dist/esm/lib/utils/url-utils.js.map +1 -0
- package/dist/esm/null-loader.js +45 -0
- package/dist/esm/null-loader.js.map +1 -0
- package/dist/esm/workers/null-worker.js +4 -0
- package/dist/esm/workers/null-worker.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +108 -29
- package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
- package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
- package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
- package/dist/iterators/make-iterator/make-iterator.d.ts +1 -1
- package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
- package/dist/iterators/make-iterator/make-iterator.js +36 -29
- package/dist/iterators/make-iterator/make-stream-iterator.d.ts +1 -1
- package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -1
- package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
- package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
- package/dist/iterators/make-stream/make-dom-stream.d.ts +1 -1
- package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -1
- package/dist/iterators/make-stream/make-dom-stream.js +44 -32
- package/dist/iterators/make-stream/make-node-stream.d.ts +8 -3
- package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -1
- package/dist/iterators/make-stream/make-node-stream.js +75 -67
- package/dist/javascript-utils/is-type.d.ts +1 -1
- package/dist/javascript-utils/is-type.d.ts.map +1 -1
- package/dist/javascript-utils/is-type.js +41 -21
- package/dist/lib/api/encode-table.d.ts +6 -0
- package/dist/lib/api/encode-table.d.ts.map +1 -0
- package/dist/lib/api/encode-table.js +54 -0
- package/dist/lib/api/encode.d.ts +5 -5
- package/dist/lib/api/encode.d.ts.map +1 -1
- package/dist/lib/api/encode.js +111 -81
- package/dist/lib/api/load-in-batches.d.ts +1 -1
- package/dist/lib/api/load-in-batches.d.ts.map +1 -1
- package/dist/lib/api/load-in-batches.js +30 -27
- package/dist/lib/api/load.d.ts +4 -1
- package/dist/lib/api/load.d.ts.map +1 -1
- package/dist/lib/api/load.js +42 -24
- package/dist/lib/api/loader-options.d.ts +3 -0
- package/dist/lib/api/loader-options.d.ts.map +1 -0
- package/dist/lib/api/loader-options.js +7 -0
- package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
- package/dist/lib/api/parse-in-batches.js +110 -92
- package/dist/lib/api/parse-sync.d.ts.map +1 -1
- package/dist/lib/api/parse-sync.js +56 -54
- package/dist/lib/api/parse.d.ts +4 -8
- package/dist/lib/api/parse.d.ts.map +1 -1
- package/dist/lib/api/parse.js +81 -61
- package/dist/lib/api/register-loaders.d.ts +1 -1
- package/dist/lib/api/register-loaders.d.ts.map +1 -1
- package/dist/lib/api/register-loaders.js +29 -23
- package/dist/lib/api/save.js +13 -9
- package/dist/lib/api/select-loader.d.ts.map +1 -1
- package/dist/lib/api/select-loader.js +219 -194
- package/dist/lib/common.js +2 -2
- package/dist/lib/fetch/fetch-error-message.js +21 -17
- package/dist/lib/fetch/fetch-file.js +25 -15
- package/dist/lib/fetch/read-array-buffer.js +39 -27
- package/dist/lib/fetch/read-file.js +28 -16
- package/dist/lib/fetch/write-file.js +20 -23
- package/dist/lib/filesystems/browser-filesystem.d.ts +1 -1
- package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
- package/dist/lib/filesystems/browser-filesystem.js +118 -107
- package/dist/lib/filesystems/filesystem.d.ts +2 -2
- package/dist/lib/filesystems/filesystem.d.ts.map +1 -1
- package/dist/lib/filesystems/filesystem.js +2 -2
- package/dist/lib/filesystems/read-array-buffer.js +28 -8
- package/dist/lib/init.d.ts.map +1 -1
- package/dist/lib/init.js +16 -6
- package/dist/lib/loader-utils/check-errors.js +26 -22
- package/dist/lib/loader-utils/get-data.js +122 -122
- package/dist/lib/loader-utils/get-fetch-function.d.ts +9 -0
- package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -0
- package/dist/lib/loader-utils/get-fetch-function.js +31 -0
- package/dist/lib/loader-utils/loader-context.d.ts +1 -1
- package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
- package/dist/lib/loader-utils/loader-context.js +57 -34
- package/dist/lib/loader-utils/loggers.d.ts +2 -1
- package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
- package/dist/lib/loader-utils/loggers.js +39 -46
- package/dist/lib/loader-utils/normalize-loader.js +50 -41
- package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-defaults.js +41 -35
- package/dist/lib/loader-utils/option-utils.d.ts +11 -13
- package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-utils.js +140 -120
- package/dist/lib/progress/fetch-progress.js +54 -56
- package/dist/lib/utils/log.d.ts +3 -0
- package/dist/lib/utils/log.d.ts.map +1 -0
- package/dist/lib/utils/log.js +6 -0
- package/dist/lib/utils/mime-type-utils.js +38 -17
- package/dist/lib/utils/resource-utils.d.ts +17 -8
- package/dist/lib/utils/resource-utils.d.ts.map +1 -1
- package/dist/lib/utils/resource-utils.js +86 -56
- package/dist/lib/utils/response-utils.d.ts.map +1 -1
- package/dist/lib/utils/response-utils.js +105 -105
- package/dist/lib/utils/url-utils.d.ts +3 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/lib/utils/url-utils.js +14 -0
- package/dist/null-loader.d.ts.map +1 -1
- package/dist/null-loader.js +53 -31
- package/dist/null-worker-node.js +234 -0
- package/dist/null-worker.js +61 -21
- package/dist/workers/null-worker.js +5 -4
- package/package.json +11 -10
- package/src/index.ts +19 -1
- package/src/iterators/make-stream/make-dom-stream.ts +1 -1
- package/src/iterators/make-stream/make-node-stream.ts +8 -2
- package/src/lib/api/encode-table.ts +71 -0
- package/src/lib/api/encode.ts +15 -5
- package/src/lib/api/load-in-batches.ts +1 -1
- package/src/lib/api/load.ts +39 -8
- package/src/lib/api/loader-options.ts +2 -0
- package/src/lib/api/parse-in-batches.ts +8 -9
- package/src/lib/api/parse-sync.ts +8 -4
- package/src/lib/api/parse.ts +42 -5
- package/src/lib/api/register-loaders.ts +1 -1
- package/src/lib/api/select-loader.ts +23 -4
- package/src/lib/init.ts +10 -3
- package/src/lib/loader-utils/get-fetch-function.ts +38 -0
- package/src/lib/loader-utils/loader-context.ts +20 -9
- package/src/lib/loader-utils/loggers.ts +1 -1
- package/src/lib/loader-utils/option-defaults.ts +3 -1
- package/src/lib/loader-utils/option-utils.ts +22 -46
- package/src/lib/progress/fetch-progress.ts +2 -2
- package/src/lib/utils/log.ts +4 -0
- package/src/lib/utils/resource-utils.ts +54 -34
- package/src/lib/utils/response-utils.ts +5 -4
- package/src/lib/utils/url-utils.ts +12 -0
- package/src/null-loader.ts +17 -5
- package/dist/bundle.js.map +0 -1
- package/dist/core-addons/write-file-browser.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
- package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
- package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
- package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
- package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
- package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
- package/dist/iterators/make-stream/make-dom-stream.js.map +0 -1
- package/dist/iterators/make-stream/make-node-stream.js.map +0 -1
- package/dist/javascript-utils/is-type.js.map +0 -1
- package/dist/lib/api/encode.js.map +0 -1
- package/dist/lib/api/load-in-batches.js.map +0 -1
- package/dist/lib/api/load.js.map +0 -1
- package/dist/lib/api/parse-in-batches.js.map +0 -1
- package/dist/lib/api/parse-sync.js.map +0 -1
- package/dist/lib/api/parse.js.map +0 -1
- package/dist/lib/api/register-loaders.js.map +0 -1
- package/dist/lib/api/save.js.map +0 -1
- package/dist/lib/api/select-loader.js.map +0 -1
- package/dist/lib/api/set-loader-options.d.ts +0 -6
- package/dist/lib/api/set-loader-options.d.ts.map +0 -1
- package/dist/lib/api/set-loader-options.js +0 -5
- package/dist/lib/api/set-loader-options.js.map +0 -1
- package/dist/lib/common.js.map +0 -1
- package/dist/lib/fetch/fetch-error-message.js.map +0 -1
- package/dist/lib/fetch/fetch-file.js.map +0 -1
- package/dist/lib/fetch/read-array-buffer.js.map +0 -1
- package/dist/lib/fetch/read-file.js.map +0 -1
- package/dist/lib/fetch/write-file.js.map +0 -1
- package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
- package/dist/lib/filesystems/filesystem.js.map +0 -1
- package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
- package/dist/lib/init.js.map +0 -1
- package/dist/lib/loader-utils/check-errors.js.map +0 -1
- package/dist/lib/loader-utils/get-data.js.map +0 -1
- package/dist/lib/loader-utils/loader-context.js.map +0 -1
- package/dist/lib/loader-utils/loggers.js.map +0 -1
- package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
- package/dist/lib/loader-utils/option-defaults.js.map +0 -1
- package/dist/lib/loader-utils/option-utils.js.map +0 -1
- package/dist/lib/progress/fetch-progress.js.map +0 -1
- package/dist/lib/utils/mime-type-utils.js.map +0 -1
- package/dist/lib/utils/resource-utils.js.map +0 -1
- package/dist/lib/utils/response-utils.js.map +0 -1
- package/dist/null-loader.js.map +0 -1
- package/dist/workers/null-worker.js.map +0 -1
- package/src/lib/api/set-loader-options.ts +0 -9
- /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
package/src/lib/api/load.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
1
3
|
import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
4
|
+
import type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';
|
|
2
5
|
import {isBlob} from '../../javascript-utils/is-type';
|
|
3
6
|
import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
4
|
-
import {getFetchFunction} from '../loader-utils/
|
|
7
|
+
import {getFetchFunction} from '../loader-utils/get-fetch-function';
|
|
5
8
|
|
|
6
9
|
import {parse} from './parse';
|
|
7
10
|
|
|
@@ -14,22 +17,46 @@ import {parse} from './parse';
|
|
|
14
17
|
* @param options
|
|
15
18
|
* @param context
|
|
16
19
|
*/
|
|
20
|
+
|
|
21
|
+
export async function load<LoaderT extends Loader>(
|
|
22
|
+
url: string | DataType,
|
|
23
|
+
loader: LoaderT,
|
|
24
|
+
options?: LoaderOptionsType<LoaderT>,
|
|
25
|
+
context?: LoaderContext
|
|
26
|
+
): Promise<LoaderReturnType<LoaderT>>;
|
|
27
|
+
|
|
28
|
+
export async function load<
|
|
29
|
+
LoaderT extends Loader, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
30
|
+
LoaderOptionsT extends LoaderOptions = LoaderOptions
|
|
31
|
+
>(
|
|
32
|
+
url: string | DataType,
|
|
33
|
+
loaders: Loader[] | LoaderOptions,
|
|
34
|
+
options?: LoaderOptionsT,
|
|
35
|
+
context?: LoaderContext
|
|
36
|
+
): Promise<any>;
|
|
37
|
+
|
|
17
38
|
// implementation signature
|
|
18
|
-
export async function load(
|
|
39
|
+
export async function load<LoaderOptionsT extends LoaderOptions>(
|
|
19
40
|
url: string | DataType,
|
|
20
|
-
loaders?: Loader
|
|
21
|
-
options?:
|
|
41
|
+
loaders?: Loader[] | LoaderOptions,
|
|
42
|
+
options?: LoaderOptionsT,
|
|
22
43
|
context?: LoaderContext
|
|
23
44
|
): Promise<any> {
|
|
45
|
+
let resolvedLoaders: Loader | Loader[];
|
|
46
|
+
let resolvedOptions: LoaderOptionsT | undefined;
|
|
47
|
+
|
|
24
48
|
// Signature: load(url, options)
|
|
25
49
|
if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
|
|
50
|
+
resolvedLoaders = [];
|
|
51
|
+
resolvedOptions = loaders as LoaderOptionsT;
|
|
26
52
|
context = undefined; // context not supported in short signature
|
|
27
|
-
|
|
28
|
-
|
|
53
|
+
} else {
|
|
54
|
+
resolvedLoaders = loaders as Loader | Loader[];
|
|
55
|
+
resolvedOptions = options;
|
|
29
56
|
}
|
|
30
57
|
|
|
31
58
|
// Select fetch function
|
|
32
|
-
const fetch = getFetchFunction(
|
|
59
|
+
const fetch = getFetchFunction(resolvedOptions);
|
|
33
60
|
|
|
34
61
|
// at this point, `url` could be already loaded binary data
|
|
35
62
|
let data = url;
|
|
@@ -41,9 +68,13 @@ export async function load(
|
|
|
41
68
|
|
|
42
69
|
if (isBlob(url)) {
|
|
43
70
|
// The fetch response object will contain blob.name
|
|
71
|
+
// @ts-expect-error TODO - This may not work for overridden fetch functions
|
|
44
72
|
data = await fetch(url);
|
|
45
73
|
}
|
|
46
74
|
|
|
47
75
|
// Data is loaded (at least we have a `Response` object) so time to hand over to `parse`
|
|
48
|
-
return await parse(data, loaders, options);
|
|
76
|
+
// return await parse(data, loaders as Loader[], options);
|
|
77
|
+
return Array.isArray(resolvedLoaders)
|
|
78
|
+
? await parse(data, resolvedLoaders, resolvedOptions) // loader array overload
|
|
79
|
+
: await parse(data, resolvedLoaders, resolvedOptions); // single loader overload
|
|
49
80
|
}
|
|
@@ -11,7 +11,7 @@ import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
|
11
11
|
import {normalizeOptions} from '../loader-utils/option-utils';
|
|
12
12
|
import {getLoaderContext} from '../loader-utils/loader-context';
|
|
13
13
|
import {getAsyncIterableFromData} from '../loader-utils/get-data';
|
|
14
|
-
import {
|
|
14
|
+
import {getResourceUrl} from '../utils/resource-utils';
|
|
15
15
|
import {selectLoader} from './select-loader';
|
|
16
16
|
|
|
17
17
|
// Ensure `parse` is available in context if loader falls back to `parse`
|
|
@@ -32,6 +32,8 @@ export async function parseInBatches(
|
|
|
32
32
|
): Promise<AsyncIterable<any>> {
|
|
33
33
|
assert(!context || typeof context === 'object'); // parseInBatches no longer accepts final url
|
|
34
34
|
|
|
35
|
+
const loaderArray = Array.isArray(loaders) ? loaders : undefined;
|
|
36
|
+
|
|
35
37
|
// Signature: parseInBatches(data, options, url) - Uses registered loaders
|
|
36
38
|
if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
|
|
37
39
|
context = undefined; // context not supported in short signature
|
|
@@ -43,11 +45,11 @@ export async function parseInBatches(
|
|
|
43
45
|
options = options || {};
|
|
44
46
|
|
|
45
47
|
// Extract a url for auto detection
|
|
46
|
-
const
|
|
48
|
+
const url = getResourceUrl(data);
|
|
47
49
|
|
|
48
50
|
// Chooses a loader and normalizes it
|
|
49
51
|
// Note - only uses URL and contentType for streams and iterator inputs
|
|
50
|
-
const loader = await selectLoader(data as ArrayBuffer, loaders as Loader[], options);
|
|
52
|
+
const loader = await selectLoader(data as ArrayBuffer, loaders as Loader | Loader[], options);
|
|
51
53
|
// Note: if options.nothrow was set, it is possible that no loader was found, if so just return null
|
|
52
54
|
if (!loader) {
|
|
53
55
|
// @ts-ignore
|
|
@@ -55,14 +57,11 @@ export async function parseInBatches(
|
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
// Normalize options
|
|
58
|
-
|
|
59
|
-
options = normalizeOptions(options, loader, loaders, url);
|
|
60
|
-
// @ts-ignore
|
|
60
|
+
options = normalizeOptions(options, loader, loaderArray, url);
|
|
61
61
|
context = getLoaderContext(
|
|
62
|
-
|
|
63
|
-
{url, parseInBatches, parse, loaders: loaders as Loader[]},
|
|
62
|
+
{url, parseInBatches, parse, loaders: loaderArray},
|
|
64
63
|
options,
|
|
65
|
-
context
|
|
64
|
+
context || null
|
|
66
65
|
);
|
|
67
66
|
|
|
68
67
|
return await parseWithLoaderInBatches(loader as LoaderWithParser, data, options, context);
|
|
@@ -11,7 +11,7 @@ import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
|
11
11
|
import {normalizeOptions} from '../loader-utils/option-utils';
|
|
12
12
|
import {getArrayBufferOrStringFromDataSync} from '../loader-utils/get-data';
|
|
13
13
|
import {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';
|
|
14
|
-
import {
|
|
14
|
+
import {getResourceUrl} from '../utils/resource-utils';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Parses `data` synchronously using a specified loader
|
|
@@ -52,12 +52,16 @@ export function parseSync(
|
|
|
52
52
|
options = normalizeOptions(options, loader, candidateLoaders);
|
|
53
53
|
|
|
54
54
|
// Extract a url for auto detection
|
|
55
|
-
const
|
|
55
|
+
const url = getResourceUrl(data);
|
|
56
56
|
|
|
57
57
|
const parse = () => {
|
|
58
|
-
throw new Error('parseSync called parse');
|
|
58
|
+
throw new Error('parseSync called parse (which is async');
|
|
59
59
|
};
|
|
60
|
-
context = getLoaderContext(
|
|
60
|
+
context = getLoaderContext(
|
|
61
|
+
{url, parseSync, parse, loaders: loaders as Loader[]},
|
|
62
|
+
options,
|
|
63
|
+
context || null
|
|
64
|
+
);
|
|
61
65
|
|
|
62
66
|
return parseWithLoaderSync(loader as LoaderWithParser, data, options, context);
|
|
63
67
|
}
|
package/src/lib/api/parse.ts
CHANGED
|
@@ -1,13 +1,41 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
1
3
|
import type {DataType, Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
4
|
+
import type {LoaderOptionsType, LoaderReturnType} from '@loaders.gl/loader-utils';
|
|
2
5
|
import {assert, validateWorkerVersion} from '@loaders.gl/worker-utils';
|
|
3
6
|
import {parseWithWorker, canParseWithWorker} from '@loaders.gl/loader-utils';
|
|
4
7
|
import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
8
|
+
import {isResponse} from '../../javascript-utils/is-type';
|
|
5
9
|
import {normalizeOptions} from '../loader-utils/option-utils';
|
|
6
10
|
import {getArrayBufferOrStringFromData} from '../loader-utils/get-data';
|
|
7
11
|
import {getLoaderContext, getLoadersFromContext} from '../loader-utils/loader-context';
|
|
8
|
-
import {
|
|
12
|
+
import {getResourceUrl} from '../utils/resource-utils';
|
|
9
13
|
import {selectLoader} from './select-loader';
|
|
10
14
|
|
|
15
|
+
// type LoaderArrayType<T> = T extends (infer Loader)[] ? LoaderOptionsType<Loader> : T
|
|
16
|
+
|
|
17
|
+
export async function parse<
|
|
18
|
+
LoaderT extends Loader,
|
|
19
|
+
OptionsT extends LoaderOptions = LoaderOptionsType<LoaderT>
|
|
20
|
+
>(
|
|
21
|
+
data: DataType | Promise<DataType>,
|
|
22
|
+
loader: LoaderT,
|
|
23
|
+
options?: OptionsT,
|
|
24
|
+
context?: LoaderContext
|
|
25
|
+
): Promise<LoaderReturnType<LoaderT>>;
|
|
26
|
+
|
|
27
|
+
export async function parse(
|
|
28
|
+
data: DataType | Promise<DataType>,
|
|
29
|
+
loaders: Loader[],
|
|
30
|
+
options?: LoaderOptions,
|
|
31
|
+
context?: LoaderContext
|
|
32
|
+
): Promise<any>;
|
|
33
|
+
|
|
34
|
+
export async function parse(
|
|
35
|
+
data: DataType | Promise<DataType>,
|
|
36
|
+
options?: LoaderOptions
|
|
37
|
+
): Promise<any>;
|
|
38
|
+
|
|
11
39
|
/**
|
|
12
40
|
* Parses `data` using a specified loader
|
|
13
41
|
* @param data
|
|
@@ -15,6 +43,7 @@ import {selectLoader} from './select-loader';
|
|
|
15
43
|
* @param options
|
|
16
44
|
* @param context
|
|
17
45
|
*/
|
|
46
|
+
// implementation signature
|
|
18
47
|
export async function parse(
|
|
19
48
|
data: DataType | Promise<DataType>,
|
|
20
49
|
loaders?: Loader | Loader[] | LoaderOptions,
|
|
@@ -32,10 +61,10 @@ export async function parse(
|
|
|
32
61
|
}
|
|
33
62
|
|
|
34
63
|
data = await data; // Resolve any promise
|
|
35
|
-
options = options || {};
|
|
64
|
+
options = options || ({} as LoaderOptions); // Could be invalid...
|
|
36
65
|
|
|
37
66
|
// Extract a url for auto detection
|
|
38
|
-
const
|
|
67
|
+
const url = getResourceUrl(data);
|
|
39
68
|
|
|
40
69
|
// Chooses a loader (and normalizes it)
|
|
41
70
|
// Also use any loaders in the context, new loaders take priority
|
|
@@ -49,10 +78,10 @@ export async function parse(
|
|
|
49
78
|
}
|
|
50
79
|
|
|
51
80
|
// Normalize options
|
|
52
|
-
options = normalizeOptions(options, loader, candidateLoaders, url);
|
|
81
|
+
options = normalizeOptions(options, loader, candidateLoaders, url); // Could be invalid...
|
|
53
82
|
|
|
54
83
|
// Get a context (if already present, will be unchanged)
|
|
55
|
-
context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context);
|
|
84
|
+
context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context || null);
|
|
56
85
|
|
|
57
86
|
return await parseWithLoader(loader, data, options, context);
|
|
58
87
|
}
|
|
@@ -62,6 +91,14 @@ export async function parse(
|
|
|
62
91
|
async function parseWithLoader(loader, data, options, context) {
|
|
63
92
|
validateWorkerVersion(loader);
|
|
64
93
|
|
|
94
|
+
if (isResponse(data)) {
|
|
95
|
+
// Serialize to support passing the response to web worker
|
|
96
|
+
const response = data as Response;
|
|
97
|
+
const {ok, redirected, status, statusText, type, url} = response;
|
|
98
|
+
const headers = Object.fromEntries(response.headers.entries());
|
|
99
|
+
context.response = {headers, ok, redirected, status, statusText, type, url};
|
|
100
|
+
}
|
|
101
|
+
|
|
65
102
|
data = await getArrayBufferOrStringFromData(data, loader, options);
|
|
66
103
|
|
|
67
104
|
// First check for synchronous text parser, wrap results in promises
|
|
@@ -11,7 +11,7 @@ const getGlobalLoaderRegistry = () => {
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
/** Register a list of global loaders */
|
|
14
|
-
export function registerLoaders(loaders: Loader[]) {
|
|
14
|
+
export function registerLoaders(loaders: Loader[] | Loader) {
|
|
15
15
|
const loaderRegistry = getGlobalLoaderRegistry();
|
|
16
16
|
|
|
17
17
|
loaders = Array.isArray(loaders) ? loaders : [loaders];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type {LoaderContext, LoaderOptions, Loader} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {compareArrayBuffers, path} from '@loaders.gl/loader-utils';
|
|
3
3
|
import {normalizeLoader} from '../loader-utils/normalize-loader';
|
|
4
|
-
import {
|
|
4
|
+
import {log} from '../utils/log';
|
|
5
|
+
import {getResourceUrl, getResourceMIMEType} from '../utils/resource-utils';
|
|
5
6
|
import {getRegisteredLoaders} from './register-loaders';
|
|
6
7
|
import {isBlob} from '../../javascript-utils/is-type';
|
|
8
|
+
import {stripQueryString} from '../utils/url-utils';
|
|
7
9
|
|
|
8
10
|
const EXT_PATTERN = /\.([^.]+)$/;
|
|
9
11
|
|
|
@@ -103,30 +105,46 @@ export function selectLoaderSync(
|
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
/** Implements loaders selection logic */
|
|
108
|
+
// eslint-disable-next-line complexity
|
|
106
109
|
function selectLoaderInternal(
|
|
107
110
|
data: Response | Blob | ArrayBuffer | string,
|
|
108
111
|
loaders: Loader[],
|
|
109
112
|
options?: LoaderOptions,
|
|
110
113
|
context?: LoaderContext
|
|
111
114
|
) {
|
|
112
|
-
const
|
|
115
|
+
const url = getResourceUrl(data);
|
|
116
|
+
const type = getResourceMIMEType(data);
|
|
113
117
|
|
|
114
|
-
const testUrl = url || context?.url;
|
|
118
|
+
const testUrl = stripQueryString(url) || context?.url;
|
|
115
119
|
|
|
116
120
|
let loader: Loader | null = null;
|
|
121
|
+
let reason: string = '';
|
|
117
122
|
|
|
118
123
|
// if options.mimeType is supplied, it takes precedence
|
|
119
124
|
if (options?.mimeType) {
|
|
120
125
|
loader = findLoaderByMIMEType(loaders, options?.mimeType);
|
|
126
|
+
reason = `match forced by supplied MIME type ${options?.mimeType}`;
|
|
121
127
|
}
|
|
128
|
+
|
|
122
129
|
// Look up loader by url
|
|
123
130
|
loader = loader || findLoaderByUrl(loaders, testUrl);
|
|
131
|
+
reason = reason || (loader ? `matched url ${testUrl}` : '');
|
|
132
|
+
|
|
124
133
|
// Look up loader by mime type
|
|
125
134
|
loader = loader || findLoaderByMIMEType(loaders, type);
|
|
135
|
+
reason = reason || (loader ? `matched MIME type ${type}` : '');
|
|
136
|
+
|
|
126
137
|
// Look for loader via initial bytes (Note: not always accessible (e.g. Response, stream, async iterator)
|
|
127
138
|
loader = loader || findLoaderByInitialBytes(loaders, data);
|
|
139
|
+
reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : '');
|
|
140
|
+
|
|
128
141
|
// Look up loader by fallback mime type
|
|
129
142
|
loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
|
|
143
|
+
reason = reason || (loader ? `matched fallback MIME type ${type}` : '');
|
|
144
|
+
|
|
145
|
+
if (reason) {
|
|
146
|
+
log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);
|
|
147
|
+
}
|
|
130
148
|
|
|
131
149
|
return loader;
|
|
132
150
|
}
|
|
@@ -145,7 +163,8 @@ function validHTTPResponse(data: any): boolean {
|
|
|
145
163
|
|
|
146
164
|
/** Generate a helpful message to help explain why loader selection failed. */
|
|
147
165
|
function getNoValidLoaderMessage(data): string {
|
|
148
|
-
const
|
|
166
|
+
const url = getResourceUrl(data);
|
|
167
|
+
const type = getResourceMIMEType(data);
|
|
149
168
|
|
|
150
169
|
let message = 'No valid loader found (';
|
|
151
170
|
message += url ? `${path.filename(url)}, ` : 'no url provided, ';
|
package/src/lib/init.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
import {log} from './utils/log';
|
|
3
|
+
|
|
1
4
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
2
5
|
const version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';
|
|
3
6
|
|
|
4
7
|
// @ts-ignore
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
+
if (!globalThis.loaders) {
|
|
9
|
+
log.log(1, `loaders.gl ${version}`)();
|
|
8
10
|
|
|
11
|
+
globalThis.loaders = Object.assign(globalThis.loaders || {}, {
|
|
12
|
+
VERSION: version,
|
|
13
|
+
log
|
|
14
|
+
});
|
|
15
|
+
}
|
|
9
16
|
// @ts-ignore
|
|
10
17
|
export default globalThis.loaders;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
4
|
+
import {isObject} from '../../javascript-utils/is-type';
|
|
5
|
+
import {fetchFile} from '../fetch/fetch-file';
|
|
6
|
+
import {getGlobalLoaderOptions} from './option-utils';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Gets the current fetch function from options and context
|
|
10
|
+
* @param options
|
|
11
|
+
* @param context
|
|
12
|
+
*/
|
|
13
|
+
export function getFetchFunction(
|
|
14
|
+
options?: LoaderOptions,
|
|
15
|
+
context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>
|
|
16
|
+
) {
|
|
17
|
+
const globalOptions = getGlobalLoaderOptions();
|
|
18
|
+
|
|
19
|
+
const fetchOptions = options || globalOptions;
|
|
20
|
+
|
|
21
|
+
// options.fetch can be a function
|
|
22
|
+
if (typeof fetchOptions.fetch === 'function') {
|
|
23
|
+
return fetchOptions.fetch;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// options.fetch can be an options object
|
|
27
|
+
if (isObject(fetchOptions.fetch)) {
|
|
28
|
+
return (url) => fetchFile(url, fetchOptions as RequestInit);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// else refer to context (from parent loader) if available
|
|
32
|
+
if (context?.fetch) {
|
|
33
|
+
return context?.fetch;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// else return the default fetch function
|
|
37
|
+
return fetchFile;
|
|
38
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type {Loader, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';
|
|
2
|
-
import {getFetchFunction} from './
|
|
2
|
+
import {getFetchFunction} from './get-fetch-function';
|
|
3
|
+
import {extractQueryString, stripQueryString} from '../utils/url-utils';
|
|
4
|
+
import {path} from '@loaders.gl/loader-utils';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* "sub" loaders invoked by other loaders get a "context" injected on `this`
|
|
@@ -12,26 +14,35 @@ import {getFetchFunction} from './option-utils';
|
|
|
12
14
|
*/
|
|
13
15
|
export function getLoaderContext(
|
|
14
16
|
context: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>,
|
|
15
|
-
options
|
|
16
|
-
|
|
17
|
+
options: LoaderOptions,
|
|
18
|
+
parentContext: LoaderContext | null
|
|
17
19
|
): LoaderContext {
|
|
18
20
|
// For recursive calls, we already have a context
|
|
19
21
|
// TODO - add any additional loaders to context?
|
|
20
|
-
if (
|
|
21
|
-
return
|
|
22
|
+
if (parentContext) {
|
|
23
|
+
return parentContext;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
const
|
|
26
|
+
const newContext: LoaderContext = {
|
|
25
27
|
fetch: getFetchFunction(options, context),
|
|
26
28
|
...context
|
|
27
29
|
};
|
|
28
30
|
|
|
31
|
+
// Parse URLs so that subloaders can easily generate correct strings
|
|
32
|
+
if (newContext.url) {
|
|
33
|
+
const baseUrl = stripQueryString(newContext.url);
|
|
34
|
+
newContext.baseUrl = baseUrl;
|
|
35
|
+
newContext.queryString = extractQueryString(newContext.url);
|
|
36
|
+
newContext.filename = path.filename(baseUrl);
|
|
37
|
+
newContext.baseUrl = path.dirname(baseUrl);
|
|
38
|
+
}
|
|
39
|
+
|
|
29
40
|
// Recursive loading does not use single loader
|
|
30
|
-
if (!Array.isArray(
|
|
31
|
-
|
|
41
|
+
if (!Array.isArray(newContext.loaders)) {
|
|
42
|
+
newContext.loaders = null;
|
|
32
43
|
}
|
|
33
44
|
|
|
34
|
-
return
|
|
45
|
+
return newContext;
|
|
35
46
|
}
|
|
36
47
|
|
|
37
48
|
// eslint-disable-next-line complexity
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
2
|
+
import {isBrowser} from '@loaders.gl/loader-utils';
|
|
2
3
|
import {ConsoleLog} from './loggers';
|
|
3
4
|
|
|
4
5
|
export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
|
|
@@ -12,7 +13,8 @@ export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
|
|
|
12
13
|
worker: true, // By default, use worker if provided by loader.
|
|
13
14
|
maxConcurrency: 3, // How many worker instances should be created for each loader.
|
|
14
15
|
maxMobileConcurrency: 1, // How many worker instances should be created for each loader on mobile devices.
|
|
15
|
-
reuseWorkers:
|
|
16
|
+
reuseWorkers: isBrowser, // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)
|
|
17
|
+
_nodeWorkers: false, // By default do not support node workers
|
|
16
18
|
_workerType: '', // 'test' to use locally generated workers
|
|
17
19
|
|
|
18
20
|
limit: 0,
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
2
4
|
import {isPureObject, isObject} from '../../javascript-utils/is-type';
|
|
3
|
-
import {fetchFile} from '../fetch/fetch-file';
|
|
4
5
|
import {probeLog, NullLog} from './loggers';
|
|
5
6
|
import {DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS} from './option-defaults';
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
9
|
* Global state for loaders.gl. Stored on `global.loaders._state`
|
|
8
10
|
*/
|
|
9
11
|
type GlobalLoaderState = {
|
|
10
12
|
loaderRegistry: Loader[];
|
|
11
|
-
globalOptions:
|
|
13
|
+
globalOptions: LoaderOptions;
|
|
12
14
|
};
|
|
13
15
|
|
|
14
16
|
/**
|
|
@@ -26,9 +28,12 @@ export function getGlobalLoaderState(): GlobalLoaderState {
|
|
|
26
28
|
return loaders._state;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Store global loader options on the global object to increase chances of cross loaders-version interoperability
|
|
33
|
+
* NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
|
|
34
|
+
* @returns global loader options merged with default loader options
|
|
35
|
+
*/
|
|
36
|
+
export const getGlobalLoaderOptions = (): LoaderOptions => {
|
|
32
37
|
const state = getGlobalLoaderState();
|
|
33
38
|
// Ensure all default loader options from this library are mentioned
|
|
34
39
|
state.globalOptions = state.globalOptions || {...DEFAULT_LOADER_OPTIONS};
|
|
@@ -39,7 +44,7 @@ const getGlobalLoaderOptions = () => {
|
|
|
39
44
|
* Set global loader options
|
|
40
45
|
* @param options
|
|
41
46
|
*/
|
|
42
|
-
export function setGlobalOptions(options:
|
|
47
|
+
export function setGlobalOptions(options: LoaderOptions): void {
|
|
43
48
|
const state = getGlobalLoaderState();
|
|
44
49
|
const globalOptions = getGlobalLoaderOptions();
|
|
45
50
|
state.globalOptions = normalizeOptionsInternal(globalOptions, options);
|
|
@@ -53,11 +58,11 @@ export function setGlobalOptions(options: object): void {
|
|
|
53
58
|
* @param url
|
|
54
59
|
*/
|
|
55
60
|
export function normalizeOptions(
|
|
56
|
-
options:
|
|
61
|
+
options: LoaderOptions,
|
|
57
62
|
loader: Loader,
|
|
58
63
|
loaders?: Loader[],
|
|
59
64
|
url?: string
|
|
60
|
-
):
|
|
65
|
+
): LoaderOptions {
|
|
61
66
|
loaders = loaders || [];
|
|
62
67
|
loaders = Array.isArray(loaders) ? loaders : [loaders];
|
|
63
68
|
|
|
@@ -65,38 +70,6 @@ export function normalizeOptions(
|
|
|
65
70
|
return normalizeOptionsInternal(loader, options, url);
|
|
66
71
|
}
|
|
67
72
|
|
|
68
|
-
/**
|
|
69
|
-
* Gets the current fetch function from options and context
|
|
70
|
-
* @param options
|
|
71
|
-
* @param context
|
|
72
|
-
*/
|
|
73
|
-
export function getFetchFunction(
|
|
74
|
-
options?: LoaderOptions,
|
|
75
|
-
context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>
|
|
76
|
-
) {
|
|
77
|
-
const globalOptions = getGlobalLoaderOptions();
|
|
78
|
-
|
|
79
|
-
const fetchOptions = options || globalOptions;
|
|
80
|
-
|
|
81
|
-
// options.fetch can be a function
|
|
82
|
-
if (typeof fetchOptions.fetch === 'function') {
|
|
83
|
-
return fetchOptions.fetch;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// options.fetch can be an options object
|
|
87
|
-
if (isObject(fetchOptions.fetch)) {
|
|
88
|
-
return (url) => fetchFile(url, fetchOptions);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// else refer to context (from parent loader) if available
|
|
92
|
-
if (context?.fetch) {
|
|
93
|
-
return context?.fetch;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// else return the default fetch function
|
|
97
|
-
return fetchFile;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
73
|
// VALIDATE OPTIONS
|
|
101
74
|
|
|
102
75
|
/**
|
|
@@ -211,11 +184,14 @@ function mergeNestedFields(mergedOptions, options) {
|
|
|
211
184
|
}
|
|
212
185
|
}
|
|
213
186
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Harvest information from the url
|
|
189
|
+
* @deprecated This is mainly there to support a hack in the GLTFLoader
|
|
190
|
+
* TODO - baseUri should be a directory, i.e. remove file component from baseUri
|
|
191
|
+
* TODO - extract extension?
|
|
192
|
+
* TODO - extract query parameters?
|
|
193
|
+
* TODO - should these be injected on context instead of options?
|
|
194
|
+
*/
|
|
219
195
|
function addUrlOptions(options, url?: string) {
|
|
220
196
|
if (url && !('baseUri' in options)) {
|
|
221
197
|
options.baseUri = url;
|
|
@@ -20,8 +20,8 @@ export default async function fetchProgress(
|
|
|
20
20
|
return response;
|
|
21
21
|
}
|
|
22
22
|
const contentLength = response.headers.get('content-length') || 0;
|
|
23
|
-
const totalBytes = contentLength
|
|
24
|
-
if (!(
|
|
23
|
+
const totalBytes = contentLength ? parseInt(contentLength) : 0;
|
|
24
|
+
if (!(totalBytes > 0)) {
|
|
25
25
|
return response;
|
|
26
26
|
}
|
|
27
27
|
// Currently override only implemented in browser
|