/
githubmirror
/
react-hook-form
Обзор
Документация
Войти
/
githubmirror
/
react-hook-form
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/logic/iterateFieldsByAction.ts
40 строк
1 KB
Bill
🦦 perf: improve perf and save bundle size (#13591)
25 июл 2026, 04:21
Не верифицирован
25 июл 2026, 04:21
c51f3d8
Код
Авторство
О чём код?
import type { FieldRefs, InternalFieldName, Ref } from '../types'; import { get } from '../utils'; import isObject from '../utils/isObject'; const iterateFieldsByAction = ( fields: FieldRefs, action: (ref: Ref, name: string) => 1 | undefined | void, fieldsNames?: Set<InternalFieldName> | InternalFieldName[] | 0, abortEarly?: boolean, ) => { for (const key of fieldsNames || Object.keys(fields)) { if (key === '_f') { continue; } const field = fieldsNames ? get(fields, key) : fields[key]; if (field) { const { _f } = field; if (_f) { if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) { return true; } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) { return true; } else { if (iterateFieldsByAction(field, action)) { break; } } } else if (isObject(field) || Array.isArray(field)) { if (iterateFieldsByAction(field as FieldRefs, action)) { break; } } } } return; }; export default iterateFieldsByAction;