Socket
Socket
Sign inDemoInstall

@hookform/resolvers

Package Overview
Dependencies
Maintainers
3
Versions
118
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hookform/resolvers - npm Package Compare versions

Comparing version 2.0.0-beta.10 to 2.0.0-beta.11

2

package.json
{
"name": "@hookform/resolvers",
"amdName": "hookformResolvers",
"version": "2.0.0-beta.10",
"version": "2.0.0-beta.11",
"description": "React Hook Form validation resolvers: Yup, Joi, Superstruct, Zod, Vest and etc.",

@@ -6,0 +6,0 @@ "main": "dist/resolvers.js",

@@ -1,2 +0,2 @@

var r=require("react-hook-form"),e=require("@hookform/resolvers");function t(){return(t=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])}return r}).apply(this,arguments)}class o extends TypeError{constructor(r,e){let t;const{message:o,...n}=r,{path:s}=r;super(0===s.length?o:"At path: "+s.join(".")+" -- "+o),Object.assign(this,n),this.name=this.constructor.name,this.failures=()=>{var o;return null!=(o=t)?o:t=[r,...e()]}}}function n(r){return"object"==typeof r&&null!=r}function*s(r,e,t={}){const{path:o=[],branch:i=[r],coerce:a=!1,mask:c=!1}=t,u={path:o,branch:i};if(a&&(r=e.coercer(r,u),c&&"type"!==e.type&&n(e.schema)&&n(r)&&!Array.isArray(r)))for(const t in r)void 0===e.schema[t]&&delete r[t];let f=!0;for(const t of e.validator(r,u))f=!1,yield[t,void 0];for(let[t,l,v]of e.entries(r,u)){const e=s(l,v,{path:void 0===t?o:[...o,t],branch:void 0===t?i:[...i,l],coerce:a,mask:c});for(const o of e)o[0]?(f=!1,yield[o[0],void 0]):a&&(l=o[1],void 0===t?r=l:r instanceof Map?r.set(t,l):r instanceof Set?r.add(l):n(r)&&(r[t]=l))}if(f)for(const t of e.refiner(r,u))f=!1,yield[t,void 0];f&&(yield[void 0,r])}function i(r,e,t={}){const n=s(r,e,t),i=function(r){const{done:e,value:t}=r.next();return e?void 0:t}(n);return i[0]?[new o(i[0],function*(){for(const r of n)r[0]&&(yield r[0])}),void 0]:[void 0,i[1]]}exports.superstructResolver=function(o,n){return function(s,a,c){var u,f,l=c.criteriaMode,v=c.fields;try{var d=i(s,o,n),p=d[0],h=d[1];return Promise.resolve(null!=p?{values:{},errors:e.toNestError((u=p,f="all"===l,u.failures().reduce(function(o,n){var s,i,a,c=n.path,u=n.message,l=void 0===u?"":u,v=n.type,d=e.convertArrayToPathName(c);return t({},o,c?o[d]&&f?((s={})[d]=r.appendErrors(d,f,o,v||"",l),s):((a={})[d]=o[d]||t({message:l,type:v},f?{types:(i={},i[v||""]=l||!0,i)}:{}),a):{})},{})),v)}:{values:h,errors:{}})}catch(r){return Promise.reject(r)}}};
var r=require("@hookform/resolvers"),e=require("superstruct");exports.superstructResolver=function(s,t){return function(u,o,n){var a,i=e.validate(u,s,t);return{values:i[1]||{},errors:i[0]?r.toNestError((a=i[0],a.failures().reduce(function(r,e){return(r[e.path.join(".")]={message:e.message,type:e.type})&&r},{})),n.fields):{}}}};
//# sourceMappingURL=superstruct.js.map

@@ -1,2 +0,2 @@

