Socket
Socket
Sign inDemoInstall

use-validate-form

Package Overview
Dependencies
Maintainers
3
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-validate-form - npm Package Compare versions

Comparing version 2.0.4 to 2.1.0

2

build/index.js

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

!function(e,r){for(var t in r)e[t]=r[t]}(exports,function(e){var r={};function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var i in e)t.d(n,i,function(r){return e[r]}.bind(null,i));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var i in r=arguments[t])Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);return e}).apply(this,arguments)},i=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,i,o=t.call(e),s=[];try{for(;(void 0===r||r-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(i)throw i.error}}return s},o=this&&this.__spread||function(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(i(arguments[r]));return e};Object.defineProperty(r,"__esModule",{value:!0});var s,u=t(1);!function(e){e.STRING="string",e.NUMBER="number",e.DATE="date",e.BOOLEAN="boolean"}(s||(s={}));var a=function(e){var r={isDirty:!1,fields:[]};return Object.entries(e).reduce(function(e,r){var t,o=i(r,2),u=o[0],a=o[1],f=a.initialValue,c=a.validators,d=a.type;if(!d||!Object.values(s).includes(d))throw console.log("type: ",d),console.log("FieldType enum:",s),new Error("Fields must have a type of 'string', 'number', 'date' or 'boolean' (got "+d+" for "+u+")");var v=l(f,d,c,!1),y=v.isValid,p=v.errors,h=v.isDirty;return n(n({},e),{fields:n(n({},e.fields),(t={},t[u]={value:f,isValid:y,isDirty:h,errors:p,name:u,validators:c,type:d},t))})},r)};r.useValidateForm=function(e){var r=a(e);return u.useReducer(f,n(n({},r),{isValid:Object.values(r.fields).every(function(e){return e.isValid}),hasErrors:Object.values(r.fields).some(function(e){return e.errors.length>0})}))};var l=function(e,r,t,n){return t.reduce(function(t,i){var s=i.error;return(0,i.func)(e,r)?t:{errors:n?o(t.errors,[s]):[],isValid:!1,isDirty:n}},{errors:[],isValid:!0,isDirty:!n})},f=function(e,r){var t=r.type,i=r.payload,o=i.name,s=i.value,u=i.newForm;switch(t){case"SET_VALUE":return c(e,o,s,!1);case"VALIDATE":return c(e,o,s,!0);case"CREATE_NEW_FORM":var l=a(u);return n(n({},l),{isValid:Object.values(l.fields).every(function(e){return e.isValid}),hasErrors:Object.values(l.fields).some(function(e){return e.errors.length>0})});default:throw new Error("Action must be of type SET_VALUE, VALIDATE or CREATE_NEW_FORM")}},c=function(e,r,t,i){var o,s=e.fields[r],u=s.validators,a=s.type,f=l(t,a,u,i),c=f.isValid,d=f.errors,v=f.isDirty,y=n(n({},e),{fields:n(n({},e.fields),(o={},o[r]={value:t,isValid:c,errors:d,isDirty:v,name:r,validators:u,type:a},o))});return n(n({},y),{isDirty:Object.values(y.fields).some(function(e){return e.name!==r&&e.isDirty})?y.isDirty:v,isValid:!!c&&Object.values(y.fields).every(function(e){return e.isValid}),hasErrors:Object.values(y.fields).some(function(e){return e.errors.length>0})})},d=/[^@]+@[^.]+\..+/;r.isRequired={func:function(e,r){return r===s.DATE?e&&"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e):!!e&&e.length>0},error:"This field is required"},r.isEmailAddress={func:function(e){return!e||d.test(e)},error:"Please enter a valid email address"},r.isEmailAddressList={func:function(e){return e.every(function(e){return d.test(e)})},error:"Please enter valid email addresses"},r.minLength=function(e){return{func:function(r){return!r||r.length>=e},error:"This field has a minimum length of "+e}},r.maxLength=function(e){return{func:function(r){return!r||r.length<=e},error:"This field has a maximum length of "+e}}},function(e,r){e.exports=require("react")}]));
!function(r,e){for(var t in e)r[t]=e[t]}(exports,function(r){var e={};function t(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return r[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=r,t.c=e,t.d=function(r,e,n){t.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},t.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t.t=function(r,e){if(1&e&&(r=t(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var i in r)t.d(n,i,function(e){return r[e]}.bind(null,i));return n},t.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(e,"a",e),e},t.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},t.p="",t(t.s=0)}([function(r,e,t){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var i in e=arguments[t])Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=e[i]);return r}).apply(this,arguments)},i=this&&this.__read||function(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var n,i,o=t.call(r),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(r){i={error:r}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(i)throw i.error}}return s},o=this&&this.__spread||function(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(i(arguments[e]));return r};Object.defineProperty(e,"__esModule",{value:!0});var s,u=t(1);!function(r){r.STRING="string",r.NUMBER="number",r.DATE="date",r.BOOLEAN="boolean"}(s||(s={}));var a=function(r){var e={isDirty:!1,fields:[]};return Object.entries(r).reduce(function(e,t){var o,u=i(t,2),a=u[0],f=u[1],c=f.initialValue,d=f.validators,v=f.type;if(!v||!Object.values(s).includes(v))throw new Error("Fields must have a type of 'string', 'number', 'date' or 'boolean' (got "+v+" for "+a+")");var y=l(c,v,d,!1,r),p=y.isValid,h=y.errors,b=y.isDirty;return n(n({},e),{fields:n(n({},e.fields),(o={},o[a]={value:c,isValid:p,isDirty:b,errors:h,name:a,validators:d,type:v},o))})},e)};e.useValidateForm=function(r){var e=a(r);return u.useReducer(f,n(n({},e),{isValid:Object.values(e.fields).every(function(r){return r.isValid}),hasErrors:Object.values(e.fields).some(function(r){return r.errors.length>0})}))};var l=function(r,e,t,n,i){return t.reduce(function(t,s){var u=s.error;return(0,s.func)(r,e,i)?t:{errors:n?o(t.errors,[u]):[],isValid:!1,isDirty:n}},{errors:[],isValid:!0,isDirty:!n})},f=function(r,e){var t=e.type,i=e.payload,o=i.name,s=i.value,u=i.newForm;switch(t){case"SET_VALUE":return c(r,o,s,!1);case"VALIDATE":return c(r,o,s,!0);case"CREATE_NEW_FORM":var l=a(u);return n(n({},l),{isValid:Object.values(l.fields).every(function(r){return r.isValid}),hasErrors:Object.values(l.fields).some(function(r){return r.errors.length>0})});default:throw new Error("Action must be of type SET_VALUE, VALIDATE or CREATE_NEW_FORM")}},c=function(r,e,t,i){var o,s=r.fields[e],u=s.validators,a=s.type,f=l(t,a,u,i,r.fields),c=f.isValid,d=f.errors,v=f.isDirty,y=n(n({},r),{fields:n(n({},r.fields),(o={},o[e]={value:t,isValid:c,errors:d,isDirty:v,name:e,validators:u,type:a},o))});return n(n({},y),{isDirty:Object.values(y.fields).some(function(r){return r.name!==e&&r.isDirty})?y.isDirty:v,isValid:!!c&&Object.values(y.fields).every(function(r){return r.isValid}),hasErrors:Object.values(y.fields).some(function(r){return r.errors.length>0})})},d=/[^@]+@[^.]+\..+/;e.isRequired={func:function(r,e){return e===s.DATE?r&&"[object Date]"===Object.prototype.toString.call(r)&&!isNaN(r):!!r&&r.length>0},error:"This field is required"},e.isEmailAddress={func:function(r){return!r||d.test(r)},error:"Please enter a valid email address"},e.isEmailAddressList={func:function(r){return r.every(function(r){return d.test(r)})},error:"Please enter valid email addresses"},e.minLength=function(r){return{func:function(e){return!e||e.length>=r},error:"This field has a minimum length of "+r}},e.maxLength=function(r){return{func:function(e){return!e||e.length<=r},error:"This field has a maximum length of "+r}}},function(r,e){r.exports=require("react")}]));
{
"name": "use-validate-form",
"version": "2.0.4",
"version": "2.1.0",
"description": "react hook for form validation",

@@ -5,0 +5,0 @@ "main": "build/index.js",

@@ -12,3 +12,3 @@ import { useReducer } from 'react'

error: String
func: (value: any, type: FieldType) => Boolean
func: (value: any, type: FieldType, allFields: Array<FormField<any>>) => Boolean
}

