UNPKG

@finde/nofy

Version:

Simple Framework for Simple Things

46 lines (39 loc) 1.34 kB
const Express = require('express'); const expressFileUpload = require('express-fileupload'); const path = require('path'); const fs = require('fs'); const expressStaticGzip = require("express-static-gzip"); module.exports = function Assets(nofy, { express, config }, cb) { if (!config.static) { return cb('SKIP'); } config.static.map(({ prefix, folderPath }) => { const staticPath = path.resolve(nofy.rootDir, folderPath); if (fs.existsSync(staticPath)) { if (!config.useModernCompression) { express.use(prefix, Express.static(staticPath)); } else { express.use(prefix, expressStaticGzip(staticPath, { fallthrough: false, enableBrotli: true, orderPreference: ['br'] })); } } }); const uploadSettings = Object.assign({ useTempFiles: true, tempFileDir: '/tmp', createParentPath: true, preserveExtension: true }, config.uploadSettings || {}); // create temp folder if not exists if (uploadSettings.useTempFiles && !uploadSettings.tempFileDir.startsWith('/')) { const dir = path.resolve(nofy.rootDir, uploadSettings.tempFileDir); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } } express.use(expressFileUpload(uploadSettings)); // allow upload - parser return cb('OK'); };