20 lines
530 B
TypeScript
20 lines
530 B
TypeScript
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
|
|
});
|
|
} |