New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@moohng/validator

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@moohng/validator - npm Package Compare versions

Comparing version 1.2.1 to 1.3.0

2

dist/validator.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).validator=t()}(this,function(){"use strict";var e=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),n=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=function(){function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this,n),Object.assign(this,t)}return t(n,[{key:"hasError",value:function(){return Object.keys(this).length>0}},{key:"first",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return Object.values(this)[e-1]}},{key:"firstKey",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return Object.keys(this)[e-1]}}]),n}();return function(e,t){var o=t?Object.keys(t):[];if(!o.length)return new i;var u=o.reduce(function(i,o){var u=e[o],a=null,f=t[o]||{},l=f.required,s=f.pattern,c=f.validate,v=f.alias,y=void 0===v?o:v,d=f.message,p=void 0===d?"请输入正确的"+y:d,g=f.trim;if((void 0===g||g)&&"string"==typeof u&&(u=u.trim()),void 0!==u&&null!==u&&u.length&&"{}"!==JSON.stringify(u)){if(s&&s instanceof RegExp&&!s.test(u))a=p;else if("function"==typeof c){var b=c(u,e);a="string"==typeof b?b:b?null:p}}else l&&(a="string"==typeof l?l:"请输入"+y);return a?r({},i,n({},o,a)):r({},i)},{});return new i(u)}});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).validator=t()}(this,function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),Object.assign(this,n)}return n(e,[{key:"hasError",value:function(){return Object.keys(this).length>0}},{key:"first",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return Object.values(this)[e-1]}},{key:"firstKey",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return Object.keys(this)[e-1]}}]),e}();return function(t,n){var u=n?Object.keys(n):[];if(!u.length)return new i;var f=u.reduce(function(i,u){var f=n[u]||{};"boolean"==typeof f&&(f={required:f}),"string"==typeof f&&(f={required:!0,alias:f});var a=t[u],l=void 0===a||null===a||""===a||Number.isNaN(a)||"{}"===JSON.stringify(a)||"[]"===JSON.stringify(a),s=f,c=s.required,y=s.pattern,v=s.validate,d=s.alias,p=void 0===d?u:d,b=s.message,g=void 0===b?"请输入正确的"+p:b,h=s.trim,m=void 0===h||h,O=s.min,j=void 0===O?0:O,k=s.max,w=void 0===k?0:k,S=s.length,N=void 0===S?0:S;m&&"string"==typeof a&&(a=a.trim());var x=null;if(c&&l)x="string"==typeof c?c:"请输入"+p;else if(!l&&N&&a.length!==N||(j&&e(/^\d+$/.test(a))?a<j:a.length<j)||(w&&e(/^\d+$/.test(a))?a>w:a.length>w)||y&&y instanceof RegExp&&!y.test(a))x=g;else if(!l&&"function"==typeof v){var q=v(a,t);x="string"==typeof q?q:q?null:g}return x?o({},i,r({},u,x)):o({},i)},{});return new i(f)}});

@@ -30,13 +30,45 @@ import Result from './Result'

if (!ruleKeys.length) return new Result()
const results = ruleKeys.reduce((errors, key) => {
// 规则
let rule = rules[key] || {}
typeof rule === 'boolean' && (rule = { required: rule })
typeof rule === 'string' && (rule = { required: true, alias: rule })
// 输入值
let value = target[key]
let tips = null
const { required, pattern, validate, alias = key, message = `请输入正确的${alias}`, trim = true } = rules[key] || {}
const isEmpty = (
value === undefined ||
value === null ||
value === '' ||
Number.isNaN(value) ||
JSON.stringify(value) === '{}' ||
JSON.stringify(value) === '[]'
)
const {
required,
pattern,
validate,
alias = key,
message = `请输入正确的${alias}`,
trim = true,
min = 0,
max = 0,
length = 0,
} = rule
// 去掉字符串首位空格
trim && typeof value === 'string' && (value = value.trim())
if (value === undefined || value === null || !value.length || JSON.stringify(value) === '{}') {
required && (tips = typeof required === 'string' ? required : `请输入${alias}`)
} else if (pattern && pattern instanceof RegExp && !pattern.test(value)) { // 正则校验
let tips = null
if (required && isEmpty) {
tips = typeof required === 'string' ? required : `请输入${alias}`
} else if (
!isEmpty &&
(length && value.length !== length) || // 长度校验
(min && typeof /^\d+$/.test(value) ? value < min : value.length < min) || // 最小值校验
(max && typeof /^\d+$/.test(value) ? value > max : value.length > max) || // 最大值校验
(pattern && pattern instanceof RegExp && !pattern.test(value)) // 正则校验
) {
tips = message
} else if (typeof validate === 'function') { // 自定义校验函数
} else if (!isEmpty && typeof validate === 'function') { // 自定义校验函数
const res = validate(value, target)

@@ -47,3 +79,4 @@ tips = typeof res === 'string' ? res : (!res ? message : null)

}, {})
return new Result(results)
}
{
"name": "@moohng/validator",
"version": "1.2.1",
"version": "1.3.0",
"description": "一款简单、轻量的字段校验工具",

@@ -5,0 +5,0 @@ "main": "dist/validator.min.js",

const validator = require('../dist/validator.min')
const rules = {
name: {
alias: '姓名',
required: true
},
name: '姓名',
email: {
required: '请输入邮箱哦',
// length: 8,
min: 8,
max: 8,
// pattern: /\w+@\w+\.com/,

@@ -11,0 +11,0 @@ validate(value) {

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