UNPKG

@vtaits/form-schema

Version:

Serialization and parsing form values by schema

162 lines (161 loc) 2.85 kB
import { parse, serialize, setFieldErrors, validateBeforeSubmit } from "./chunk-3DE3JEEE.js"; // src/fields/dynamic/dynamic.ts async function createGetFieldSchema({ dependencies, fieldSchema, getFieldSchema, getFieldType, values, phase, parents }) { const { getSchema } = fieldSchema; const resultSchema = await getSchema({ dependencies, values, phase, getFieldSchema, getFieldType, parents }); if (!resultSchema) { return getFieldSchema; } return () => resultSchema; } var dynamic = { createGetFieldSchema, serializer: async ({ dependencies, values, name, fieldSchema, getFieldSchema, getFieldType, parents }) => { const { getSchema } = fieldSchema; const resultSchema = await getSchema({ dependencies, values, phase: "serialize", getFieldSchema, getFieldType, parents }); if (!resultSchema) { return {}; } return serialize({ values, names: [name], getFieldSchema, getFieldType, parents }); }, parser: async ({ dependencies, values, name, fieldSchema, getFieldSchema, getFieldType, parents }) => { const { getSchema } = fieldSchema; const resultSchema = await getSchema({ dependencies, values, phase: "parse", getFieldSchema, getFieldType, parents }); if (!resultSchema) { return {}; } return parse({ values, names: [name], getFieldSchema, getFieldType, parents }); }, validatorBeforeSubmit: async ({ dependencies, setError, values, name, fieldSchema, getFieldSchema, getFieldType, parents }) => { const { getSchema } = fieldSchema; const resultSchema = await getSchema({ dependencies, values, phase: "serialize", getFieldSchema, getFieldType, parents }); if (!resultSchema) { return; } validateBeforeSubmit({ setError, values, names: [name], getFieldSchema, getFieldType, parents }); }, errorsSetter: async ({ dependencies, setError, errors, name, fieldSchema, getFieldSchema, getFieldType, values, rawValues, parents }) => { const { getSchema } = fieldSchema; const resultSchema = await getSchema({ dependencies, values: rawValues, phase: "serialize", getFieldSchema, getFieldType, parents }); if (!resultSchema) { return; } setFieldErrors({ setError, errors, names: [name], getFieldSchema, getFieldType, values, rawValues, parents }); } }; export { dynamic }; //# sourceMappingURL=fields_dynamic.js.map