UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

43 lines (42 loc) 1.14 kB
"use strict"; exports.__esModule = true; exports.useValidator = useValidator; var _react = require("react"); var _validator = require("../validator"); var validateOptions = { strict: true, abortEarly: true, stripUnknown: false, recursive: true }; function useValidator(data, dataDeps, schema, schemaDeps) { var _dataDeps; var _schema; var _schemaDeps; if (Array.isArray(dataDeps)) { _dataDeps = dataDeps; _schema = schema; _schemaDeps = schemaDeps || []; } else { _dataDeps = []; _schema = dataDeps; _schemaDeps = schema || []; } var yupSchema = (0, _react.useMemo)(function () { var schemaOrObjectDefinitions = _schema(_validator.yup); // @ts-ignore if (schemaOrObjectDefinitions.__isYupSchema__) { return schemaOrObjectDefinitions; } return _validator.yup.object(schemaOrObjectDefinitions); }, _schemaDeps); var result = (0, _react.useMemo)(function () { var r = yupSchema.validatePlusSync(data, validateOptions); return { data: r.data, valid: !r.error, error: r.error }; }, [].concat(_dataDeps, [yupSchema])); return result; }