import { Middleware } from "koa"; import getTemplate from "./hb"; interface IFormConfigField { type: "text" | "number" | "boolean" | "textarea"; label: string; value?: string; } type IFormConfig = { [name: string]: IFormConfigField } export default function getForm(url: string, title: string, fieldConfig: IFormConfig): Middleware { let fields = Object.keys(fieldConfig).map(name => ({ name, ...fieldConfig[name] })) return ctx => ctx.body = getTemplate("forms")({ url, title, fields }); }