mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Move serve-static to typescript (#5833)
This commit is contained in:
parent
5d2250ac27
commit
3c62b07593
|
@ -41,6 +41,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@taskr/clear": "1.1.0",
|
"@taskr/clear": "1.1.0",
|
||||||
"@taskr/watch": "1.1.0",
|
"@taskr/watch": "1.1.0",
|
||||||
|
"@types/send": "0.14.4",
|
||||||
"taskr": "1.1.0",
|
"taskr": "1.1.0",
|
||||||
"typescript": "3.1.6"
|
"typescript": "3.1.6"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,9 +6,9 @@ import fs from 'fs'
|
||||||
import {
|
import {
|
||||||
renderToHTML,
|
renderToHTML,
|
||||||
renderErrorToHTML,
|
renderErrorToHTML,
|
||||||
sendHTML,
|
sendHTML
|
||||||
serveStatic
|
|
||||||
} from './render'
|
} from './render'
|
||||||
|
import {serveStatic} from './serve-static'
|
||||||
import Router, {route} from './router'
|
import Router, {route} from './router'
|
||||||
import { isInternalUrl, isBlockedPage } from './utils'
|
import { isInternalUrl, isBlockedPage } from './utils'
|
||||||
import loadConfig from 'next-server/next-config'
|
import loadConfig from 'next-server/next-config'
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { renderToString, renderToStaticMarkup } from 'react-dom/server'
|
import { renderToString, renderToStaticMarkup } from 'react-dom/server'
|
||||||
import send from 'send'
|
|
||||||
import generateETag from 'etag'
|
import generateETag from 'etag'
|
||||||
import fresh from 'fresh'
|
import fresh from 'fresh'
|
||||||
import requirePage, {normalizePagePath} from './require'
|
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) {
|
export function renderToHTML (req, res, pathname, query, opts) {
|
||||||
return doRender(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.' }
|
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)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
20
packages/next-server/server/serve-static.ts
Normal file
20
packages/next-server/server/serve-static.ts
Normal file
|
@ -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<void> {
|
||||||
|
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)
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in a new issue