UNPKG

@kentcdodds/tmp-remix-utils

Version:

This package contains simple utility functions to use with [Remix.run](https://remix.run).

19 lines (18 loc) 640 B
import { getHeaders } from "./get-headers.js"; import { parseAcceptHeader } from "./parse-accept-header.js"; export function respondTo(requestOrHeaders, handlers) { let headers = getHeaders(requestOrHeaders); let accept = headers.get("accept"); if (!accept) return handlers.default(); let types = parseAcceptHeader(accept); for (let { type, subtype } of types) { let handler = handlers[`${type}/${subtype}`]; if (handler) return handler(); handler = handlers[subtype]; if (handler) return handler(); handler = handlers[type]; if (handler) return handler(); continue; } return handlers.default(); }