@yorkjs/validator
Advanced tools
Comparing version 0.0.5 to 0.1.0
/** | ||
* validator.js v0.0.5 | ||
* validator.js v0.1.0 | ||
* (c) 2021-2022 musicode | ||
@@ -22,10 +22,19 @@ * Released under the MIT License. | ||
if (!Array.isArray(value)) { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
const { length } = value; | ||
if (rule.min !== undefined && length < rule.min) { | ||
return 'min'; | ||
return { | ||
rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && length > rule.max) { | ||
return 'max'; | ||
return { | ||
rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -38,3 +47,6 @@ const { itemType } = rule; | ||
if (getType(value[i]) !== itemType) { | ||
return 'itemType'; | ||
return { | ||
rule, | ||
reason: 'itemType', | ||
}; | ||
} | ||
@@ -46,7 +58,13 @@ } | ||
if (typeof value !== 'boolean') { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.value !== undefined | ||
&& rule.value !== value) { | ||
return 'value'; | ||
return { | ||
rule, | ||
reason: 'value', | ||
}; | ||
} | ||
@@ -57,3 +75,6 @@ } | ||
if (typeof value !== 'string') { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -65,17 +86,32 @@ if (value === '') { | ||
} | ||
return 'empty'; | ||
return { | ||
rule, | ||
reason: 'empty', | ||
}; | ||
} | ||
if (rule.min !== undefined && value.length < rule.min) { | ||
return 'min'; | ||
return { | ||
rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value.length > rule.max) { | ||
return 'max'; | ||
return { | ||
rule, | ||
reason: 'max', | ||
}; | ||
} | ||
if (rule.pattern !== undefined && !rule.pattern.test(value)) { | ||
return 'pattern'; | ||
return { | ||
rule, | ||
reason: 'pattern', | ||
}; | ||
} | ||
if (rule.custom !== undefined) { | ||
const result = rule.custom(value); | ||
if (result) { | ||
return result; | ||
const reason = rule.custom(value); | ||
if (reason) { | ||
return { | ||
rule, | ||
reason, | ||
}; | ||
} | ||
@@ -111,3 +147,6 @@ } | ||
if (!Array.isArray(rule.values) || rule.values.indexOf(value) < 0) { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -118,9 +157,18 @@ } | ||
if (typeof value !== 'number' || value % 1 !== 0) { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.min !== undefined && value < rule.min) { | ||
return 'min'; | ||
return { | ||
rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value > rule.max) { | ||
return 'max'; | ||
return { | ||
rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -131,9 +179,18 @@ } | ||
if (typeof value !== 'number' || isNaN(value)) { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.min !== undefined && value < rule.min) { | ||
return 'min'; | ||
return { | ||
rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value > rule.max) { | ||
return 'max'; | ||
return { | ||
rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -143,3 +200,6 @@ if (rule.precision !== undefined) { | ||
if (parts.length === 2 && parts[1].length > rule.precision) { | ||
return 'precision'; | ||
return { | ||
rule, | ||
reason: 'precision', | ||
}; | ||
} | ||
@@ -149,5 +209,8 @@ } | ||
function checkObject(_, value) { | ||
function checkObject(rule, value) { | ||
if (!isObject(value)) { | ||
return 'type'; | ||
return { | ||
rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -215,5 +278,5 @@ } | ||
} | ||
let reason; | ||
let checkResult; | ||
if (data[key] !== undefined) { | ||
reason = this.rules[rule.type](rule, data[key], data); | ||
checkResult = this.rules[rule.type](rule, data[key], data); | ||
} | ||
@@ -223,3 +286,6 @@ else { | ||
if (rule.required !== false) { | ||
reason = 'required'; | ||
checkResult = { | ||
rule, | ||
reason: 'required', | ||
}; | ||
} | ||
@@ -230,6 +296,6 @@ else { | ||
} | ||
if (reason) { | ||
let message = messages && messages[key] && messages[key][reason]; | ||
if (checkResult) { | ||
let message = messages && messages[key] && messages[key][checkResult.reason]; | ||
if (typeof message !== 'string' && typeof message !== 'function') { | ||
message = this.messages[rule.type] && this.messages[rule.type][reason]; | ||
message = this.messages[rule.type] && this.messages[rule.type][checkResult.reason]; | ||
} | ||
@@ -244,6 +310,6 @@ if (!errors) { | ||
case 'function': | ||
errors[key] = message(rule); | ||
errors[key] = message(checkResult.rule); | ||
break; | ||
default: | ||
errors[key] = reason; | ||
errors[key] = checkResult.reason; | ||
break; | ||
@@ -259,5 +325,5 @@ } | ||
*/ | ||
const version = "0.0.5"; | ||
const version = "0.1.0"; | ||
export { Validator, checkArray, checkBoolean, checkDate, checkDateTime, checkEnum, checkInteger, checkNumber, checkObject, checkString, version }; | ||
//# sourceMappingURL=validator.esm.js.map |
@@ -1,2 +0,2 @@ | ||
const{toString:t}=Object.prototype;function e(e){return t.call(e).toLowerCase().slice(8,-1)}function n(t){return!(!t||"object"!==e(t))}function i(t,e){for(let n in e)t[n]=e[n]}function r(t,n){if(!Array.isArray(n))return"type";const{length:i}=n;if(void 0!==t.min&&i<t.min)return"min";if(void 0!==t.max&&i>t.max)return"max";const{itemType:r}=t;if(r)for(let t=0;t<i;t++)if(e(n[t])!==r)return"itemType"}function o(t,e){return"boolean"!=typeof e?"type":void 0!==t.value&&t.value!==e?"value":void 0}function s(t,e){if("string"!=typeof e)return"type";if(""===e){if(!0===t.empty)return;return"empty"}if(void 0!==t.min&&e.length<t.min)return"min";if(void 0!==t.max&&e.length>t.max)return"max";if(void 0!==t.pattern&&!t.pattern.test(e))return"pattern";if(void 0!==t.custom){const n=t.custom(e);if(n)return n}}const u=/^\d{4}\-\d{2}\-\d{2}$/;function a(t,e){const n={};return i(n,t),i(n,{type:"string",pattern:u}),s(n,e)}const f=/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/;function c(t,e){const n={};return i(n,t),i(n,{type:"string",pattern:f}),s(n,e)}function m(t,e){if(!Array.isArray(t.values)||t.values.indexOf(e)<0)return"type"}function p(t,e){return"number"!=typeof e||e%1!=0?"type":void 0!==t.min&&e<t.min?"min":void 0!==t.max&&e>t.max?"max":void 0}function d(t,e){if("number"!=typeof e||isNaN(e))return"type";if(void 0!==t.min&&e<t.min)return"min";if(void 0!==t.max&&e>t.max)return"max";if(void 0!==t.precision){const n=(""+e).split(".");if(2===n.length&&n[1].length>t.precision)return"precision"}}function l(t,e){if(!n(e))return"type"}class y{constructor(){this.rules={int:p,integer:p,number:d,string:s,bool:o,boolean:o,enum:m,array:r,object:l,date:a,dateTime:c},this.messages={}}add(t,e,r){n(t)?(i(this.rules,t),n(e)&&i(this.messages,e)):(this.rules[t]=e,this.messages[t]=r)}validate(t,i,r){let o;for(let s in i){const u=i[s];let a,f;switch(e(u)){case"string":a={type:u};break;case"array":a={type:"enum",values:u};break;case"regexp":a={type:"string",pattern:u};break;default:a=u}if(!n(a)||!a.type)throw new Error(`${s}'s rule is not found.`);if(void 0!==t[s])f=this.rules[a.type](a,t[s],t);else{if(!1===a.required)continue;f="required"}if(f){let t=r&&r[s]&&r[s][f];switch("string"!=typeof t&&"function"!=typeof t&&(t=this.messages[a.type]&&this.messages[a.type][f]),o||(o={}),typeof t){case"string":o[s]=t;break;case"function":o[s]=t(a);break;default:o[s]=f}}}return o}}const v="0.0.5";export{y as Validator,r as checkArray,o as checkBoolean,a as checkDate,c as checkDateTime,m as checkEnum,p as checkInteger,d as checkNumber,l as checkObject,s as checkString,v as version}; | ||
const{toString:e}=Object.prototype;function r(r){return e.call(r).toLowerCase().slice(8,-1)}function t(e){return!(!e||"object"!==r(e))}function n(e,r){for(let t in r)e[t]=r[t]}function i(e,t){if(!Array.isArray(t))return{rule:e,reason:"type"};const{length:n}=t;if(void 0!==e.min&&n<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&n>e.max)return{rule:e,reason:"max"};const{itemType:i}=e;if(i)for(let o=0;o<n;o++)if(r(t[o])!==i)return{rule:e,reason:"itemType"}}function o(e,r){return"boolean"!=typeof r?{rule:e,reason:"type"}:void 0!==e.value&&e.value!==r?{rule:e,reason:"value"}:void 0}function s(e,r){if("string"!=typeof r)return{rule:e,reason:"type"};if(""===r){if(!0===e.empty)return;return{rule:e,reason:"empty"}}if(void 0!==e.min&&r.length<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&r.length>e.max)return{rule:e,reason:"max"};if(void 0!==e.pattern&&!e.pattern.test(r))return{rule:e,reason:"pattern"};if(void 0!==e.custom){const t=e.custom(r);if(t)return{rule:e,reason:t}}}const u=/^\d{4}\-\d{2}\-\d{2}$/;function a(e,r){const t={};return n(t,e),n(t,{type:"string",pattern:u}),s(t,r)}const l=/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/;function f(e,r){const t={};return n(t,e),n(t,{type:"string",pattern:l}),s(t,r)}function c(e,r){if(!Array.isArray(e.values)||e.values.indexOf(r)<0)return{rule:e,reason:"type"}}function m(e,r){return"number"!=typeof r||r%1!=0?{rule:e,reason:"type"}:void 0!==e.min&&r<e.min?{rule:e,reason:"min"}:void 0!==e.max&&r>e.max?{rule:e,reason:"max"}:void 0}function p(e,r){if("number"!=typeof r||isNaN(r))return{rule:e,reason:"type"};if(void 0!==e.min&&r<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&r>e.max)return{rule:e,reason:"max"};if(void 0!==e.precision){const t=(""+r).split(".");if(2===t.length&&t[1].length>e.precision)return{rule:e,reason:"precision"}}}function d(e,r){if(!t(r))return{rule:e,reason:"type"}}class y{constructor(){this.rules={int:m,integer:m,number:p,string:s,bool:o,boolean:o,enum:c,array:i,object:d,date:a,dateTime:f},this.messages={}}add(e,r,i){t(e)?(n(this.rules,e),t(r)&&n(this.messages,r)):(this.rules[e]=r,this.messages[e]=i)}validate(e,n,i){let o;for(let s in n){const u=n[s];let a,l;switch(r(u)){case"string":a={type:u};break;case"array":a={type:"enum",values:u};break;case"regexp":a={type:"string",pattern:u};break;default:a=u}if(!t(a)||!a.type)throw new Error(`${s}'s rule is not found.`);if(void 0!==e[s])l=this.rules[a.type](a,e[s],e);else{if(!1===a.required)continue;l={rule:a,reason:"required"}}if(l){let e=i&&i[s]&&i[s][l.reason];switch("string"!=typeof e&&"function"!=typeof e&&(e=this.messages[a.type]&&this.messages[a.type][l.reason]),o||(o={}),typeof e){case"string":o[s]=e;break;case"function":o[s]=e(l.rule);break;default:o[s]=l.reason}}}return o}}const v="0.1.0";export{y as Validator,i as checkArray,o as checkBoolean,a as checkDate,f as checkDateTime,c as checkEnum,m as checkInteger,p as checkNumber,d as checkObject,s as checkString,v as version}; | ||
//# sourceMappingURL=validator.esm.min.js.map |
/** | ||
* validator.js v0.0.5 | ||
* validator.js v0.1.0 | ||
* (c) 2021-2022 musicode | ||
@@ -29,10 +29,19 @@ * Released under the MIT License. | ||
if (!Array.isArray(value)) { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
var length = value.length; | ||
if (rule.min !== undefined && length < rule.min) { | ||
return 'min'; | ||
return { | ||
rule: rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && length > rule.max) { | ||
return 'max'; | ||
return { | ||
rule: rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -45,3 +54,6 @@ var itemType = rule.itemType; | ||
if (getType(value[i]) !== itemType) { | ||
return 'itemType'; | ||
return { | ||
rule: rule, | ||
reason: 'itemType', | ||
}; | ||
} | ||
@@ -53,7 +65,13 @@ } | ||
if (typeof value !== 'boolean') { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.value !== undefined | ||
&& rule.value !== value) { | ||
return 'value'; | ||
return { | ||
rule: rule, | ||
reason: 'value', | ||
}; | ||
} | ||
@@ -64,3 +82,6 @@ } | ||
if (typeof value !== 'string') { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -72,17 +93,32 @@ if (value === '') { | ||
} | ||
return 'empty'; | ||
return { | ||
rule: rule, | ||
reason: 'empty', | ||
}; | ||
} | ||
if (rule.min !== undefined && value.length < rule.min) { | ||
return 'min'; | ||
return { | ||
rule: rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value.length > rule.max) { | ||
return 'max'; | ||
return { | ||
rule: rule, | ||
reason: 'max', | ||
}; | ||
} | ||
if (rule.pattern !== undefined && !rule.pattern.test(value)) { | ||
return 'pattern'; | ||
return { | ||
rule: rule, | ||
reason: 'pattern', | ||
}; | ||
} | ||
if (rule.custom !== undefined) { | ||
var result = rule.custom(value); | ||
if (result) { | ||
return result; | ||
var reason = rule.custom(value); | ||
if (reason) { | ||
return { | ||
rule: rule, | ||
reason: reason, | ||
}; | ||
} | ||
@@ -118,3 +154,6 @@ } | ||
if (!Array.isArray(rule.values) || rule.values.indexOf(value) < 0) { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -125,9 +164,18 @@ } | ||
if (typeof value !== 'number' || value % 1 !== 0) { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.min !== undefined && value < rule.min) { | ||
return 'min'; | ||
return { | ||
rule: rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value > rule.max) { | ||
return 'max'; | ||
return { | ||
rule: rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -138,9 +186,18 @@ } | ||
if (typeof value !== 'number' || isNaN(value)) { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
if (rule.min !== undefined && value < rule.min) { | ||
return 'min'; | ||
return { | ||
rule: rule, | ||
reason: 'min', | ||
}; | ||
} | ||
if (rule.max !== undefined && value > rule.max) { | ||
return 'max'; | ||
return { | ||
rule: rule, | ||
reason: 'max', | ||
}; | ||
} | ||
@@ -150,3 +207,6 @@ if (rule.precision !== undefined) { | ||
if (parts.length === 2 && parts[1].length > rule.precision) { | ||
return 'precision'; | ||
return { | ||
rule: rule, | ||
reason: 'precision', | ||
}; | ||
} | ||
@@ -156,5 +216,8 @@ } | ||
function checkObject(_, value) { | ||
function checkObject(rule, value) { | ||
if (!isObject(value)) { | ||
return 'type'; | ||
return { | ||
rule: rule, | ||
reason: 'type', | ||
}; | ||
} | ||
@@ -221,5 +284,5 @@ } | ||
} | ||
var reason = (void 0); | ||
var checkResult = (void 0); | ||
if (data[key] !== undefined) { | ||
reason = this.rules[rule.type](rule, data[key], data); | ||
checkResult = this.rules[rule.type](rule, data[key], data); | ||
} | ||
@@ -229,3 +292,6 @@ else { | ||
if (rule.required !== false) { | ||
reason = 'required'; | ||
checkResult = { | ||
rule: rule, | ||
reason: 'required', | ||
}; | ||
} | ||
@@ -236,6 +302,6 @@ else { | ||
} | ||
if (reason) { | ||
var message = messages && messages[key] && messages[key][reason]; | ||
if (checkResult) { | ||
var message = messages && messages[key] && messages[key][checkResult.reason]; | ||
if (typeof message !== 'string' && typeof message !== 'function') { | ||
message = this.messages[rule.type] && this.messages[rule.type][reason]; | ||
message = this.messages[rule.type] && this.messages[rule.type][checkResult.reason]; | ||
} | ||
@@ -250,6 +316,6 @@ if (!errors) { | ||
case 'function': | ||
errors[key] = message(rule); | ||
errors[key] = message(checkResult.rule); | ||
break; | ||
default: | ||
errors[key] = reason; | ||
errors[key] = checkResult.reason; | ||
break; | ||
@@ -264,3 +330,3 @@ } | ||
*/ | ||
var version = "0.0.5"; | ||
var version = "0.1.0"; | ||
@@ -267,0 +333,0 @@ exports.Validator = Validator; |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Validator={})}(this,(function(e){"use strict";var t=Object.prototype.toString;function r(e){return t.call(e).toLowerCase().slice(8,-1)}function i(e){return!(!e||"object"!==r(e))}function n(e,t){for(var r in t)e[r]=t[r]}function o(e,t){if(!Array.isArray(t))return"type";var i=t.length;if(void 0!==e.min&&i<e.min)return"min";if(void 0!==e.max&&i>e.max)return"max";var n=e.itemType;if(n)for(var o=0;o<i;o++)if(r(t[o])!==n)return"itemType"}function a(e,t){return"boolean"!=typeof t?"type":void 0!==e.value&&e.value!==t?"value":void 0}function u(e,t){if("string"!=typeof t)return"type";if(""===t){if(!0===e.empty)return;return"empty"}if(void 0!==e.min&&t.length<e.min)return"min";if(void 0!==e.max&&t.length>e.max)return"max";if(void 0!==e.pattern&&!e.pattern.test(t))return"pattern";if(void 0!==e.custom){var r=e.custom(t);if(r)return r}}var s=/^\d{4}\-\d{2}\-\d{2}$/;function f(e,t){var r={};return n(r,e),n(r,{type:"string",pattern:s}),u(r,t)}var c=/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/;function p(e,t){var r={};return n(r,e),n(r,{type:"string",pattern:c}),u(r,t)}function d(e,t){if(!Array.isArray(e.values)||e.values.indexOf(t)<0)return"type"}function m(e,t){return"number"!=typeof t||t%1!=0?"type":void 0!==e.min&&t<e.min?"min":void 0!==e.max&&t>e.max?"max":void 0}function v(e,t){if("number"!=typeof t||isNaN(t))return"type";if(void 0!==e.min&&t<e.min)return"min";if(void 0!==e.max&&t>e.max)return"max";if(void 0!==e.precision){var r=(""+t).split(".");if(2===r.length&&r[1].length>e.precision)return"precision"}}function y(e,t){if(!i(t))return"type"}var l=function(){this.rules={int:m,integer:m,number:v,string:u,bool:a,boolean:a,enum:d,array:o,object:y,date:f,dateTime:p},this.messages={}};l.prototype.add=function(e,t,r){i(e)?(n(this.rules,e),i(t)&&n(this.messages,t)):(this.rules[e]=t,this.messages[e]=r)},l.prototype.validate=function(e,t,n){var o;for(var a in t){var u=t[a],s=void 0;switch(r(u)){case"string":s={type:u};break;case"array":s={type:"enum",values:u};break;case"regexp":s={type:"string",pattern:u};break;default:s=u}if(!i(s)||!s.type)throw new Error(a+"'s rule is not found.");var f=void 0;if(void 0!==e[a])f=this.rules[s.type](s,e[a],e);else{if(!1===s.required)continue;f="required"}if(f){var c=n&&n[a]&&n[a][f];switch("string"!=typeof c&&"function"!=typeof c&&(c=this.messages[s.type]&&this.messages[s.type][f]),o||(o={}),typeof c){case"string":o[a]=c;break;case"function":o[a]=c(s);break;default:o[a]=f}}}return o};e.Validator=l,e.checkArray=o,e.checkBoolean=a,e.checkDate=f,e.checkDateTime=p,e.checkEnum=d,e.checkInteger=m,e.checkNumber=v,e.checkObject=y,e.checkString=u,e.version="0.0.5",Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).Validator={})}(this,(function(e){"use strict";var r=Object.prototype.toString;function n(e){return r.call(e).toLowerCase().slice(8,-1)}function t(e){return!(!e||"object"!==n(e))}function i(e,r){for(var n in r)e[n]=r[n]}function o(e,r){if(!Array.isArray(r))return{rule:e,reason:"type"};var t=r.length;if(void 0!==e.min&&t<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&t>e.max)return{rule:e,reason:"max"};var i=e.itemType;if(i)for(var o=0;o<t;o++)if(n(r[o])!==i)return{rule:e,reason:"itemType"}}function a(e,r){return"boolean"!=typeof r?{rule:e,reason:"type"}:void 0!==e.value&&e.value!==r?{rule:e,reason:"value"}:void 0}function u(e,r){if("string"!=typeof r)return{rule:e,reason:"type"};if(""===r){if(!0===e.empty)return;return{rule:e,reason:"empty"}}if(void 0!==e.min&&r.length<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&r.length>e.max)return{rule:e,reason:"max"};if(void 0!==e.pattern&&!e.pattern.test(r))return{rule:e,reason:"pattern"};if(void 0!==e.custom){var n=e.custom(r);if(n)return{rule:e,reason:n}}}var s=/^\d{4}\-\d{2}\-\d{2}$/;function f(e,r){var n={};return i(n,e),i(n,{type:"string",pattern:s}),u(n,r)}var l=/^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}$/;function c(e,r){var n={};return i(n,e),i(n,{type:"string",pattern:l}),u(n,r)}function p(e,r){if(!Array.isArray(e.values)||e.values.indexOf(r)<0)return{rule:e,reason:"type"}}function d(e,r){return"number"!=typeof r||r%1!=0?{rule:e,reason:"type"}:void 0!==e.min&&r<e.min?{rule:e,reason:"min"}:void 0!==e.max&&r>e.max?{rule:e,reason:"max"}:void 0}function m(e,r){if("number"!=typeof r||isNaN(r))return{rule:e,reason:"type"};if(void 0!==e.min&&r<e.min)return{rule:e,reason:"min"};if(void 0!==e.max&&r>e.max)return{rule:e,reason:"max"};if(void 0!==e.precision){var n=(""+r).split(".");if(2===n.length&&n[1].length>e.precision)return{rule:e,reason:"precision"}}}function v(e,r){if(!t(r))return{rule:e,reason:"type"}}var y=function(){this.rules={int:d,integer:d,number:m,string:u,bool:a,boolean:a,enum:p,array:o,object:v,date:f,dateTime:c},this.messages={}};y.prototype.add=function(e,r,n){t(e)?(i(this.rules,e),t(r)&&i(this.messages,r)):(this.rules[e]=r,this.messages[e]=n)},y.prototype.validate=function(e,r,i){var o;for(var a in r){var u=r[a],s=void 0;switch(n(u)){case"string":s={type:u};break;case"array":s={type:"enum",values:u};break;case"regexp":s={type:"string",pattern:u};break;default:s=u}if(!t(s)||!s.type)throw new Error(a+"'s rule is not found.");var f=void 0;if(void 0!==e[a])f=this.rules[s.type](s,e[a],e);else{if(!1===s.required)continue;f={rule:s,reason:"required"}}if(f){var l=i&&i[a]&&i[a][f.reason];switch("string"!=typeof l&&"function"!=typeof l&&(l=this.messages[s.type]&&this.messages[s.type][f.reason]),o||(o={}),typeof l){case"string":o[a]=l;break;case"function":o[a]=l(f.rule);break;default:o[a]=f.reason}}}return o};e.Validator=y,e.checkArray=o,e.checkBoolean=a,e.checkDate=f,e.checkDateTime=c,e.checkEnum=p,e.checkInteger=d,e.checkNumber=m,e.checkObject=v,e.checkString=u,e.version="0.1.0",Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=validator.min.js.map |
{ | ||
"name": "@yorkjs/validator", | ||
"version": "0.0.5", | ||
"version": "0.1.0", | ||
"description": "validate data", | ||
@@ -5,0 +5,0 @@ "main": "dist/validator.js", |
@@ -283,3 +283,2 @@ # validator | ||
``` | ||
Object.assign | ||
Array.isArray | ||
@@ -286,0 +285,0 @@ ``` |
import { ArrayRule } from './type'; | ||
export declare function checkArray(rule: ArrayRule, value: any): "type" | "min" | "max" | "itemType" | undefined; | ||
export declare function checkArray(rule: ArrayRule, value: any): { | ||
rule: ArrayRule; | ||
reason: string; | ||
} | undefined; |
import { BooleanRule } from './type'; | ||
export declare function checkBoolean(rule: BooleanRule, value: any): "type" | "value" | undefined; | ||
export declare function checkBoolean(rule: BooleanRule, value: any): { | ||
rule: BooleanRule; | ||
reason: string; | ||
} | undefined; |
import { StringRule } from './type'; | ||
export declare function checkDate(rule: StringRule, value: any): string | undefined; | ||
export declare function checkDate(rule: StringRule, value: any): { | ||
rule: StringRule; | ||
reason: string; | ||
} | undefined; |
import { StringRule } from './type'; | ||
export declare function checkDateTime(rule: StringRule, value: any): string | undefined; | ||
export declare function checkDateTime(rule: StringRule, value: any): { | ||
rule: StringRule; | ||
reason: string; | ||
} | undefined; |
import { EnumRule } from './type'; | ||
export declare function checkEnum(rule: EnumRule, value: any): "type" | undefined; | ||
export declare function checkEnum(rule: EnumRule, value: any): { | ||
rule: EnumRule; | ||
reason: string; | ||
} | undefined; |
import { IntegerRule } from './type'; | ||
export declare function checkInteger(rule: IntegerRule, value: any): "type" | "min" | "max" | undefined; | ||
export declare function checkInteger(rule: IntegerRule, value: any): { | ||
rule: IntegerRule; | ||
reason: string; | ||
} | undefined; |
import { NumberRule } from './type'; | ||
export declare function checkNumber(rule: NumberRule, value: any): "type" | "min" | "max" | "precision" | undefined; | ||
export declare function checkNumber(rule: NumberRule, value: any): { | ||
rule: NumberRule; | ||
reason: string; | ||
} | undefined; |
import { Rule } from './type'; | ||
export declare function checkObject(_: Rule, value: any): "type" | undefined; | ||
export declare function checkObject(rule: Rule, value: any): { | ||
rule: Rule; | ||
reason: string; | ||
} | undefined; |
import { StringRule } from './type'; | ||
export declare function checkString(rule: StringRule, value: any): string | undefined; | ||
export declare function checkString(rule: StringRule, value: any): { | ||
rule: StringRule; | ||
reason: string; | ||
} | undefined; |
@@ -21,3 +21,3 @@ import { checkArray } from './checkArray'; | ||
*/ | ||
declare const version = "0.0.5"; | ||
declare const version = "0.1.0"; | ||
export { Validator, checkArray, checkBoolean, checkDate, checkDateTime, checkEnum, checkInteger, checkNumber, checkObject, checkString, version, }; |
@@ -32,5 +32,9 @@ export interface Rule { | ||
} | ||
export interface CheckResult { | ||
rule: Rule; | ||
reason: string; | ||
} | ||
declare type MessageGenerator = (rule: Rule) => string; | ||
export declare type Message = Record<string, string | MessageGenerator>; | ||
export declare type Handler = (rule: ArrayRule | BooleanRule | EnumRule | IntegerRule | NumberRule | StringRule, value: any, data?: Record<string, any>) => string | undefined; | ||
export declare type Handler = (rule: ArrayRule | BooleanRule | EnumRule | IntegerRule | NumberRule | StringRule, value: any, data?: Record<string, any>) => CheckResult | undefined; | ||
export {}; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
34981
756
286