mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 18:12:29 +08:00
chore(express-partial-content): solve type errors
This commit is contained in:
parent
7976f43a35
commit
910cd68d0f
@ -44,12 +44,12 @@ export function createPartialContentHandler(contentProvider: ContentProvider, lo
|
||||
// If range is not specified, or the file is empty, return the full stream
|
||||
if (range === null) {
|
||||
logger.debug("createPartialContentHandler: No range found, returning full content.");
|
||||
setContentLengthHeader(totalSize, res);
|
||||
setContentLengthHeader(String(totalSize), res);
|
||||
return getStream().pipe(res);
|
||||
}
|
||||
setContentRangeHeader(range, totalSize, res);
|
||||
let { start, end } = range;
|
||||
setContentLengthHeader(start === end ? 0 : end - start + 1, res);
|
||||
setContentLengthHeader(String(start === end ? 0 : end - start + 1), res);
|
||||
setCacheControlHeaderNoCache(res);
|
||||
// Return 206 Partial Content status
|
||||
logger.debug("createPartialContentHandler: Returning partial content for range: ", JSON.stringify(range));
|
||||
|
@ -4,8 +4,16 @@ import type { Range } from "./Range.js";
|
||||
|
||||
const rangeRegEx = /bytes=([0-9]*)-([0-9]*)/;
|
||||
|
||||
export function parseRangeHeader(range: string, totalSize: number, logger: Logger): Range | null {
|
||||
logger.debug("Un-parsed range is: ", range);
|
||||
export function parseRangeHeader(_range: string | string[] | null | undefined, totalSize: number, logger: Logger): Range | null {
|
||||
logger.debug("Un-parsed range is: ", _range);
|
||||
|
||||
if (!_range?.length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO: Maybe we need to support multiple ranges.
|
||||
const range = Array.isArray(_range) ? _range[0] : _range;
|
||||
|
||||
// 1. If range is not specified or the file is empty, return null.
|
||||
if (!range || range === null || range.length === 0 || totalSize === 0) {
|
||||
return null;
|
||||
|
@ -1,7 +1,7 @@
|
||||
import type { Request, Response } from "express";
|
||||
import type { Range } from "./Range.js";
|
||||
export const getHeader = (name: string, req: Request) => req.headers[name];
|
||||
export const getRangeHeader = getHeader.bind(null, "range");
|
||||
export const getRangeHeader: (req: Request) => string | string[] | undefined = getHeader.bind(null, "range");
|
||||
export 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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user