diff --git a/src/Content.ts b/src/Content.ts index c4da1b258..80b03bda7 100644 --- a/src/Content.ts +++ b/src/Content.ts @@ -1,4 +1,4 @@ -import { Range } from "./parseRangeHeader"; +import { Range } from "./Range"; import { Stream } from "stream"; export type Content = { /** diff --git a/src/Range.ts b/src/Range.ts new file mode 100644 index 000000000..f6c11015c --- /dev/null +++ b/src/Range.ts @@ -0,0 +1,4 @@ +export type Range = { + start: number; + end: number; +}; diff --git a/src/index.ts b/src/index.ts index 147587711..fead1668a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,3 +3,4 @@ export * from "./ContentDoesNotExistError"; export * from "./ContentProvider"; export * from "./createPartialStreamHandler"; export * from "./Logger"; +export * from "./Range"; diff --git a/src/parseRangeHeader.ts b/src/parseRangeHeader.ts index 5e917b083..c14158686 100644 --- a/src/parseRangeHeader.ts +++ b/src/parseRangeHeader.ts @@ -1,10 +1,6 @@ import { Logger } from "./Logger"; import { RangeParserError } from "./RangeParserError"; - -export type Range = { - start: number; - end: number; -}; +import { Range } from "./Range"; const rangeRegEx = /bytes=([0-9]*)-([0-9]*)/; diff --git a/src/utils.ts b/src/utils.ts index 7324679bb..600660f2b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,11 +1,13 @@ import { Request, Response } from "express"; -import { Range } from "./parseRangeHeader"; +import { Range } from "./Range"; const getHeader = (name: string, req: Request) => req.headers[name]; export const getRangeHeader = getHeader.bind(null, "range"); const setHeader = (name: string, value: string, res: Response) => res.setHeader(name, value); export const setContentTypeHeader = setHeader.bind(null, "Content-Type"); export const setContentLengthHeader = setHeader.bind(null, "Content-Length"); export const setAcceptRangesHeader = setHeader.bind(null, "Accept-Ranges", "bytes"); -export const setContentRangeHeader = (range: Range | null, size: number, res: Response) => setHeader("Content-Range", `bytes ${range ? `${range.start}-${range.end}` : "*"}/${size}`, res); -export const setContentDispositionHeader = (fileName: string, res: Response) => setHeader("Content-Disposition", `attachment; filename="${fileName}"`, res); +export const setContentRangeHeader = (range: Range | null, size: number, res: Response) => + setHeader("Content-Range", `bytes ${range ? `${range.start}-${range.end}` : "*"}/${size}`, res); +export const setContentDispositionHeader = (fileName: string, res: Response) => + setHeader("Content-Disposition", `attachment; filename="${fileName}"`, res); export const setCacheControlHeaderNoCache = setHeader.bind(null, "Cache-Control", "no-cache");