import{appendErrors as e}from"react-hook-form";import{toNestError as o,convertArrayToPathName as r}from"@hookform/resolvers";function t(){return(t=Object.assign||function(e){for(var o=1;o<arguments.length;o++){var r=arguments[o];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}class n extends TypeError{constructor(e,o){let r;const{message:t,...n}=e,{path:s}=e;super(0===s.length?t:"At path: "+s.join(".")+" -- "+t),Object.assign(this,n),this.name=this.constructor.name,this.failures=()=>{var t;return null!=(t=r)?t:r=[e,...o()]}}}function s(e){return"object"==typeof e&&null!=e}function*i(e,o,r={}){const{path:t=[],branch:n=[e],coerce:c=!1,mask:a=!1}=r,f={path:t,branch:n};if(c&&(e=o.coercer(e,f),a&&"type"!==o.type&&s(o.schema)&&s(e)&&!Array.isArray(e)))for(const r in e)void 0===o.schema[r]&&delete e[r];let l=!0;for(const r of o.validator(e,f))l=!1,yield[r,void 0];for(let[r,u,d]of o.entries(e,f)){const o=i(u,d,{path:void 0===r?t:[...t,r],branch:void 0===r?n:[...n,u],coerce:c,mask:a});for(const t of o)t[0]?(l=!1,yield[t[0],void 0]):c&&(u=t[1],void 0===r?e=u:e instanceof Map?e.set(r,u):e instanceof Set?e.add(u):s(e)&&(e[r]=u))}if(l)for(const r of o.refiner(e,f))l=!1,yield[r,void 0];l&&(yield[void 0,e])}function c(e,o,r={}){const t=i(e,o,r),s=function(e){const{done:o,value:r}=e.next();return o?void 0:r}(t);return s[0]?[new n(s[0],function*(){for(const e of t)e[0]&&(yield e[0])}),void 0]:[void 0,s[1]]}const a=(n,s)=>async(i,a,{criteriaMode:f,fields:l})=>{const[u,d]=c(i,n,s);return null!=u?{values:{},errors:o((p=u,h="all"===f,p.failures().reduce((o,{path:n,message:s="",type:i})=>{const c=r(n);return t({},o,n?o[c]&&h?{[c]:e(c,h,o,i||"",s)}:{[c]:o[c]||t({message:s,type:i},h?{types:{[i||""]:s||!0}}:{})}:{})},{})),l)}:{values:d,errors:{}};var p,h};export{a as superstructResolver};
import{toNestError as r}from"@hookform/resolvers";import{validate as e}from"superstruct";const s=(s,o)=>(t,m,p)=>{const a=e(t,s,o);return{values:a[1]||{},errors:a[0]?r((u=a[0],u.failures().reduce((r,e)=>(r[e.path.join(".")]={message:e.message,type:e.type})&&r,{})),p.fields):{}};var u};export{s as superstructResolver};
//# sourceMappingURL=superstruct.modern.js.map

@@ -1,2 +0,2 @@

import{appendErrors as e}from"react-hook-form";import{toNestError as r,convertArrayToPathName as o}from"@hookform/resolvers";function t(){return(t=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e}).apply(this,arguments)}class n extends TypeError{constructor(e,r){let o;const{message:t,...n}=e,{path:i}=e;super(0===i.length?t:"At path: "+i.join(".")+" -- "+t),Object.assign(this,n),this.name=this.constructor.name,this.failures=()=>{var t;return null!=(t=o)?t:o=[e,...r()]}}}function i(e){return"object"==typeof e&&null!=e}function*s(e,r,o={}){const{path:t=[],branch:n=[e],coerce:a=!1,mask:c=!1}=o,f={path:t,branch:n};if(a&&(e=r.coercer(e,f),c&&"type"!==r.type&&i(r.schema)&&i(e)&&!Array.isArray(e)))for(const o in e)void 0===r.schema[o]&&delete e[o];let l=!0;for(const o of r.validator(e,f))l=!1,yield[o,void 0];for(let[o,u,d]of r.entries(e,f)){const r=s(u,d,{path:void 0===o?t:[...t,o],branch:void 0===o?n:[...n,u],coerce:a,mask:c});for(const t of r)t[0]?(l=!1,yield[t[0],void 0]):a&&(u=t[1],void 0===o?e=u:e instanceof Map?e.set(o,u):e instanceof Set?e.add(u):i(e)&&(e[o]=u))}if(l)for(const o of r.refiner(e,f))l=!1,yield[o,void 0];l&&(yield[void 0,e])}function a(e,r,o={}){const t=s(e,r,o),i=function(e){const{done:r,value:o}=e.next();return r?void 0:o}(t);return i[0]?[new n(i[0],function*(){for(const e of t)e[0]&&(yield e[0])}),void 0]:[void 0,i[1]]}var c=function(n,i){return function(s,c,f){var l,u,d=f.criteriaMode,v=f.fields;try{var p=a(s,n,i),h=p[0],y=p[1];return Promise.resolve(null!=h?{values:{},errors:r((l=h,u="all"===d,l.failures().reduce(function(r,n){var i,s,a,c=n.path,f=n.message,l=void 0===f?"":f,d=n.type,v=o(c);return t({},r,c?r[v]&&u?((i={})[v]=e(v,u,r,d||"",l),i):((a={})[v]=r[v]||t({message:l,type:d},u?{types:(s={},s[d||""]=l||!0,s)}:{}),a):{})},{})),v)}:{values:y,errors:{}})}catch(e){return Promise.reject(e)}}};export{c as superstructResolver};
import{toNestError as r}from"@hookform/resolvers";import{validate as e}from"superstruct";var o=function(o,t){return function(s,u,n){var f,i=e(s,o,t);return{values:i[1]||{},errors:i[0]?r((f=i[0],f.failures().reduce(function(r,e){return(r[e.path.join(".")]={message:e.message,type:e.type})&&r},{})),n.fields):{}}}};export{o as superstructResolver};
//# sourceMappingURL=superstruct.module.js.map

@@ -1,2 +0,2 @@

!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("react-hook-form"),require("@hookform/resolvers")):"function"==typeof define&&define.amd?define(["exports","react-hook-form","@hookform/resolvers"],o):o((e||self).hookformResolversSuperstruct={},e.reactHookForm,e.hookformResolvers)}(this,function(e,o,r){function t(){return(t=Object.assign||function(e){for(var o=1;o<arguments.length;o++){var r=arguments[o];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}class n extends TypeError{constructor(e,o){let r;const{message:t,...n}=e,{path:s}=e;super(0===s.length?t:"At path: "+s.join(".")+" -- "+t),Object.assign(this,n),this.name=this.constructor.name,this.failures=()=>{var t;return null!=(t=r)?t:r=[e,...o()]}}}function s(e){return"object"==typeof e&&null!=e}function*i(e,o,r={}){const{path:t=[],branch:n=[e],coerce:c=!1,mask:a=!1}=r,f={path:t,branch:n};if(c&&(e=o.coercer(e,f),a&&"type"!==o.type&&s(o.schema)&&s(e)&&!Array.isArray(e)))for(const r in e)void 0===o.schema[r]&&delete e[r];let u=!0;for(const r of o.validator(e,f))u=!1,yield[r,void 0];for(let[r,l,d]of o.entries(e,f)){const o=i(l,d,{path:void 0===r?t:[...t,r],branch:void 0===r?n:[...n,l],coerce:c,mask:a});for(const t of o)t[0]?(u=!1,yield[t[0],void 0]):c&&(l=t[1],void 0===r?e=l:e instanceof Map?e.set(r,l):e instanceof Set?e.add(l):s(e)&&(e[r]=l))}if(u)for(const r of o.refiner(e,f))u=!1,yield[r,void 0];u&&(yield[void 0,e])}function c(e,o,r={}){const t=i(e,o,r),s=function(e){const{done:o,value:r}=e.next();return o?void 0:r}(t);return s[0]?[new n(s[0],function*(){for(const e of t)e[0]&&(yield e[0])}),void 0]:[void 0,s[1]]}e.superstructResolver=function(e,n){return function(s,i,a){var f,u,l=a.criteriaMode,d=a.fields;try{var p=c(s,e,n),h=p[0],v=p[1];return Promise.resolve(null!=h?{values:{},errors:r.toNestError((f=h,u="all"===l,f.failures().reduce(function(e,n){var s,i,c,a=n.path,f=n.message,l=void 0===f?"":f,d=n.type,p=r.convertArrayToPathName(a);return t({},e,a?e[p]&&u?((s={})[p]=o.appendErrors(p,u,e,d||"",l),s):((c={})[p]=e[p]||t({message:l,type:d},u?{types:(i={},i[d||""]=l||!0,i)}:{}),c):{})},{})),d)}:{values:v,errors:{}})}catch(e){return Promise.reject(e)}}}});
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@hookform/resolvers"),require("superstruct")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers","superstruct"],r):r((e||self).hookformResolversSuperstruct={},e.hookformResolvers,e.superstruct)}(this,function(e,r,o){e.superstructResolver=function(e,s){return function(t,u,n){var f,i=o.validate(t,e,s);return{values:i[1]||{},errors:i[0]?r.toNestError((f=i[0],f.failures().reduce(function(e,r){return(e[r.path.join(".")]={message:r.message,type:r.type})&&e},{})),n.fields):{}}}}});
//# sourceMappingURL=superstruct.umd.js.map
import { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue } from 'react-hook-form';
import { validate, Struct } from 'superstruct';
declare type Options = Parameters<typeof validate>[2];
export declare type Resolver = <T extends Struct<any, any>>(schema: T, factoryOtions?: Options) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
export declare type Resolver = <T extends Struct<any, any>>(schema: T, factoryOtions?: Options) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>;
export {};

