feat: platform agnostic serveStatic
utility
#480
Merged
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.
π Linked issue
Resolves #31
β Type of change
π Description
This PR implements a platform-agnostic
serveStatic
utility. In order to integrate with each platform,getMeta
andgetContents
method have to be implemented according to the platform requirements.Two additional/optional
encodings
andindexNames
allow to optionally support serving compressed assets and with custom index.html check.A
fallthrough
flag can also be provided and when enabled, the middleware avoids to throw an error or return 404 in case of asset is not matching and instead returnsPromise<false>
for custom logic handling and overlapping routes.This implementation is based on nitro static.ts which @danielroe helped a lot on it's implementation and will be used in downstream after landing.
In future steps, we might also support unstorage and node fs adapters for serve static.
Co-Authored-By: Daniel Roe <[email protected]>
π Checklist