| 1234567891011121314151617181920212223242526 |
- import type { AssertRule } from '~/types/interfaces'
- import { useI18n } from 'vue-i18n'
- import ValidationUtils from '~/services/utils/validationUtils'
- export class TypeAssert implements AssertRule {
- supports(key: string): boolean {
- return key === 'type'
- }
- createRule(criteria: string): (value: unknown) => true | string {
- const validationUtils = new ValidationUtils()
- const { t } = useI18n()
- if (criteria === 'email') {
- return (email: string) =>
- validationUtils.validEmail(email) || t('email_error')
- }
- if (criteria === 'integer') {
- return (value: unknown) =>
- Number.isInteger(value) || t('need_to_be_integer')
- }
- return () => true
- }
- }
|