@@ -40,7 +40,5 @@

if (!type || !Object.values(FieldType).includes(type)) {
console.log('type: ', type)
console.log('FieldType enum:', FieldType)
throw new Error(`Fields must have a type of 'string', 'number', 'date' or 'boolean' (got ${type} for ${key})`)
}
const { isValid: isFieldValid, errors, isDirty } = runValidators(initialValue, type, validators, false)
const { isValid: isFieldValid, errors, isDirty } = runValidators(initialValue, type, validators, false, formFields)
return {

@@ -73,6 +71,12 @@ ...form,

const runValidators = (value: any, type: FieldType, validators: Array<Validator>, isBlur: Boolean) =>
const runValidators = (
value: any,
type: FieldType,
validators: Array<Validator>,
isBlur: Boolean,
formFields: Array<FormField<any>>
) =>
validators.reduce(
(acc: any, { error, func }: Validator) => {
const passed = func(value, type)
const passed = func(value, type, formFields)

@@ -116,3 +120,9 @@ return passed

const { validators, type }: FormField<any> = form.fields[fieldName as any]
const { isValid: isFieldValid, errors, isDirty: isFieldDirty } = runValidators(value, type, validators, isBlur)
const { isValid: isFieldValid, errors, isDirty: isFieldDirty } = runValidators(
value,
type,
validators,
isBlur,
form.fields
)

@@ -119,0 +129,0 @@ const updatedFormFields: Form = {

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