mirror of https://github.com/wg-easy/wg-easy
9 changed files with 22 additions and 75 deletions
@ -1,31 +0,0 @@ |
|||
import type { H3Event, InferEventInput } from 'h3'; |
|||
|
|||
export async function readValidatedFormData< |
|||
Event extends H3Event = H3Event, |
|||
T = InferEventInput<'body', Event, null>, |
|||
>(event: Event, validate: (data: FormData) => T) { |
|||
const _form = await readFormData(event); |
|||
return validateData(_form, validate); |
|||
} |
|||
|
|||
async function validateData<T, K>(data: T, fn: (data: T) => K) { |
|||
try { |
|||
const res = await fn(data); |
|||
if (res === false) { |
|||
throw createValidationError(); |
|||
} |
|||
return res; |
|||
} catch (error) { |
|||
throw createValidationError(error); |
|||
} |
|||
} |
|||
|
|||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|||
function createValidationError(validateError?: any) { |
|||
throw createError({ |
|||
status: 400, |
|||
statusMessage: 'Validation Error', |
|||
message: validateError?.message || 'Validation Error', |
|||
data: validateError, |
|||
}); |
|||
} |
Loading…
Reference in new issue