@vtaits/form-schema
Version:
Serialization and parsing form values by schema
162 lines (161 loc) • 2.85 kB
JavaScript
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