@mrgalaxy/tjme
Version:
My personal website.
43 lines • 1.8 kB
JavaScript
;
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