Files
outline/server/routes/api/schema.ts
Tom Moor 428b3c9553 chore: Ensure comment data is validated before persisting (#6322)
Fix flash on render of comment create
2023-12-28 10:46:50 -08:00

22 lines
563 B
TypeScript

import formidable from "formidable";
import { Node } from "prosemirror-model";
import { z } from "zod";
import { ProsemirrorData as TProsemirrorData } from "@shared/types";
import { schema } from "@server/editor";
export const BaseSchema = z.object({
body: z.unknown(),
query: z.unknown(),
file: z.custom<formidable.File>().optional(),
});
export const ProsemirrorSchema = z.custom<TProsemirrorData>((val) => {
try {
const node = Node.fromJSON(schema, val);
node.check();
return true;
} catch {
return false;
}
}, "not valid data");