UNPKG

@versatiles/server

Version:
22 lines (21 loc) 694 B
import { existsSync } from 'fs'; import { readFile, stat } from 'fs/promises'; import { resolve } from 'path'; import { getMimeByFilename } from './mime_types.js'; export async function getFileContent(staticFolder, path) { let filename = resolve(staticFolder, path.replace(/^\/+/, '')); if (!filename.startsWith(staticFolder)) return; if (!existsSync(filename)) return; if ((await stat(filename)).isDirectory()) { filename = resolve(filename, 'index.html'); if (!existsSync(filename)) return; } return { buffer: await readFile(filename), compression: 'raw', mime: getMimeByFilename(filename), }; }