UNPKG

@mrgalaxy/tjme

Version:
43 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const express_1 = tslib_1.__importDefault(require("express")); const nunjucks_1 = tslib_1.__importDefault(require("nunjucks")); const os_1 = tslib_1.__importDefault(require("os")); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const colors_1 = require("./colors"); const pkgsrc = fs_1.default.readFileSync(path_1.default.resolve(__dirname, "../package.json"), "utf8"); const pkg = JSON.parse(pkgsrc); function default_1(opts = {}) { const { name = pkg.name, version = pkg.version || "edge", hostname = os_1.default.hostname(), template } = opts; const app = (0, express_1.default)(); // create nunjucks enviornment app.set("view engine", "html"); app.nunjucks = nunjucks_1.default.configure(path_1.default.join(__dirname, "../views"), { express: app, autoescape: true, watch: process.env.NODE_ENV === "development", }); // construct template data Object.assign(app.locals, Object.assign(Object.assign({ name, version }, template), { getRandomColor: colors_1.getRandomColor, title: "My Name is Tyler Johnson." })); app.disable("x-powered-by"); app.use(function (req, res, next) { res.set("X-Served-By", `${name} ${version} (${hostname})`); next(); }); // public folder app.use("/assets", express_1.default.static(path_1.default.join(__dirname, "../public"))); // home page app.get("/", function (_, res) { res.render("index"); }); // 404 app.use(function (_, res) { res.status(404).render("notfound"); }); return app; } exports.default = default_1; //# sourceMappingURL=index.js.map