import { traduction } from '@/utils/language';
import { DOMAIN_NAME, IPV4, IPV6 } from '@/utils/regular';
export class DomainValidators {
public static ipv46AndDomin = (trigger?: string, errorMsg?: string) => {
const _trigger = trigger || 'change';
return {
type: 'string',
trigger: _trigger,
message: errorMsg ? errorMsg : traduction('COMMON_FORMAT_ERROR'),
validator: (rule: any, value: any, callback: (error?: Error) => void) => {
if (value === '') {
callback();
return;
}
let result = false;
if (/^[0-9.]+$/.test(value)) {
result = IPV4.test(value);
} else if (value.indexOf(':') > -1) {
result = IPV6.test(value);
} else {
result = DOMAIN_NAME.test(value);
}
!result ? callback(new Error()) : callback();
}
};
};
public static ipv46 = () => {
return {
type: 'string',
trigger: 'change',
message: traduction('COMMON_FORMAT_ERROR'),
validator: (rule: any, value: any, callback: (error?: Error) => void) => {
if (value === '') {
callback();
return;
}
let result = false;
if (/^[0-9.]+$/.test(value)) {
result = IPV4.test(value);
} else if (value.indexOf(':') > -1) {
result = IPV6.test(value);
}
!result ? callback(new Error()) : callback();
}
};
};
public static ipv6 = () => {
return {
type: 'string',
trigger: 'change',
message: traduction('COMMON_FORMAT_ERROR'),
validator: (rule: any, value: any, callback: (error?: Error) => void) => {
if (value === '') {
callback();
return;
}
let result = false;
if (value.indexOf(':') > -1) {
result = IPV6.test(value);
}
!result ? callback(new Error()) : callback();
}
};
};
public static domin = (trigger?: string, errorMsg?: string): any => {
const _trigger = trigger ?? 'change';
return {
type: 'string',
trigger: _trigger,
message: errorMsg ? errorMsg : traduction('COMMON_FORMAT_ERROR'),
validator: (rule: any, value: any, callback: (error?: Error) => void): any => {
if (value === '') {
callback();
return;
}
let result = false;
if (/[0-9.]+$/.test(value)) {
result = false;
} else if (value.indexOf(':') > -1) {
result = false;
} else {
result = DOMAIN_NAME.test(value);
}
!result ? callback(new Error()) : callback();
}
};
};
}