Справочник API
Типы TypeScript
Все основные публичные типы экспортируются из корня пакета:
import type {
// Схема поля
FieldDefinition,
FieldType,
FieldOption,
// Маскирование
MaskConfig,
MaskPreset,
// Валидация
ValidatorFn,
AsyncValidatorFn,
// useForm
UseFormConfig,
UseFormReturn,
ValidateOn,
ValidateMode,
// Адаптеры схем
TypedFieldDefinitions,
JSONSchema,
JSONSchemaField,
BuiltinRule,
InferValues,
// Кастомные компоненты / реестр
FormFieldProps,
ComponentMap,
// useFieldArray
FieldArrayRow,
UseFieldArrayReturn,
// useMultiStepForm
MultiStepFormReturn,
// useFormDebug
FormSnapshot,
// Ошибки с сервера
NormalizedServerErrors,
ServerErrorFormat,
ServerErrorMapper,
ApplyServerErrorsOptions,
} from '@macrulez/vue-form-schema'Точка входа /openapi экспортирует собственные дополнительные типы, не реэкспортированные из корня (важны только если вы вызываете parseJSONSchema/parseOpenAPI напрямую):
import type {
JSONSchemaObject,
JSONSchemaDocument,
InferJSONSchema,
OpenAPISchemaSelector,
OpenAPIRequestBodySelector,
} from '@macrulez/vue-form-schema/openapi'Утилиты для путей
Низкоуровневые хелперы для dot-path, используемые внутри useForm/useFieldArray и экспортированные для тех, кто строит собственную обвязку вокруг значений полей за пределами встроенных composables.
getByPath
(obj: Record<string, unknown>, path: string) => unknown
Читает вложенное значение по dot-path — getByPath({ address: { city: 'NY' } }, 'address.city') возвращает 'NY'. Возвращает undefined для отсутствующего или не-объектного промежуточного сегмента, никогда не выбрасывает исключение.
setByPath
(obj: Record<string, unknown>, path: string, value: unknown) => Record<string, unknown>
Записывает вложенное значение по dot-path, создавая промежуточные объекты по мере необходимости, и возвращает (изменённый) объект.
import { getByPath, setByPath } from '@macrulez/vue-form-schema'
const values = { address: { city: 'NY' } }
getByPath(values, 'address.city') // 'NY'
setByPath(values, 'address.zip', '10001')
// values теперь { address: { city: 'NY', zip: '10001' } }