"use strict"; const send = require("koa-send"); const responders = require("./responders"); function home(config, posts) { const postsArray = Array.from(posts.values()); return async function(ctx, next) { responders.home(ctx, config, postsArray); }; } function post(config, posts) { return async function(ctx, next) { ctx.assert(posts.has(ctx.params.filename), 404, "Post not found"); const post = posts.get(ctx.params.filename); responders.post(ctx, config, post); }; } function taxonGenerator(config, term, items) { return async function(ctx, next) { const value = ctx.params.value; ctx.assert(items.has(ctx.params.value), 404, `${term} ${value} not found`); const taxonItems = items.get(value); responders.taxon(ctx, config, term, value, taxonItems); }; } const prefix = /^\/static\//; async function serveFiles(ctx) { if (prefix.test(ctx.path)) { await send(ctx, ctx.path.replace(prefix, ""), { root: "./static" }); } } module.exports = { home, post, taxonGenerator, serveFiles };