structured-field-utils
v1.2.0
Published
Utilities to work with structured fields
Downloads
151
Maintainers
Readme
Structured Field Utilities
Utilities to work with structured fields parsed by the Structured Headers library.
Installation
npm|pnpm|yarn add structured-field-utils
Usage
Items
Setup for the following examples:
import { parseList } from "structured-headers";
import { item } from "sf-utils";
const parsedList = parseList(`"foo";param="something";q=0.7, "bar";q=0.5, "baz";q=0.6`);
Sort
Sorts a list/an array of items (in the structured fields format) based on HTTP rules specified in [RFC9110].
const sortedList = item.sort(parsedList);
Match
Compares requested item with an allowed item to determine if they match.
Return a Boolean
unless any of the parameter values mismatch, in which case it returns a Map
containing the mismatched parameters.
const matched = item.match(parsedList[0], ["foo", new Map([["param", "nothing"]])]);
Media Types
Setup for the following examples:
import { parseList } from "structured-headers";
import { mediaType } from "sf-utils";
const parsedAccept = parseList(`text/html;level=3;q=0.7, text/html;q=0.7, text/plain;q=0.5, text/*;q=0.1`);
Sort
Sorts an array of media-types (in the structured fields format) based on HTTP rules specified in [RFC9110].
const sortedAccept = mediaType.sort(parsedAccept);
Match
Compares requested media-type with an allowed media-type to determine if they match based on type, subtype, and parameters.
Return a Boolean
unless any of the parameter values mismatch, in which case it returns a Map
containing the mismatched parameters.
import { Token } from "structured-headers";
const matched = mediaType.match(parsedAccept[3], [new Token("text/html"), new Map([["level", 2]])]]);
Copyright and License
Copyright © 2024, Rahul Gupta
The source code in this repository is released under the Mozilla Public License v2.0.