PositiveAssert.ts 654 B

1234567891011121314151617181920212223242526
  1. import type { AssertRule } from '~/types/interfaces'
  2. import {useI18n} from "vue-i18n";
  3. export class PositiveAssert implements AssertRule {
  4. supports(key: string): boolean {
  5. return key === 'positive'
  6. }
  7. createRule(criteria: string): (value: unknown) => true | string {
  8. const { t } = useI18n()
  9. if (criteria === 'positive') {
  10. return (value: number) =>
  11. value === null ||
  12. value > 0 ||
  13. t(`must_be_positive`)
  14. }else if (criteria === 'positive_or_zero'){
  15. return (value: number) =>
  16. value === null ||
  17. value >= 0 ||
  18. t(`must_be_positive_or_egal_0`)
  19. }
  20. return () => true
  21. }
  22. }