@remix-run/headers
Version:
A toolkit for working with HTTP headers in JavaScript
64 lines • 1.97 kB
TypeScript
import { type HeaderValue } from './header-value.ts';
/**
* Initializer for a `Range` header value.
*/
export interface RangeInit {
/**
* The unit of the range, typically "bytes"
*/
unit?: string;
/**
* The ranges requested. Each range has optional start and end values.
* - {start: 0, end: 99} = bytes 0-99
* - {start: 100} = bytes 100- (from 100 to end)
* - {end: 500} = bytes -500 (last 500 bytes)
*/
ranges?: Array<{
start?: number;
end?: number;
}>;
}
/**
* The value of a `Range` HTTP header.
*
* [MDN `Range` Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range)
*
* [HTTP/1.1 Specification](https://httpwg.org/specs/rfc9110.html#field.range)
*/
export declare class Range implements HeaderValue, RangeInit {
unit: string;
ranges: Array<{
start?: number;
end?: number;
}>;
/**
* @param init A string or object to initialize the header
*/
constructor(init?: string | RangeInit);
/**
* Checks if this range can be satisfied for a resource of the given size.
*
* @param resourceSize The size of the resource in bytes
* @return `false` if the range is malformed or all ranges are beyond the resource size
*/
canSatisfy(resourceSize: number): boolean;
/**
* Normalizes the ranges for a resource of the given size.
* Returns an array of ranges with resolved start and end values.
* Returns an empty array if the range cannot be satisfied.
*
* @param resourceSize The size of the resource in bytes
* @return An array of ranges with resolved start and end values
*/
normalize(resourceSize: number): Array<{
start: number;
end: number;
}>;
/**
* Returns the string representation of the header value.
*
* @return The header value as a string
*/
toString(): string;
}
//# sourceMappingURL=range.d.ts.map