UNPKG

@httpland/accept-ranges-parser

Version:
24 lines (23 loc) 863 B
import { isString, isToken } from "./deps.js"; import { Msg } from "./constants.js"; /** Serialize string of array into string. * * @example * ```ts * import { stringifyAcceptRanges } from "https://deno.land/x/accept_ranges_parser@$VERSION/stringify.ts"; * import { assertEquals } from "https://deno.land/std/testing/asserts.ts"; * * assertEquals(stringifyAcceptRanges(["bytes"]), "bytes"); * ``` * * @throws {TypeError} If the input is invalid [`<range-unit>`](https://www.rfc-editor.org/rfc/rfc9110#section-14.1-3) format. */ export function stringifyAcceptRanges(acceptRanges) { const targets = isString(acceptRanges) ? [acceptRanges] : acceptRanges; targets.forEach((rangeUnit) => { if (!isToken(rangeUnit)) { throw TypeError(`${Msg.InvalidRangeUnit} "${rangeUnit}"`); } }); return targets.join(", "); }