@@ -15,4 +15,5 @@ {

"react-hook-form": ">=6.6.0",
"@hookform/resolvers": "^1.0.0"
"@hookform/resolvers": "^1.0.0",
"superstruct": ">=0.12.0"
}
}

@@ -20,11 +20,2 @@ import { superstructResolver } from '..';

});
it('should return all the errors from superstructResolver when validation fails with `validateAllFieldCriteria` set to true', async () => {
const result = await superstructResolver(schema)(invalidData, undefined, {
fields,
criteriaMode: 'all',
});
expect(result).toMatchSnapshot();
});
});

@@ -1,65 +0,30 @@

import { appendErrors } from 'react-hook-form';
import { FieldError } from 'react-hook-form';
import { toNestError } from '@hookform/resolvers';
import { StructError, validate } from 'superstruct';
import { convertArrayToPathName } from '@hookform/resolvers';
import { Resolver } from './types';
const parseErrorSchema = (
error: StructError,
validateAllFieldCriteria: boolean,
) =>
error
.failures()
.reduce((previous: Record<string, any>, { path, message = '', type }) => {
const currentPath = convertArrayToPathName(path);
return {
...previous,
...(path
? previous[currentPath] && validateAllFieldCriteria
? {
[currentPath]: appendErrors(
currentPath,
validateAllFieldCriteria,
previous,
type || '',
message,
),
}
: {
[currentPath]: previous[currentPath] || {
message,
type,
...(validateAllFieldCriteria
? {
types: { [type || '']: message || true },
}
: {}),
},
}
: {}),
};
}, {});
const parseErrorSchema = (error: StructError) =>
error.failures().reduce<Record<string, FieldError>>(
(previous, error) =>
(previous[error.path.join('.')] = {
message: error.message,
type: error.type,
}) && previous,
{},
);
export const superstructResolver: Resolver = (schema, options) => async (
export const superstructResolver: Resolver = (schema, resolverOptions) => (
values,
_context,
{ criteriaMode, fields },
_,
options,
) => {
const [errors, result] = validate(values, schema, options);
const result = validate(values, schema, resolverOptions);
if (errors != null) {
return {
values: {},
errors: toNestError(
parseErrorSchema(errors, criteriaMode === 'all'),
fields,
),
};
}
return {
values: result,
errors: {},
values: result[1] || {},
errors: result[0]
? toNestError(parseErrorSchema(result[0]), options.fields)
: {},
};
};

@@ -18,2 +18,2 @@ import {

options: ResolverOptions<TFieldValues>,
) => Promise<ResolverResult<TFieldValues>>;
) => ResolverResult<TFieldValues>;

