Split the code, add file server example.

This commit is contained in:
SukantGujar
2019-03-11 13:41:55 +05:30
parent 45439ef50d
commit 2d2d20f6e9
16 changed files with 560 additions and 135 deletions

11
src/utils.ts Normal file
View File

@@ -0,0 +1,11 @@
import { Request, Response } from "express";
import { Range } from "./parseRangeHeader";
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 setCacheControlHeaderNoCache = setHeader.bind(null, "Cache-Control", "no-cache");