Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

Commit 910cd68

Browse files
committed
chore(express-partial-content): solve type errors
1 parent 7976f43 commit 910cd68

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

packages/express-partial-content/src/createPartialContentHandler.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ export function createPartialContentHandler(contentProvider: ContentProvider, lo
4444
// If range is not specified, or the file is empty, return the full stream
4545
if (range === null) {
4646
logger.debug("createPartialContentHandler: No range found, returning full content.");
47-
setContentLengthHeader(totalSize, res);
47+
setContentLengthHeader(String(totalSize), res);
4848
return getStream().pipe(res);
4949
}
5050
setContentRangeHeader(range, totalSize, res);
5151
let { start, end } = range;
52-
setContentLengthHeader(start === end ? 0 : end - start + 1, res);
52+
setContentLengthHeader(String(start === end ? 0 : end - start + 1), res);
5353
setCacheControlHeaderNoCache(res);
5454
// Return 206 Partial Content status
5555
logger.debug("createPartialContentHandler: Returning partial content for range: ", JSON.stringify(range));

packages/express-partial-content/src/parseRangeHeader.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,16 @@ import type { Range } from "./Range.js";
44

55
const rangeRegEx = /bytes=([0-9]*)-([0-9]*)/;
66

7-
export function parseRangeHeader(range: string, totalSize: number, logger: Logger): Range | null {
8-
logger.debug("Un-parsed range is: ", range);
7+
export function parseRangeHeader(_range: string | string[] | null | undefined, totalSize: number, logger: Logger): Range | null {
8+
logger.debug("Un-parsed range is: ", _range);
9+
10+
if (!_range?.length) {
11+
return null;
12+
}
13+
14+
// TODO: Maybe we need to support multiple ranges.
15+
const range = Array.isArray(_range) ? _range[0] : _range;
16+
917
// 1. If range is not specified or the file is empty, return null.
1018
if (!range || range === null || range.length === 0 || totalSize === 0) {
1119
return null;

packages/express-partial-content/src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Request, Response } from "express";
22
import type { Range } from "./Range.js";
33
export const getHeader = (name: string, req: Request) => req.headers[name];
4-
export const getRangeHeader = getHeader.bind(null, "range");
4+
export const getRangeHeader: (req: Request) => string | string[] | undefined = getHeader.bind(null, "range");
55
export const setHeader = (name: string, value: string, res: Response) => res.setHeader(name, value);
66
export const setContentTypeHeader = setHeader.bind(null, "Content-Type");
77
export const setContentLengthHeader = setHeader.bind(null, "Content-Length");

0 commit comments

Comments
 (0)