@@ -1,2 +0,2 @@

var r=require("@hookform/resolvers");function e(){return(e=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[o]=n[o])}return r}).apply(this,arguments)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var n,o=(function(r,e){r.exports=function(r){return function(){for(var e=arguments.length,n=Array(e),o=0;o<e;o++)n[o]=arguments[o];if("function"!=typeof r)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise(function(e){return r.apply(void 0,n).done(e)})}}}(n={exports:{}}),n.exports);exports.vestResolver=function(n,t,i){var s=(void 0===i?{mode:"async"}:i).mode;return function(t,i,u){var a=u.criteriaMode,f=u.fields;try{var c,l=function(){var n,o,i=c.getErrors();return c.hasErrors()?{values:{},errors:r.toNestError((n=i,o="all"===a,Object.entries(n).reduce(function(r,n){var t,i=n[1];return e({},r,((t={})[n[0]]=e({type:"",message:i[0]},o?{types:i.reduce(function(r,n,o){var t;return e({},r,((t={})[o]=n,t))},{})}:{}),t))},{})),f)}:{values:t,errors:{}}},v=function(){if("async"===s){var r=o(n);return Promise.resolve(r(t)).then(function(r){c=r})}c=n(t)}();return Promise.resolve(v&&v.then?v.then(l):l())}catch(r){return Promise.reject(r)}}};
var r=require("@hookform/resolvers");function e(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=e(require("vest/promisify")),o=function(r,e){var t={};for(var o in r)t[o]||(t[o]={message:r[o][0],type:""}),e&&(t[o].types=r[o].reduce(function(r,e,t){return(r[t]=e)&&r},{}));return t};exports.vestResolver=function(e,s,n){return void 0===n&&(n={}),function(s,u,i){try{var a=function(e){return e.hasErrors()?{values:{},errors:r.toNestError(o(e.getErrors(),"all"===i.criteriaMode),i.fields)}:{values:s,errors:{}}};return Promise.resolve("sync"===n.mode?a(e(s)):Promise.resolve(t.default(e)(s)).then(a))}catch(r){return Promise.reject(r)}}};
//# sourceMappingURL=vest.js.map

@@ -1,2 +0,2 @@

import{toNestError as e}from"@hookform/resolvers";function r(){return(r=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e}).apply(this,arguments)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var o,t=(function(e,r){e.exports=function(e){return function(){for(var r=arguments.length,o=Array(r),t=0;t<r;t++)o[t]=arguments[t];if("function"!=typeof e)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise(function(r){return e.apply(void 0,o).done(r)})}}}(o={exports:{}}),o.exports);const n=(o,n,{mode:s}={mode:"async"})=>async(n,i,{criteriaMode:a,fields:f})=>{let l;if("async"===s){const e=t(o);l=await e(n)}else l=o(n);const c=l.getErrors();return l.hasErrors()?{values:{},errors:e((u=c,p="all"===a,Object.entries(u).reduce((e,[o,t])=>r({},e,{[o]:r({type:"",message:t[0]},p?{types:t.reduce((e,o,t)=>r({},e,{[t]:o}),{})}:{})}),{})),f)}:{values:n,errors:{}};var u,p};export{n as vestResolver};
import{toNestError as r}from"@hookform/resolvers";import e from"vest/promisify";const o=(r,e)=>{const o={};for(const s in r)o[s]||(o[s]={message:r[s][0],type:""}),e&&(o[s].types=r[s].reduce((r,e,o)=>(r[o]=e)&&r,{}));return o},s=(s,t,a={})=>async(t,i,n)=>{const c="sync"===a.mode?s(t):await e(s)(t);return c.hasErrors()?{values:{},errors:r(o(c.getErrors(),"all"===n.criteriaMode),n.fields)}:{values:t,errors:{}}};export{s as vestResolver};
//# sourceMappingURL=vest.modern.js.map

@@ -1,2 +0,2 @@

import{toNestError as r}from"@hookform/resolvers";function e(){return(e=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[o]=n[o])}return r}).apply(this,arguments)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var n,o=(function(r,e){r.exports=function(r){return function(){for(var e=arguments.length,n=Array(e),o=0;o<e;o++)n[o]=arguments[o];if("function"!=typeof r)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise(function(e){return r.apply(void 0,n).done(e)})}}}(n={exports:{}}),n.exports),t=function(n,t,i){var f=(void 0===i?{mode:"async"}:i).mode;return function(t,i,s){var u=s.criteriaMode,a=s.fields;try{var c,l=function(){var n,o,i=c.getErrors();return c.hasErrors()?{values:{},errors:r((n=i,o="all"===u,Object.entries(n).reduce(function(r,n){var t,i=n[1];return e({},r,((t={})[n[0]]=e({type:"",message:i[0]},o?{types:i.reduce(function(r,n,o){var t;return e({},r,((t={})[o]=n,t))},{})}:{}),t))},{})),a)}:{values:t,errors:{}}},d=function(){if("async"===f){var r=o(n);return Promise.resolve(r(t)).then(function(r){c=r})}c=n(t)}();return Promise.resolve(d&&d.then?d.then(l):l())}catch(r){return Promise.reject(r)}}};export{t as vestResolver};
import{toNestError as r}from"@hookform/resolvers";import e from"vest/promisify";var o=function(r,e){var o={};for(var t in r)o[t]||(o[t]={message:r[t][0],type:""}),e&&(o[t].types=r[t].reduce(function(r,e,o){return(r[o]=e)&&r},{}));return o},t=function(t,s,n){return void 0===n&&(n={}),function(s,i,u){try{var a=function(e){return e.hasErrors()?{values:{},errors:r(o(e.getErrors(),"all"===u.criteriaMode),u.fields)}:{values:s,errors:{}}};return Promise.resolve("sync"===n.mode?a(t(s)):Promise.resolve(e(t)(s)).then(a))}catch(r){return Promise.reject(r)}}};export{t as vestResolver};
//# sourceMappingURL=vest.module.js.map

