Migrated admin and media APIs to Nitro
This commit is contained in:
1 parent
ee5809a489
commit
bca41b5e6f
18 files changed
+786
-1
No files matched your search
@@ -0,0 +1,37 @@
|
||||
import { readMultipartFormData, type H3Event, type MultiPartData } from "h3"
|
||||
import { formFieldText, getFormField, getFormFieldValues } from "./upload-files"
|
||||
|
||||
export async function readAdminForm(event: H3Event) {
|
||||
return (await readMultipartFormData(event)) ?? []
|
||||
}
|
||||
|
||||
export function adminFormText(parts: MultiPartData[], key: string) {
|
||||
return formFieldText(getFormField(parts, key))
|
||||
}
|
||||
|
||||
export function adminFormTexts(parts: MultiPartData[], key: string) {
|
||||
return getFormFieldValues(parts, key).map((part) => part.data.toString("utf8"))
|
||||
}
|
||||
|
||||
export function adminFormFile(parts: MultiPartData[], key: string) {
|
||||
const part = getFormField(parts, key)
|
||||
if (!part?.filename) return undefined
|
||||
return { name: part.filename, type: part.type ?? "", data: part.data }
|
||||
}
|
||||
|
||||
export function splitIds(value: string | undefined) {
|
||||
return value === undefined ? undefined : value.split(",").map((id) => id.trim()).filter(Boolean)
|
||||
}
|
||||
|
||||
export function safeFileExtension(fileName: string) {
|
||||
return fileName.split(".")[1]?.replace(/[^A-Za-z0-9]/g, "") ?? ""
|
||||
}
|
||||
|
||||
export function parseOptionalJson(value: string | undefined) {
|
||||
if (value === undefined) return { ok: true as const, value: undefined }
|
||||
try {
|
||||
return { ok: true as const, value: JSON.parse(value) as unknown }
|
||||
} catch {
|
||||
return { ok: false as const }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user