'use strict' const Koa = require('koa') const app = new Koa() const helmet = require('koa-helmet') const actions = require('./actions.js') const config = require('./modules/config.js') const Router = require('koa-router') const router = new Router() app.context.getURL = router.url.bind(router) const Posts = require('./domain/posts.js')(config.posts) router.get('home', '/', actions.home(config, Posts.posts)) router.get('post', '/post/:filename', actions.post(config, Posts.posts)) for (let [term, items] of Posts.taxonomies) { router.get( `taxon-${term}`, `/${term}/:value`, actions.taxonGenerator(config, term, items) ) } app.use( helmet({ hsts: { setIf: ctx => ctx.secure } }) ) app.use(router.routes()).use(router.allowedMethods()) app.use(actions.serveFiles) module.exports = app