Skip to main content

File

Server Source code Package

Serves static files from a store backend. Reads the file by ingest.path, derives the Content-Type from the file extension, and responds directly. Returns false to stop the transformer chain.

Setup

Install the package:

Loading...

Configure in your code:

Loading...

How it works

  1. Reads ingest.path from the request context
  2. Strips the configured prefix (if set), e.g. /static/image.png becomes image.png
  3. Looks up the remaining path in the store via store.get(key)
  4. If found, derives the Content-Type from the file extension and responds with the content
  5. Returns false to stop the chain. No further transformers or destinations run.
  6. If the file is not found or the path doesn't match the prefix, the event passes through unchanged

Settings

OptionTypeDefaultDescription
prefixstringnoneURL prefix to strip (e.g., /static)
headersRecord<string, string>noneDefault response headers (e.g., Cache-Control)
mimeTypesRecord<string, string>noneExtension overrides (e.g., { ".wasm": "application/wasm" })

Environment

KeyTypeRequiredDescription
storeStore.InstanceYesStore providing file content. Without one, the transformer warns and passes through.

Examples

Cache + file chain

Use native cache on the file transformer to serve cached files from memory, avoiding repeated store reads:

Loading...

Custom MIME types

Loading...

Behavior notes

  • Requires a store: without env.store, every request logs a warning and passes through
  • Prefix matching: if prefix is set and the path doesn't start with it, the event passes through (not an error)
  • Returns false: a served file stops the chain; no destinations receive the event
  • Content-Length: automatically set for string and Buffer content

Next steps

💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)