Skip non-MVT content types when fetching tiles #3269
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Description
parseContentTypeinmodules/loader-utils/src/lib/request-utils/parse-content-type.tsand exported it frommodules/loader-utils/src/index.ts.MVTTileSource.getTile(modules/mvt/src/mvt-source.ts) to callparseContentTypeonresponse.headers.get('content-type')and early-returnnullfor known non-MVT types (e.g.text/*,application/json,application/xml) or when the header is present but not in the allowlist.MVTFormat.mimeTypesand additionally acceptsimage/*andapplication/octet-streamas valid tile payloads.parseContentType(modules/loader-utils/test/lib/request-utils/parse-content-type.spec.ts) and amvttest that simulates atext/htmlresponse to verifyMVTTileSource#getTileDatareturnsnulland does not callMVTLoader.parse(modules/mvt/test/mvt-source.spec.ts).Testing
modules/loader-utils/test/lib/request-utils/parse-content-type.spec.ts(verifies header normalization)modules/mvt/test/mvt-source.spec.ts(new test verifies HTML responses returnnullandMVTLoader.parseis not invoked)yarn lint fixandyarn test node— both could not be executed in this environment due to missingnode_modules/ install state (install required).Codex Task