@loaders.gl/core 4.0.0-alpha.4 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/core-addons/write-file-browser.d.ts +1 -0
- package/dist/core-addons/write-file-browser.d.ts.map +1 -0
- package/dist/core-addons/write-file-browser.js +59 -1
- package/dist/dist.min.js +3874 -0
- 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 +277 -0
- package/dist/es5/lib/api/parse-in-batches.js.map +1 -0
- package/dist/es5/lib/api/parse-sync.js +54 -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 +303 -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 +41 -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 +58 -0
- package/dist/es5/lib/utils/resource-utils.js.map +1 -0
- package/dist/es5/lib/utils/response-utils.js +196 -0
- package/dist/es5/lib/utils/response-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 +85 -0
- package/dist/esm/lib/api/parse-in-batches.js.map +1 -0
- package/dist/esm/lib/api/parse-sync.js +47 -0
- package/dist/esm/lib/api/parse-sync.js.map +1 -0
- package/dist/esm/lib/api/parse.js +76 -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 +204 -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 +30 -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 +51 -0
- package/dist/esm/lib/utils/resource-utils.js.map +1 -0
- package/dist/esm/lib/utils/response-utils.js +91 -0
- package/dist/esm/lib/utils/response-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 +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +108 -31
- package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts +5 -0
- package/dist/iterators/batch-iterators/timed-batch-iterator.d.ts.map +1 -0
- package/dist/iterators/batch-iterators/timed-batch-iterator.js +20 -17
- package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts +9 -0
- package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -0
- package/dist/iterators/make-iterator/make-array-buffer-iterator.js +25 -16
- package/dist/iterators/make-iterator/make-blob-iterator.d.ts +9 -0
- package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -0
- package/dist/iterators/make-iterator/make-blob-iterator.js +20 -12
- package/dist/iterators/make-iterator/make-iterator.d.ts +19 -0
- package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -0
- package/dist/iterators/make-iterator/make-iterator.js +36 -29
- package/dist/iterators/make-iterator/make-stream-iterator.d.ts +11 -0
- package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -0
- package/dist/iterators/make-iterator/make-stream-iterator.js +89 -32
- package/dist/iterators/make-iterator/make-string-iterator.d.ts +9 -0
- package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -0
- package/dist/iterators/make-iterator/make-string-iterator.js +22 -12
- package/dist/iterators/make-stream/make-dom-stream.d.ts +14 -0
- package/dist/iterators/make-stream/make-dom-stream.d.ts.map +1 -0
- package/dist/iterators/make-stream/make-dom-stream.js +44 -32
- package/dist/iterators/make-stream/make-node-stream.d.ts +11 -0
- package/dist/iterators/make-stream/make-node-stream.d.ts.map +1 -0
- package/dist/iterators/make-stream/make-node-stream.js +75 -70
- package/dist/javascript-utils/is-type.d.ts +22 -0
- package/dist/javascript-utils/is-type.d.ts.map +1 -0
- 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 +26 -0
- package/dist/lib/api/encode.d.ts.map +1 -0
- package/dist/lib/api/encode.js +111 -81
- package/dist/lib/api/load-in-batches.d.ts +13 -0
- package/dist/lib/api/load-in-batches.d.ts.map +1 -0
- package/dist/lib/api/load-in-batches.js +30 -27
- package/dist/lib/api/load.d.ts +14 -0
- package/dist/lib/api/load.d.ts.map +1 -0
- 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 +10 -0
- package/dist/lib/api/parse-in-batches.d.ts.map +1 -0
- package/dist/lib/api/parse-in-batches.js +113 -92
- package/dist/lib/api/parse-sync.d.ts +10 -0
- package/dist/lib/api/parse-sync.d.ts.map +1 -0
- package/dist/lib/api/parse-sync.js +56 -54
- package/dist/lib/api/parse.d.ts +6 -0
- package/dist/lib/api/parse.d.ts.map +1 -0
- package/dist/lib/api/parse.js +81 -61
- package/dist/lib/api/register-loaders.d.ts +7 -0
- package/dist/lib/api/register-loaders.d.ts.map +1 -0
- package/dist/lib/api/register-loaders.js +29 -23
- package/dist/lib/api/save.d.ts +4 -0
- package/dist/lib/api/save.d.ts.map +1 -0
- package/dist/lib/api/save.js +13 -9
- package/dist/lib/api/select-loader.d.ts +22 -0
- package/dist/lib/api/select-loader.d.ts.map +1 -0
- package/dist/lib/api/select-loader.js +216 -194
- package/dist/lib/common.d.ts +2 -0
- package/dist/lib/common.d.ts.map +1 -0
- package/dist/lib/common.js +2 -2
- package/dist/lib/fetch/fetch-error-message.d.ts +3 -0
- package/dist/lib/fetch/fetch-error-message.d.ts.map +1 -0
- package/dist/lib/fetch/fetch-error-message.js +21 -17
- package/dist/lib/fetch/fetch-file.d.ts +13 -0
- package/dist/lib/fetch/fetch-file.d.ts.map +1 -0
- package/dist/lib/fetch/fetch-file.js +25 -15
- package/dist/lib/fetch/read-array-buffer.d.ts +17 -0
- package/dist/lib/fetch/read-array-buffer.d.ts.map +1 -0
- package/dist/lib/fetch/read-array-buffer.js +39 -27
- package/dist/lib/fetch/read-file.d.ts +5 -0
- package/dist/lib/fetch/read-file.d.ts.map +1 -0
- package/dist/lib/fetch/read-file.js +28 -16
- package/dist/lib/fetch/write-file.d.ts +3 -0
- package/dist/lib/fetch/write-file.d.ts.map +1 -0
- package/dist/lib/fetch/write-file.js +20 -23
- package/dist/lib/filesystems/browser-filesystem.d.ts +58 -0
- package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -0
- package/dist/lib/filesystems/browser-filesystem.js +118 -107
- package/dist/lib/filesystems/filesystem.d.ts +46 -0
- package/dist/lib/filesystems/filesystem.d.ts.map +1 -0
- package/dist/lib/filesystems/filesystem.js +2 -2
- package/dist/lib/filesystems/read-array-buffer.d.ts +19 -0
- package/dist/lib/filesystems/read-array-buffer.d.ts.map +1 -0
- package/dist/lib/filesystems/read-array-buffer.js +28 -8
- package/dist/lib/init.d.ts +3 -0
- package/dist/lib/init.d.ts.map +1 -0
- package/dist/lib/init.js +16 -6
- package/dist/lib/loader-utils/check-errors.d.ts +3 -0
- package/dist/lib/loader-utils/check-errors.d.ts.map +1 -0
- package/dist/lib/loader-utils/check-errors.js +26 -22
- package/dist/lib/loader-utils/get-data.d.ts +6 -0
- package/dist/lib/loader-utils/get-data.d.ts.map +1 -0
- 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 +13 -0
- package/dist/lib/loader-utils/loader-context.d.ts.map +1 -0
- package/dist/lib/loader-utils/loader-context.js +47 -34
- package/dist/lib/loader-utils/loggers.d.ts +17 -0
- package/dist/lib/loader-utils/loggers.d.ts.map +1 -0
- package/dist/lib/loader-utils/loggers.js +39 -46
- package/dist/lib/loader-utils/normalize-loader.d.ts +4 -0
- package/dist/lib/loader-utils/normalize-loader.d.ts.map +1 -0
- package/dist/lib/loader-utils/normalize-loader.js +50 -41
- package/dist/lib/loader-utils/option-defaults.d.ts +20 -0
- package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -0
- package/dist/lib/loader-utils/option-defaults.js +41 -35
- package/dist/lib/loader-utils/option-utils.d.ts +34 -0
- package/dist/lib/loader-utils/option-utils.d.ts.map +1 -0
- package/dist/lib/loader-utils/option-utils.js +140 -120
- package/dist/lib/progress/fetch-progress.d.ts +6 -0
- package/dist/lib/progress/fetch-progress.d.ts.map +1 -0
- 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.d.ts +20 -0
- package/dist/lib/utils/mime-type-utils.d.ts.map +1 -0
- package/dist/lib/utils/mime-type-utils.js +38 -17
- package/dist/lib/utils/resource-utils.d.ts +21 -0
- package/dist/lib/utils/resource-utils.d.ts.map +1 -0
- package/dist/lib/utils/resource-utils.js +70 -52
- package/dist/lib/utils/response-utils.d.ts +18 -0
- package/dist/lib/utils/response-utils.d.ts.map +1 -0
- package/dist/lib/utils/response-utils.js +104 -105
- package/dist/null-loader.d.ts +10 -0
- package/dist/null-loader.d.ts.map +1 -0
- package/dist/null-loader.js +53 -31
- package/dist/null-worker.js +61 -21
- package/dist/workers/null-worker.d.ts +2 -0
- package/dist/workers/null-worker.d.ts.map +1 -0
- package/dist/workers/null-worker.js +5 -4
- package/package.json +16 -15
- package/src/index.ts +20 -4
- package/src/iterators/make-stream/make-dom-stream.ts +10 -5
- package/src/iterators/make-stream/make-node-stream.ts +10 -9
- 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.ts +39 -2
- package/src/lib/api/register-loaders.ts +1 -1
- package/src/lib/api/select-loader.ts +16 -0
- package/src/lib/init.ts +17 -0
- package/src/lib/loader-utils/get-fetch-function.ts +38 -0
- package/src/lib/loader-utils/loader-context.ts +1 -1
- 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/response-utils.ts +2 -2
- 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/iterators/make-stream/make-stream.js +0 -7
- package/dist/iterators/make-stream/make-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.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/iterators/make-stream/make-stream.ts +0 -19
- package/src/lib/api/set-loader-options.ts +0 -9
- package/src/lib/init.js +0 -10
- /package/dist/{core-addons → es5/core-addons}/README.md +0 -0
package/dist/null-worker.js
CHANGED
|
@@ -35,16 +35,33 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
38
|
+
function getParentPort() {
|
|
39
|
+
let parentPort;
|
|
40
|
+
try {
|
|
41
|
+
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
42
|
+
parentPort = globalThis.parentPort;
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
return parentPort;
|
|
46
|
+
}
|
|
38
47
|
var onMessageWrapperMap = new Map();
|
|
39
48
|
var WorkerBody = class {
|
|
49
|
+
static inWorkerThread() {
|
|
50
|
+
return typeof self !== "undefined" || Boolean(getParentPort());
|
|
51
|
+
}
|
|
40
52
|
static set onmessage(onMessage) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
const { type, payload } = message.data;
|
|
53
|
+
function handleMessage(message) {
|
|
54
|
+
const parentPort3 = getParentPort();
|
|
55
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
46
56
|
onMessage(type, payload);
|
|
47
|
-
}
|
|
57
|
+
}
|
|
58
|
+
const parentPort2 = getParentPort();
|
|
59
|
+
if (parentPort2) {
|
|
60
|
+
parentPort2.on("message", handleMessage);
|
|
61
|
+
parentPort2.on("exit", () => console.debug("Node worker closing"));
|
|
62
|
+
} else {
|
|
63
|
+
globalThis.onmessage = handleMessage;
|
|
64
|
+
}
|
|
48
65
|
}
|
|
49
66
|
static addEventListener(onMessage) {
|
|
50
67
|
let onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
@@ -53,22 +70,36 @@
|
|
|
53
70
|
if (!isKnownMessage(message)) {
|
|
54
71
|
return;
|
|
55
72
|
}
|
|
56
|
-
const
|
|
73
|
+
const parentPort3 = getParentPort();
|
|
74
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
57
75
|
onMessage(type, payload);
|
|
58
76
|
};
|
|
59
77
|
}
|
|
60
|
-
|
|
78
|
+
const parentPort2 = getParentPort();
|
|
79
|
+
if (parentPort2) {
|
|
80
|
+
console.error("not implemented");
|
|
81
|
+
} else {
|
|
82
|
+
globalThis.addEventListener("message", onMessageWrapper);
|
|
83
|
+
}
|
|
61
84
|
}
|
|
62
85
|
static removeEventListener(onMessage) {
|
|
63
86
|
const onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
64
87
|
onMessageWrapperMap.delete(onMessage);
|
|
65
|
-
|
|
88
|
+
const parentPort2 = getParentPort();
|
|
89
|
+
if (parentPort2) {
|
|
90
|
+
console.error("not implemented");
|
|
91
|
+
} else {
|
|
92
|
+
globalThis.removeEventListener("message", onMessageWrapper);
|
|
93
|
+
}
|
|
66
94
|
}
|
|
67
95
|
static postMessage(type, payload) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
96
|
+
const data = { source: "loaders.gl", type, payload };
|
|
97
|
+
const transferList = getTransferList(payload);
|
|
98
|
+
const parentPort2 = getParentPort();
|
|
99
|
+
if (parentPort2) {
|
|
100
|
+
parentPort2.postMessage(data, transferList);
|
|
101
|
+
} else {
|
|
102
|
+
globalThis.postMessage(data, transferList);
|
|
72
103
|
}
|
|
73
104
|
}
|
|
74
105
|
};
|
|
@@ -80,19 +111,20 @@
|
|
|
80
111
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
81
112
|
var requestId = 0;
|
|
82
113
|
function createLoaderWorker(loader) {
|
|
83
|
-
if (
|
|
114
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
84
115
|
return;
|
|
85
116
|
}
|
|
86
117
|
WorkerBody.onmessage = async (type, payload) => {
|
|
87
118
|
switch (type) {
|
|
88
119
|
case "process":
|
|
89
120
|
try {
|
|
90
|
-
const { input, options = {} } = payload;
|
|
121
|
+
const { input, options = {}, context = {} } = payload;
|
|
91
122
|
const result = await parseData({
|
|
92
123
|
loader,
|
|
93
124
|
arrayBuffer: input,
|
|
94
125
|
options,
|
|
95
126
|
context: {
|
|
127
|
+
...context,
|
|
96
128
|
parse: parseOnMainThread
|
|
97
129
|
}
|
|
98
130
|
});
|
|
@@ -152,7 +184,13 @@
|
|
|
152
184
|
}
|
|
153
185
|
|
|
154
186
|
// src/null-loader.ts
|
|
155
|
-
var VERSION =
|
|
187
|
+
var VERSION = true ? "4.0.0-alpha.6" : "latest";
|
|
188
|
+
function parseSync(arrayBuffer, options, context) {
|
|
189
|
+
if (!options.null.echoParameters)
|
|
190
|
+
return null;
|
|
191
|
+
context = context && JSON.parse(JSON.stringify(context));
|
|
192
|
+
return { arrayBuffer, options, context };
|
|
193
|
+
}
|
|
156
194
|
var NullLoader = {
|
|
157
195
|
name: "Null loader",
|
|
158
196
|
id: "null",
|
|
@@ -160,16 +198,18 @@
|
|
|
160
198
|
version: VERSION,
|
|
161
199
|
mimeTypes: ["application/x.empty"],
|
|
162
200
|
extensions: ["null"],
|
|
163
|
-
parse: async (arrayBuffer) => arrayBuffer,
|
|
164
|
-
parseSync
|
|
165
|
-
parseInBatches: async function* generator(asyncIterator) {
|
|
201
|
+
parse: async (arrayBuffer, options, context) => parseSync(arrayBuffer, options, context),
|
|
202
|
+
parseSync,
|
|
203
|
+
parseInBatches: async function* generator(asyncIterator, options, context) {
|
|
166
204
|
for await (const batch of asyncIterator) {
|
|
167
|
-
yield batch;
|
|
205
|
+
yield parseSync(batch, options, context);
|
|
168
206
|
}
|
|
169
207
|
},
|
|
170
208
|
tests: [() => false],
|
|
171
209
|
options: {
|
|
172
|
-
null: {
|
|
210
|
+
null: {
|
|
211
|
+
echoParameters: false
|
|
212
|
+
}
|
|
173
213
|
}
|
|
174
214
|
};
|
|
175
215
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-worker.d.ts","sourceRoot":"","sources":["../../src/workers/null-worker.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
const null_loader_1 = require("../null-loader");
|
|
5
|
+
(0, loader_utils_1.createLoaderWorker)(null_loader_1.NullLoader);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/core",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.0.0-alpha.6",
|
|
4
|
+
"description": "The core API for working with loaders.gl loaders and writers",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -17,17 +17,18 @@
|
|
|
17
17
|
"mesh",
|
|
18
18
|
"point cloud"
|
|
19
19
|
],
|
|
20
|
-
"types": "
|
|
21
|
-
"main": "dist/index.js",
|
|
22
|
-
"module": "dist/index.js",
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
|
+
"main": "dist/es5/index.js",
|
|
22
|
+
"module": "dist/esm/index.js",
|
|
23
23
|
"sideEffects": false,
|
|
24
24
|
"browser": {
|
|
25
25
|
"fs": false,
|
|
26
26
|
"stream": false,
|
|
27
|
-
"./src/iterators/make-stream/make-node-stream.ts":
|
|
28
|
-
"./src/iterators/make-stream/make-node-stream.js":
|
|
29
|
-
"./dist/
|
|
30
|
-
"./dist/
|
|
27
|
+
"./src/iterators/make-stream/make-node-stream.ts": "./src/iterators/make-stream/make-dom-stream.ts",
|
|
28
|
+
"./src/iterators/make-stream/make-node-stream.js": "./src/iterators/make-stream/make-dom-stream.js",
|
|
29
|
+
"./dist/iterators/make-stream/make-node-stream.js": "./dist/iterators/make-stream/make-dom-stream.js",
|
|
30
|
+
"./dist/es5/iterators/make-stream/make-node-stream.js": "./dist/es5/iterators/make-stream/make-dom-stream.js",
|
|
31
|
+
"./dist/esm/iterators/make-stream/make-node-stream.js": "./dist/esm/iterators/make-stream/make-dom-stream.js"
|
|
31
32
|
},
|
|
32
33
|
"files": [
|
|
33
34
|
"src",
|
|
@@ -36,14 +37,14 @@
|
|
|
36
37
|
],
|
|
37
38
|
"scripts": {
|
|
38
39
|
"pre-build": "npm run build-bundle && npm run build-worker",
|
|
39
|
-
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/
|
|
40
|
-
"build-worker": "esbuild src/workers/null-worker.ts --bundle --outfile=dist/null-worker.js"
|
|
40
|
+
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
|
|
41
|
+
"build-worker": "esbuild src/workers/null-worker.ts --bundle --outfile=dist/null-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
44
|
"@babel/runtime": "^7.3.1",
|
|
44
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
45
|
-
"@loaders.gl/worker-utils": "4.0.0-alpha.
|
|
46
|
-
"probe.gl": "^
|
|
45
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.6",
|
|
46
|
+
"@loaders.gl/worker-utils": "4.0.0-alpha.6",
|
|
47
|
+
"@probe.gl/log": "^4.0.2"
|
|
47
48
|
},
|
|
48
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
|
|
49
50
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
// TYPES
|
|
4
|
+
export type {
|
|
5
|
+
Loader,
|
|
6
|
+
LoaderWithParser,
|
|
7
|
+
LoaderContext,
|
|
8
|
+
LoaderOptions,
|
|
9
|
+
Writer,
|
|
10
|
+
WriterOptions,
|
|
11
|
+
DataType,
|
|
12
|
+
SyncDataType,
|
|
13
|
+
BatchableDataType,
|
|
14
|
+
IFileSystem,
|
|
15
|
+
IRandomAccessReadFileSystem
|
|
16
|
+
} from '@loaders.gl/loader-utils';
|
|
17
|
+
|
|
1
18
|
// FILE READING AND WRITING
|
|
2
19
|
export {fetchFile} from './lib/fetch/fetch-file';
|
|
3
20
|
|
|
@@ -6,7 +23,7 @@ export {readFileSync} from './lib/fetch/read-file';
|
|
|
6
23
|
export {writeFile, writeFileSync} from './lib/fetch/write-file';
|
|
7
24
|
|
|
8
25
|
// CONFIGURATION
|
|
9
|
-
export {setLoaderOptions} from './lib/api/
|
|
26
|
+
export {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';
|
|
10
27
|
export {registerLoaders} from './lib/api/register-loaders';
|
|
11
28
|
export {selectLoader, selectLoaderSync} from './lib/api/select-loader';
|
|
12
29
|
|
|
@@ -19,6 +36,7 @@ export {load} from './lib/api/load';
|
|
|
19
36
|
export {loadInBatches} from './lib/api/load-in-batches';
|
|
20
37
|
|
|
21
38
|
// ENCODING (ENCODING AND WRITING)
|
|
39
|
+
export {encodeTable, encodeTableAsText, encodeTableInBatches} from './lib/api/encode-table';
|
|
22
40
|
export {encode, encodeSync, encodeInBatches, encodeText, encodeURLtoURL} from './lib/api/encode';
|
|
23
41
|
export {save, saveSync} from './lib/api/save';
|
|
24
42
|
|
|
@@ -28,9 +46,7 @@ export {RequestScheduler} from '@loaders.gl/loader-utils';
|
|
|
28
46
|
|
|
29
47
|
// ITERATOR UTILS
|
|
30
48
|
export {makeIterator} from './iterators/make-iterator/make-iterator';
|
|
31
|
-
export {makeStream} from './iterators/make-stream/make-stream';
|
|
32
|
-
export {makeDOMStream} from './iterators/make-stream/make-dom-stream';
|
|
33
|
-
export {default as makeNodeStream} from './iterators/make-stream/make-node-stream';
|
|
49
|
+
export {makeStream} from './iterators/make-stream/make-node-stream';
|
|
34
50
|
|
|
35
51
|
// CORE LOADERS
|
|
36
52
|
export {NullWorkerLoader, NullLoader} from './null-loader';
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type MakeStreamOptions = {
|
|
2
2
|
/** Stream allocates an arrayBuffer. Enables use of a default reader. */
|
|
3
3
|
autoAllocateChunkSize?: number;
|
|
4
4
|
/** Total number of chunks in queue before back pressure is applied */
|
|
5
5
|
highWaterMark?: number;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Builds a DOM stream from an iterator
|
|
10
|
+
* This stream is currently used in browsers only,
|
|
11
|
+
* but note that Web stream support is present in Node from Node 16
|
|
12
|
+
* https://nodejs.org/api/webstreams.html#webstreams_web_streams_api
|
|
13
|
+
*/
|
|
14
|
+
export function makeStream<ArrayBuffer>(
|
|
10
15
|
source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,
|
|
11
|
-
options?:
|
|
16
|
+
options?: MakeStreamOptions
|
|
12
17
|
): ReadableStream {
|
|
13
18
|
const iterator = source[Symbol.asyncIterator]
|
|
14
19
|
? (source as AsyncIterable<ArrayBuffer>)[Symbol.asyncIterator]()
|
|
@@ -19,7 +24,6 @@ export function makeDOMStream<ArrayBuffer>(
|
|
|
19
24
|
// Create a byte stream (enables `Response(stream).arrayBuffer()`)
|
|
20
25
|
// Only supported on Chrome
|
|
21
26
|
// See: https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController
|
|
22
|
-
// @ts-expect-error Only Chrome supports byte streams
|
|
23
27
|
type: 'bytes',
|
|
24
28
|
|
|
25
29
|
async pull(controller) {
|
|
@@ -29,6 +33,7 @@ export function makeDOMStream<ArrayBuffer>(
|
|
|
29
33
|
controller.close();
|
|
30
34
|
} else {
|
|
31
35
|
// TODO - ignores controller.desiredSize
|
|
36
|
+
// @ts-expect-error Unclear why value is not correctly typed
|
|
32
37
|
controller.enqueue(new Uint8Array(value));
|
|
33
38
|
}
|
|
34
39
|
} catch (error) {
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {ReadableOptions} from 'stream';
|
|
2
|
+
import * as Stream from 'stream';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
class _Readable {}
|
|
5
|
+
|
|
6
|
+
type ReadableType = Stream.Readable | _Readable;
|
|
7
|
+
const Readable = Stream.Readable || _Readable;
|
|
8
|
+
|
|
9
|
+
export type MakeStreamOptions = ReadableOptions;
|
|
4
10
|
|
|
5
11
|
/** Builds a node stream from an iterator */
|
|
6
|
-
function
|
|
12
|
+
export function makeStream<ArrayBuffer>(
|
|
7
13
|
source: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>,
|
|
8
14
|
options?: ReadableOptions
|
|
9
|
-
):
|
|
15
|
+
): ReadableType {
|
|
10
16
|
const iterator = source[Symbol.asyncIterator]
|
|
11
17
|
? source[Symbol.asyncIterator]()
|
|
12
18
|
: source[Symbol.iterator]();
|
|
@@ -63,8 +69,3 @@ class AsyncIterableReadable extends Readable {
|
|
|
63
69
|
return !this.readable;
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
|
-
|
|
67
|
-
// This module is marked `false` in the the "browser" field of the `package.json` for
|
|
68
|
-
// `@loaders.gl/core`. We avoid using named exports so that bundlers have an easier
|
|
69
|
-
// time resolving this "empty" module.
|
|
70
|
-
export default makeNodeStream;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
// Copyright 2022 Foursquare Labs, Inc
|
|
3
|
+
|
|
4
|
+
/* global TextEncoder, TextDecoder */
|
|
5
|
+
import {concatenateArrayBuffers, Writer, WriterOptionsType} from '@loaders.gl/loader-utils';
|
|
6
|
+
import {Table} from '@loaders.gl/schema';
|
|
7
|
+
|
|
8
|
+
export async function encodeTable<WriterT extends Writer = Writer>(
|
|
9
|
+
data: Table,
|
|
10
|
+
writer: WriterT,
|
|
11
|
+
options?: WriterOptionsType<WriterT>
|
|
12
|
+
): Promise<ArrayBuffer> {
|
|
13
|
+
if (writer.encode) {
|
|
14
|
+
return await writer.encode(data, options);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (writer.encodeText) {
|
|
18
|
+
const text = await writer.encodeText(data, options);
|
|
19
|
+
return new TextEncoder().encode(text);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (writer.encodeInBatches) {
|
|
23
|
+
// Create an iterator representing the data
|
|
24
|
+
// TODO - Assumes this is a table
|
|
25
|
+
const batches = encodeTableInBatches(data, writer, options);
|
|
26
|
+
|
|
27
|
+
// Concatenate the output
|
|
28
|
+
const chunks: ArrayBuffer[] = [];
|
|
29
|
+
for await (const batch of batches) {
|
|
30
|
+
chunks.push(batch);
|
|
31
|
+
}
|
|
32
|
+
return concatenateArrayBuffers(...chunks);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
throw new Error('Writer could not encode data');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function encodeTableAsText<WriterT extends Writer = Writer>(
|
|
39
|
+
data: Table,
|
|
40
|
+
writer: WriterT,
|
|
41
|
+
options?: WriterOptionsType<WriterT>
|
|
42
|
+
): Promise<string> {
|
|
43
|
+
if (writer.text && writer.encodeText) {
|
|
44
|
+
return await writer.encodeText(data, options);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (writer.text && (writer.encode || writer.encodeInBatches)) {
|
|
48
|
+
const arrayBuffer = await encodeTable(data, writer, options);
|
|
49
|
+
return new TextDecoder().decode(arrayBuffer);
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Writer could not encode data as text');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function encodeTableInBatches<WriterT extends Writer = Writer>(
|
|
55
|
+
data: Table,
|
|
56
|
+
writer: WriterT,
|
|
57
|
+
options?: WriterOptionsType<WriterT>
|
|
58
|
+
): AsyncIterable<ArrayBuffer> {
|
|
59
|
+
if (writer.encodeInBatches) {
|
|
60
|
+
const dataIterator = getIterator(data);
|
|
61
|
+
// @ts-expect-error
|
|
62
|
+
return writer.encodeInBatches(dataIterator, options);
|
|
63
|
+
}
|
|
64
|
+
// TODO -fall back to atomic encode?
|
|
65
|
+
throw new Error('Writer could not encode data in batches');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function getIterator(data) {
|
|
69
|
+
const dataIterator = [{table: data, start: 0, end: data.length}];
|
|
70
|
+
return dataIterator;
|
|
71
|
+
}
|
package/src/lib/api/encode.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {Writer, WriterOptions, canEncodeWithWorker} from '@loaders.gl/loader-utils';
|
|
2
|
+
import {processOnWorker} from '@loaders.gl/worker-utils';
|
|
2
3
|
import {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';
|
|
3
4
|
import {isBrowser} from '@loaders.gl/loader-utils';
|
|
4
5
|
import {writeFile} from '../fetch/write-file';
|
|
5
6
|
import {fetchFile} from '../fetch/fetch-file';
|
|
7
|
+
import {getLoaderOptions} from './loader-options';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Encode loaded data into a binary ArrayBuffer using the specified Writer.
|
|
@@ -10,8 +12,15 @@ import {fetchFile} from '../fetch/fetch-file';
|
|
|
10
12
|
export async function encode(
|
|
11
13
|
data: any,
|
|
12
14
|
writer: Writer,
|
|
13
|
-
options?:
|
|
15
|
+
options?: WriterOptions
|
|
14
16
|
): Promise<ArrayBuffer> {
|
|
17
|
+
const globalOptions = getLoaderOptions() as WriterOptions;
|
|
18
|
+
// const globalOptions: WriterOptions = {}; // getWriterOptions();
|
|
19
|
+
options = {...globalOptions, ...options};
|
|
20
|
+
if (canEncodeWithWorker(writer, options)) {
|
|
21
|
+
return await processOnWorker(writer, data, options);
|
|
22
|
+
}
|
|
23
|
+
|
|
15
24
|
// TODO Merge default writer options with options argument like it is done in load module.
|
|
16
25
|
if (writer.encode) {
|
|
17
26
|
return await writer.encode(data, options);
|
|
@@ -63,7 +72,7 @@ export async function encode(
|
|
|
63
72
|
/**
|
|
64
73
|
* Encode loaded data into a binary ArrayBuffer using the specified Writer.
|
|
65
74
|
*/
|
|
66
|
-
export function encodeSync(data: any, writer: Writer, options?:
|
|
75
|
+
export function encodeSync(data: any, writer: Writer, options?: WriterOptions): ArrayBuffer {
|
|
67
76
|
if (writer.encodeSync) {
|
|
68
77
|
return writer.encodeSync(data, options);
|
|
69
78
|
}
|
|
@@ -79,7 +88,7 @@ export function encodeSync(data: any, writer: Writer, options?: LoaderOptions):
|
|
|
79
88
|
export async function encodeText(
|
|
80
89
|
data: any,
|
|
81
90
|
writer: Writer,
|
|
82
|
-
options?:
|
|
91
|
+
options?: WriterOptions
|
|
83
92
|
): Promise<string> {
|
|
84
93
|
if (writer.text && writer.encodeText) {
|
|
85
94
|
return await writer.encodeText(data, options);
|
|
@@ -99,10 +108,11 @@ export async function encodeText(
|
|
|
99
108
|
export function encodeInBatches(
|
|
100
109
|
data: any,
|
|
101
110
|
writer: Writer,
|
|
102
|
-
options?:
|
|
111
|
+
options?: WriterOptions
|
|
103
112
|
): AsyncIterable<ArrayBuffer> {
|
|
104
113
|
if (writer.encodeInBatches) {
|
|
105
114
|
const dataIterator = getIterator(data);
|
|
115
|
+
// @ts-expect-error
|
|
106
116
|
return writer.encodeInBatches(dataIterator, options);
|
|
107
117
|
}
|
|
108
118
|
// TODO -fall back to atomic encode?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type {LoaderWithParser, LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {isLoaderObject} from '../loader-utils/normalize-loader';
|
|
3
|
-
import {getFetchFunction} from '../loader-utils/
|
|
3
|
+
import {getFetchFunction} from '../loader-utils/get-fetch-function';
|
|
4
4
|
|
|
5
5
|
import {parseInBatches} from './parse-in-batches';
|
|
6
6
|
|
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,
|
|
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
|
}
|
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
12
|
import {getResourceUrlAndType} 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,7 +61,7 @@ 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
67
|
const {url} = getResourceUrlAndType(data);
|
|
@@ -49,7 +78,7 @@ 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
84
|
context = getLoaderContext({url, parse, loaders: candidateLoaders}, options, context);
|
|
@@ -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];
|