From ca0b97b471a05859b77497c98ab3452ba1def92a Mon Sep 17 00:00:00 2001 From: SukantGujar Date: Mon, 11 Mar 2019 17:34:44 +0530 Subject: [PATCH] Remove express from deps, move out fCP in separate file. --- package.json | 8 ++-- .../fileContentProvider.ts | 28 +++++++++++++ src/examples/express-file-server/index.ts | 39 +++---------------- 3 files changed, 37 insertions(+), 38 deletions(-) create mode 100644 src/examples/express-file-server/fileContentProvider.ts diff --git a/package.json b/package.json index 8510af0ab..243d15c52 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "node-partial-stream", + "name": "express-partial-content", "version": "0.1.0", "main": "dist/index.js", - "repository": "ssh://git@github.com-sukantgujar/SukantGujar/node-partial-stream", + "repository": "ssh://git@github.com-sukantgujar/SukantGujar/express-partial-content", "author": "sukantgujar ", "license": "MIT", "scripts": { @@ -19,7 +19,5 @@ "peerDependencies": { "express": "^4.16.4" }, - "dependencies": { - "express": "^4.16.4" - } + "dependencies": {} } diff --git a/src/examples/express-file-server/fileContentProvider.ts b/src/examples/express-file-server/fileContentProvider.ts new file mode 100644 index 000000000..eaaaaf3b6 --- /dev/null +++ b/src/examples/express-file-server/fileContentProvider.ts @@ -0,0 +1,28 @@ +import { Request } from "express"; +import fs from "fs"; +import { Range, ContentDoesNotExistError, ContentProvider } from "../../index"; +import { existsAsync, statAsync, logger } from "./index"; +export const fileContentProvider: ContentProvider = async (req: Request) => { + const fileName = req.params.name; + const file = `${__dirname}/files/${fileName}`; + if (!(await existsAsync(file))) { + throw new ContentDoesNotExistError(`File doesn't exists: ${file}`); + } + const stats = await statAsync(file); + const totalSize = stats.size; + const mimeType = "application/octet-stream"; + const getStream = (range?: Range) => { + if (!range) { + return fs.createReadStream(file); + } + const { start, end } = range; + logger.debug(`start: ${start}, end: ${end}`); + return fs.createReadStream(file, { start, end }); + }; + return { + fileName, + totalSize, + mimeType, + getStream + }; +}; diff --git a/src/examples/express-file-server/index.ts b/src/examples/express-file-server/index.ts index 6c77e9613..1b2dba6b5 100644 --- a/src/examples/express-file-server/index.ts +++ b/src/examples/express-file-server/index.ts @@ -1,40 +1,13 @@ -import express, { Request } from "express"; +import express from "express"; import { promisify } from "util"; import fs from "fs"; -import { Range, createPartialStreamHandler, ContentDoesNotExistError, ContentProvider } from "../../index"; +import { createPartialStreamHandler } from "../../index"; +import { fileContentProvider } from "./fileContentProvider"; -const statAsync = promisify(fs.stat); -const existsAsync = promisify(fs.exists); +export const statAsync = promisify(fs.stat); +export const existsAsync = promisify(fs.exists); -const fileContentProvider: ContentProvider = async (req: Request) => { - const fileName = req.params.name; - const file = `${__dirname}/files/${fileName}`; - if (!(await existsAsync(file))) { - throw new ContentDoesNotExistError(`File doesn't exists: ${file}`); - } - - const stats = await statAsync(file); - const totalSize = stats.size; - const mimeType = "application/octet-stream"; - const getStream = (range?: Range) => { - if (!range) { - return fs.createReadStream(file); - } - const { start, end } = range; - logger.debug(`start: ${start}, end: ${end}`); - - return fs.createReadStream(file, { start, end }); - }; - - return { - fileName, - totalSize, - mimeType, - getStream - }; -}; - -const logger = { +export const logger = { debug(message: string, extra?: any) { if (extra) { console.log(`[debug]: ${message}`, extra);