From 3c62b07593a02b3ea8a05e2203af274ce5f69d6b Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Thu, 6 Dec 2018 16:54:33 +0100 Subject: [PATCH] Move serve-static to typescript (#5833) --- packages/next-server/package.json | 1 + packages/next-server/server/next-server.js | 4 ++-- packages/next-server/server/render.js | 19 ------------------- packages/next-server/server/serve-static.ts | 20 ++++++++++++++++++++ 4 files changed, 23 insertions(+), 21 deletions(-) create mode 100644 packages/next-server/server/serve-static.ts diff --git a/packages/next-server/package.json b/packages/next-server/package.json index 90092bc5..520adf9c 100644 --- a/packages/next-server/package.json +++ b/packages/next-server/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@taskr/clear": "1.1.0", "@taskr/watch": "1.1.0", + "@types/send": "0.14.4", "taskr": "1.1.0", "typescript": "3.1.6" }, diff --git a/packages/next-server/server/next-server.js b/packages/next-server/server/next-server.js index bd86be3c..94c57262 100644 --- a/packages/next-server/server/next-server.js +++ b/packages/next-server/server/next-server.js @@ -6,9 +6,9 @@ import fs from 'fs' import { renderToHTML, renderErrorToHTML, - sendHTML, - serveStatic + sendHTML } from './render' +import {serveStatic} from './serve-static' import Router, {route} from './router' import { isInternalUrl, isBlockedPage } from './utils' import loadConfig from 'next-server/next-config' diff --git a/packages/next-server/server/render.js b/packages/next-server/server/render.js index 3910aa57..ae653bfd 100644 --- a/packages/next-server/server/render.js +++ b/packages/next-server/server/render.js @@ -1,7 +1,6 @@ import { join } from 'path' import React from 'react' import { renderToString, renderToStaticMarkup } from 'react-dom/server' -import send from 'send' import generateETag from 'etag' import fresh from 'fresh' import requirePage, {normalizePagePath} from './require' @@ -23,9 +22,6 @@ function getDynamicImportBundles (manifest, moduleIds) { }, []) } -// since send doesn't support wasm yet -send.mime.define({ 'application/wasm': ['wasm'] }) - export function renderToHTML (req, res, pathname, query, opts) { return doRender(req, res, pathname, query, opts) } @@ -220,18 +216,3 @@ function serializeError (dev, err) { return { message: '500 - Internal Server Error.' } } - -export function serveStatic (req, res, path) { - return new Promise((resolve, reject) => { - send(req, path) - .on('directory', () => { - // We don't allow directories to be read. - const err = new Error('No directory access') - err.code = 'ENOENT' - reject(err) - }) - .on('error', reject) - .pipe(res) - .on('finish', resolve) - }) -} diff --git a/packages/next-server/server/serve-static.ts b/packages/next-server/server/serve-static.ts new file mode 100644 index 00000000..a946e247 --- /dev/null +++ b/packages/next-server/server/serve-static.ts @@ -0,0 +1,20 @@ +import {IncomingMessage, ServerResponse} from 'http' +import send from 'send' + +// since send doesn't support wasm yet +send.mime.define({ 'application/wasm': ['wasm'] }) + +export function serveStatic (req: IncomingMessage, res: ServerResponse, path: string): Promise { + return new Promise((resolve, reject) => { + send(req, path) + .on('directory', () => { + // We don't allow directories to be read. + const err: any = new Error('No directory access') + err.code = 'ENOENT' + reject(err) + }) + .on('error', reject) + .pipe(res) + .on('finish', resolve) + }) +}