2025/2/8第一次更新

This commit is contained in:
爱吃咸鱼小猫咪
2025-02-08 18:50:38 +08:00
commit d7af560866
26519 changed files with 5046029 additions and 0 deletions
@@ -0,0 +1,18 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const any: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
}
callback(errors);
};
export default any;
@@ -0,0 +1,21 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule/index';
const array: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if ((value === undefined || value === null) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options, 'array');
if (value !== undefined && value !== null) {
rules.type(rule, value, source, errors, options);
rules.range(rule, value, source, errors, options);
}
}
callback(errors);
};
export default array;
@@ -0,0 +1,21 @@
import { isEmptyValue } from '../util';
import rules from '../rule';
import type { ExecuteValidator } from '../interface';
const boolean: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
}
}
callback(errors);
};
export default boolean;
@@ -0,0 +1,34 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const date: ExecuteValidator = (rule, value, callback, source, options) => {
// console.log('integer rule called %j', rule);
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
// console.log('validate on %s value', value);
if (validate) {
if (isEmptyValue(value, 'date') && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (!isEmptyValue(value, 'date')) {
let dateObject;
if (value instanceof Date) {
dateObject = value;
} else {
dateObject = new Date(value);
}
rules.type(rule, dateObject, source, errors, options);
if (dateObject) {
rules.range(rule, dateObject.getTime(), source, errors, options);
}
}
}
callback(errors);
};
export default date;
@@ -0,0 +1,29 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const ENUM = 'enum' as const;
const enumerable: ExecuteValidator = (
rule,
value,
callback,
source,
options,
) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules[ENUM](rule, value, source, errors, options);
}
}
callback(errors);
};
export default enumerable;
@@ -0,0 +1,22 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const floatFn: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
rules.range(rule, value, source, errors, options);
}
}
callback(errors);
};
export default floatFn;
@@ -0,0 +1,35 @@
import string from './string';
import method from './method';
import number from './number';
import boolean from './boolean';
import regexp from './regexp';
import integer from './integer';
import float from './float';
import array from './array';
import object from './object';
import enumValidator from './enum';
import pattern from './pattern';
import date from './date';
import required from './required';
import type from './type';
import any from './any';
export default {
string,
method,
number,
boolean,
regexp,
integer,
float,
array,
object,
enum: enumValidator,
pattern,
date,
url: type,
hex: type,
email: type,
required,
any,
};
@@ -0,0 +1,22 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const integer: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
rules.range(rule, value, source, errors, options);
}
}
callback(errors);
};
export default integer;
@@ -0,0 +1,21 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const method: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
}
}
callback(errors);
};
export default method;
@@ -0,0 +1,25 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const number: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (value === '') {
value = undefined;
}
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
rules.range(rule, value, source, errors, options);
}
}
callback(errors);
};
export default number;
@@ -0,0 +1,21 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const object: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (value !== undefined) {
rules.type(rule, value, source, errors, options);
}
}
callback(errors);
};
export default object;
@@ -0,0 +1,21 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const pattern: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value, 'string') && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (!isEmptyValue(value, 'string')) {
rules.pattern(rule, value, source, errors, options);
}
}
callback(errors);
};
export default pattern;
@@ -0,0 +1,21 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const regexp: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (!isEmptyValue(value)) {
rules.type(rule, value, source, errors, options);
}
}
callback(errors);
};
export default regexp;
@@ -0,0 +1,11 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
const required: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const type = Array.isArray(value) ? 'array' : typeof value;
rules.required(rule, value, source, errors, options, type);
callback(errors);
};
export default required;
@@ -0,0 +1,26 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const string: ExecuteValidator = (rule, value, callback, source, options) => {
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value, 'string') && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options, 'string');
if (!isEmptyValue(value, 'string')) {
rules.type(rule, value, source, errors, options);
rules.range(rule, value, source, errors, options);
rules.pattern(rule, value, source, errors, options);
if (rule.whitespace === true) {
rules.whitespace(rule, value, source, errors, options);
}
}
}
callback(errors);
};
export default string;
@@ -0,0 +1,22 @@
import type { ExecuteValidator } from '../interface';
import rules from '../rule';
import { isEmptyValue } from '../util';
const type: ExecuteValidator = (rule, value, callback, source, options) => {
const ruleType = rule.type;
const errors: string[] = [];
const validate =
rule.required || (!rule.required && source.hasOwnProperty(rule.field));
if (validate) {
if (isEmptyValue(value, ruleType) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options, ruleType);
if (!isEmptyValue(value, ruleType)) {
rules.type(rule, value, source, errors, options);
}
}
callback(errors);
};
export default type;