From 782c8098570c69c30992bc77dd6e911532b649a4 Mon Sep 17 00:00:00 2001 From: David Ralph Date: Mon, 18 Feb 2019 12:04:14 +0000 Subject: [PATCH] general code improvements part 4 --- model/middleware/static.js | 56 +++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/model/middleware/static.js b/model/middleware/static.js index 9f98514..1ff35ab 100644 --- a/model/middleware/static.js +++ b/model/middleware/static.js @@ -1,45 +1,45 @@ -const { createReadStream, readFileSync, readFile, stat } = require( 'fs' ); -const { join, extname } = require( 'path' ); +const { join, extname } = require('path'); +const { createReadStream, readFileSync, readFile, stat } = require('fs'); -const mimes = JSON.parse( readFileSync( join( __dirname, 'mimes.json' ) ) ); +const mimes = JSON.parse(readFileSync(join(__dirname, 'mimes.json'))); -module.exports = ( baseDir, indexFile ) => { +module.exports = (baseDir, indexFile) => { if (!baseDir) throw new Error('The argument "baseDir" is required for the extension "kirbe:static"'); indexFile = typeof indexFile === 'string' ? indexFile : 'index.html'; - return( req, res, next ) => { - if( req.method !== 'GET' ) { next(); return; } + return(req, res, next) => { + if (req.method !== 'GET') { next(); return; } let requestedPath = req.parsedUrl.pathname.replace( /\/.\.\//g, '' ); - let requestedExt = extname( requestedPath ); + let requestedExt = extname(requestedPath); - const filePath = join( baseDir, requestedPath ); + const filePath = join(baseDir, requestedPath ; - stat( filePath, ( err, stats ) => { - if( err ) { next(); return; } + stat(filePath, (err, stats) => { + if (err ) { next(); return; } - if( stats.isFile() ) { - stats.mtime.setMilliseconds( 0 ); - if ( stats.mtime <= new Date( req.headers[ 'if-modified-since' ] ) ) res.status( 304 ).end(); - else createReadStream( filePath ).pipe( res.status( 200 ).coreRes ); + if (stats.isFile()) { + stats.mtime.setMilliseconds(0); + if (stats.mtime <= new Date(req.headers['if-modified-since'])) res.status(304).end(); + else createReadStream(filePath).pipe(res.status(200).coreRes); } else { - if ( req.parsedUrl.pathname.charAt( req.parsedUrl.pathname.length -1 ) !== '/' ) { - res.status(302).header({ 'Location': `${req.parsedUrl.pathname}/` }).end(); - return; + if (req.parsedUrl.pathname.charAt(req.parsedUrl.pathname.length -1 ) !== '/') { + res.status(302).header({'Location': `${req.parsedUrl.pathname}/`}).end(); + return; } - requestedPath = join( filePath, indexFile ); - requestedExt = extname( requestedPath ); + requestedPath = join(filePath, indexFile); + requestedExt = extname(requestedPath); - readFile( requestedPath, ( err, data ) => { - if (err) next(); - else { - res.body( data ).status(200).header({ - 'Content-Type': ( mimes.hasOwnProperty( requestedExt ) ? mimes[ requestedExt ] : 'application/octet-stream' ), - 'Last-Modified': stats.mtime.toString() - }).end(); - } - }); + readFile(requestedPath, (err, data) => { + if (err) next(); + else { + res.body(data).status(200).header({ + 'Content-Type': ( mimes.hasOwnProperty(requestedExt) ? mimes[requestedExt] : 'application/octet-stream' ), + 'Last-Modified': stats.mtime.toString() + }).end(); + } + }); } }); };