/** @typedef {import('koa').Context} Context */ /** @typedef {import('koa').Next} Next */ /** @typedef {import('koa').Middleware} Middleware */ /** * Koa middleware generator for checking the presence and type of a field in the request body. * * @param {string} field_name - The name of the field to be checked. * @param {string} field_type - The expected type of the field. * @returns {Middleware} Koa middleware function. */ export function syllableRequired(field_name, field_type) { /** * @param {Context} ctx - Koa context object. * @param {Next} next - Next middleware function. */ return async (ctx, next) => { const fieldValue = ctx.request.body[field_name]; if (fieldValue === undefined || typeof fieldValue !== field_type) { ctx.status = 400; // 400 Bad Request ctx.body = { error: `Field '${field_name}' is required and must be of type '${field_type}'.`, }; return; } await next(); }; }