magner
Version:
Universal admin panel magnetic to any backend
32 lines (28 loc) • 980 B
text/typescript
import type { Validators } from 'lib/types/configs/development';
import { translate, TranslateError } from 'lib/utils/core/translate';
/** Supported validation transformations */
export const validators: Validators<string> = {
/** Special function. Works as a 'required' field and is disabled when
* editing the entity card (to allow PATCH method) */
empty: ({ rule, value }, callback) => {
if ((typeof value === 'string' && value.trim() === '') || !value) {
callback(new TranslateError(translate('core.validation.empty')));
} else {
callback();
}
},
password: ({ rule, value }, callback) => {
if (value.length < 6) {
callback(new TranslateError(translate('core.validation.password')));
} else {
callback();
}
},
email: ({ rule, value }, callback) => {
if (!value.match(/[^@]+@[^.]+\..+/i)) {
callback(new TranslateError(translate('core.validation.email')));
} else {
callback();
}
},
};