mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +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
	 Elian Doran
						Elian Doran