UNPKG

webserv

Version:

a quick, flexible, fully typed development server

40 lines 1.79 kB
var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "../util/request", "url", "path", "../util/htmlTemplate", "slash"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const request_1 = require("../util/request"); const url_1 = require("url"); const path_1 = require("path"); const htmlTemplate_1 = require("../util/htmlTemplate"); const slash_1 = __importDefault(require("slash")); function isDirectoryResult(result) { return result && typeof result === 'object' && result.directory && result.files; } exports.directoryTransform = (result, request, response) => { if (!isDirectoryResult(result)) { return; } const { originalUrl, url } = request_1.getParams(request, 'originalUrl', 'url'); const baseUrl = url_1.parse(originalUrl || url.pathname).pathname; const fileLinks = result.files .map((file) => { const relative = slash_1.default(file); const url = slash_1.default(path_1.join(baseUrl, file)); return `<a href="${url}">${relative}</a>`; }) .join('<br>'); response.write(htmlTemplate_1.htmlTemplate('Directory listing', fileLinks)); response.end(); }; }); //# sourceMappingURL=directory.transform.js.map