structured-field-utils
TypeScript icon, indicating that this package has built-in type declarations

1.1.0-nested-sf.0 • Public • Published

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.

Package Sidebar

Install

npm i structured-field-utils

Weekly Downloads

1

Version

1.1.0-nested-sf.0

License

MPL-2.0

Unpacked Size

32.9 kB

Total Files

15

Last publish

Collaborators

  • cxres