@@ -1,2 +0,2 @@

!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@hookform/resolvers")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers"],r):r((e||self).hookformResolversVest={},e.resolvers)}(this,function(e,r){function o(){return(o=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e}).apply(this,arguments)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var n=function(e){var r={exports:{}};return function(e,r){e.exports=function(e){return function(){for(var r=arguments.length,o=Array(r),n=0;n<r;n++)o[n]=arguments[n];if("function"!=typeof e)throw Error("[vest/promisify]: Expected validatorFn to be a function.");return new Promise(function(r){return e.apply(void 0,o).done(r)})}}}(r),r.exports}();e.vestResolver=function(e,t,i){var s=(void 0===i?{mode:"async"}:i).mode;return function(t,i,f){var u=f.criteriaMode,a=f.fields;try{var l,c=function(){var e,n,i=l.getErrors();return l.hasErrors()?{values:{},errors:r.toNestError((e=i,n="all"===u,Object.entries(e).reduce(function(e,r){var t,i=r[1];return o({},e,((t={})[r[0]]=o({type:"",message:i[0]},n?{types:i.reduce(function(e,r,n){var t;return o({},e,((t={})[n]=r,t))},{})}:{}),t))},{})),a)}:{values:t,errors:{}}},d=function(){if("async"===s){var r=n(e);return Promise.resolve(r(t)).then(function(e){l=e})}l=e(t)}();return Promise.resolve(d&&d.then?d.then(c):c())}catch(e){return Promise.reject(e)}}}});
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@hookform/resolvers"),require("vest/promisify")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers","vest/promisify"],r):r((e||self).hookformResolversVest={},e.resolvers,e.promisify)}(this,function(e,r,o){function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=t(o),n=function(e,r){var o={};for(var t in e)o[t]||(o[t]={message:e[t][0],type:""}),r&&(o[t].types=e[t].reduce(function(e,r,o){return(e[o]=r)&&e},{}));return o};e.vestResolver=function(e,o,t){return void 0===t&&(t={}),function(o,i,f){try{var u=function(e){return e.hasErrors()?{values:{},errors:r.toNestError(n(e.getErrors(),"all"===f.criteriaMode),f.fields)}:{values:o,errors:{}}};return Promise.resolve("sync"===t.mode?u(e(o)):Promise.resolve(s.default(e)(o)).then(u))}catch(e){return Promise.reject(e)}}}});
//# sourceMappingURL=vest.umd.js.map

