import { FieldSchema, type StructureProcessor, StructureSchema } from '@ephox/boulder'; import { Arr } from '@ephox/katamari'; import type { DialogData, DialogSpec } from '../components/dialog/Dialog'; import { getDataProcessor, getNamedItems } from './DataProcessors'; export const createDataValidator = (structure: DialogSpec): StructureProcessor => { const namedItems = getNamedItems(structure); const fields = Arr.bind(namedItems, (item) => getDataProcessor(item).fold( () => [], (schema) => [ FieldSchema.requiredOf(item.name, schema) ] )); return StructureSchema.objOf(fields); };