FileResponseOptions

View Source

Summary

Options for creating a file response with createFileResponse.

Signature

interface FileResponseOptions<file> {
  acceptRanges?: boolean;
  cacheControl?: string;
  digest?: AlgorithmIdentifier | FileDigestFunction<file>;
  etag?: false | "strong" | "weak";
  lastModified?: boolean;
}

Properties

acceptRanges

Whether to support HTTP Range requests for partial content.

When enabled, includes Accept-Ranges header and handles Range requests with 206 Partial Content responses.

Defaults to enabling ranges only for non-compressible MIME types, as defined by isCompressibleMimeType() from @remix-run/mime.

Note: Range requests and compression are mutually exclusive. When Accept-Ranges: bytes is present in the response headers, the compression middleware will not compress the response. This is why the default behavior enables ranges only for non-compressible types.

cacheControl

Cache-Control header value. If not provided, no Cache-Control header will be set.

digest

Hash algorithm or custom digest function for strong ETags.

  • String: Web Crypto API algorithm name ('SHA-256', 'SHA-384', 'SHA-512', 'SHA-1'). Note: Using strong ETags will buffer the entire file into memory before hashing. Consider using weak ETags (default) or a custom digest function for large files.
  • Function: Custom digest computation that receives a file and returns the digest string

Only used when etag: 'strong'. Ignored for weak ETags.

etag

ETag generation strategy.

  • 'weak': Generates weak ETags based on file size and last modified time (W/"<size>-<mtime>")
  • 'strong': Generates strong ETags by hashing file content (requires digest computation)
  • false: Disables ETag generation

lastModified

Whether to include Last-Modified headers.