@@ -14,4 +14,6 @@ {

"peerDependencies": {
"react-hook-form": ">=6.6.0"
"react-hook-form": ">=6.6.0",
"@hookform/resolvers": ">=2.0.0",
"vest": ">=3.0.0"
}
}

@@ -14,3 +14,3 @@ import {

schemaOptions?: never,
factoryOptions?: { mode: 'async' | 'sync' },
factoryOptions?: { mode?: 'async' | 'sync' },
) => <TFieldValues extends FieldValues, TContext>(

@@ -17,0 +17,0 @@ values: UnpackNestedValue<TFieldValues>,

import { toNestError } from '@hookform/resolvers';
import { FieldError } from 'react-hook-form';
import promisify from 'vest/promisify';
import { DraftResult, IVestResult } from 'vest/vestResult';
import type { VestErrors, Resolver } from './types';

@@ -10,21 +10,16 @@

) => {
return Object.entries(vestError).reduce((prev, [key, value]) => {
return {
...prev,
[key]: {
type: '',
message: value[0],
...(validateAllFieldCriteria
? {
types: value.reduce((prev, message, index) => {
return {
...prev,
[index]: message,
};
}, {}),
}
: {}),
},
};
}, {});
const errors: Record<string, FieldError> = {};
for (const path in vestError) {
if (!errors[path]) {
errors[path] = { message: vestError[path][0], type: '' };
}
if (validateAllFieldCriteria) {
errors[path].types = vestError[path].reduce<Record<number, string>>(
(acc, message, index) => (acc[index] = message) && acc,
{},
);
}
}
return errors;
};

@@ -35,25 +30,18 @@

_,
{ mode } = { mode: 'async' },
) => async (values, _context, { criteriaMode, fields }) => {
let result: IVestResult | DraftResult;
if (mode === 'async') {
const validateSchema = promisify(schema);
result = await validateSchema(values);
} else {
result = schema(values);
}
resolverOptions = {},
) => async (values, _context, options) => {
const result =
resolverOptions.mode === 'sync'
? schema(values)
: await promisify(schema)(values);
const errors = result.getErrors();
if (!result.hasErrors()) {
return { values, errors: {} };
}
return {
values: {},
errors: toNestError(
parseErrorSchema(errors, criteriaMode === 'all'),
fields,
),
};
return result.hasErrors()
? {
values: {},
errors: toNestError(
parseErrorSchema(result.getErrors(), options.criteriaMode === 'all'),
options.fields,
),
}
: { values, errors: {} };
};

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc