@fmtk/value-collection
v0.1.2
Published
A collection of types and utility functions for manipulating case-insensitive maps of values, such as HTTP headers.
Downloads
2
Readme
value-collection
A collection of types and utility functions for manipulating case-insensitive maps of values, such as HTTP headers.
API
ValueCollection
interface ValueCollection<T> {
[key: string]: T;
}
A key-value map.
addToValues()
function addToValues<T>(values: T[] | T | undefined, value: T): T[] | T;
Adds value
to the end of the values
array, returning a new instead of modifying the original.
addValue()
function addValue<T>(
values: ValueCollection<T[]>,
key: string,
value: T,
): ValueCollection<T[]>;
function addValue<T>(
values: ValueCollection<T | T[]>,
key: string,
value: T,
): ValueCollection<T | T[]>;
Adds a value
to a key
, which may or may not already exist.
findKey()
function findKey<T>(
headers: ValueCollection<T>,
key: string,
): string | undefined;
Does a case-insensitive search for a key and returns the original case or undefined if not found.
getLastValue()
function getLastValue<T>(
values: ValueCollection<T | T[]>,
key: string,
): T | undefined;
function getLastValue<T>(
values: ValueCollection<T[]>,
key: string,
): T | undefined;
Get the last value for a given key
in a map of arrays.
getValue()
function getValue<T>(values: ValueCollection<T>, key: string): T | undefined;
Does a case-insensitive search for a key
and returns the value if it exists.
normalize()
function normalize<T>(values: ValueCollection<T[]>): ValueCollection<T | T[]>;
For a map with array values, returns the result of calling normalizeValue()
to each value, removing undefined values.
normalizeValue()
function normalizeValue<T>(value: T[]): T | T[] | undefined;
If value has zero elements, return undefined; if value has 1 element, return the element; and otherwise return the array.
overrideValues()
function overrideValues<T>(
...collections: ValueCollection<T>[]
): ValueCollection<T>;
Process the collections from left to right, with later values overriding earlier ones.
setValue()
function setValue<T>(
values: ValueCollection<T>,
key: string,
value: T,
): ValueCollection<T>;
Set a value in a collection with a case-insensitive key lookup.
toArrayValue()
function toArrayValue<T>(value: T | T[]): T[];
Ensure that value
is an array.
toArrayValues()
function toArrayValues<T>(
values: ValueCollection<T | T[]>,
): ValueCollection<T[]>;
Convert each value in the map into an array.