From 62e65687d1ac5b4a1176c848e75eb1f47d884baf Mon Sep 17 00:00:00 2001 From: Zaytsev Kirill Date: Fri, 6 Nov 2020 20:44:04 +0300 Subject: [PATCH] chore: Types renames --- src/Formulario.ts | 13 ++++++----- src/FormularioInput.vue | 16 ++++++------- src/validation/messages.ts | 4 ++-- src/validation/validator.ts | 45 ++++++++++++++++++++----------------- 4 files changed, 41 insertions(+), 37 deletions(-) diff --git a/src/Formulario.ts b/src/Formulario.ts index 401d2c4..abee46a 100644 --- a/src/Formulario.ts +++ b/src/Formulario.ts @@ -4,8 +4,9 @@ import validationMessages from '@/validation/messages' import { ValidationContext, - CheckRuleFn, - CreateMessageFn, + ValidationRuleFn, + ValidationMessageFn, + ValidationMessageI18NFn, } from '@/validation/validator' export interface FormularioOptions { @@ -18,7 +19,7 @@ export interface FormularioOptions { * The base formulario library. */ export default class Formulario { - public validationRules: Record = {} + public validationRules: Record = {} public validationMessages: Record = {} constructor (options?: FormularioOptions) { @@ -43,16 +44,16 @@ export default class Formulario { /** * Get validation rules by merging any passed in with global rules. */ - getRules (extendWith: Record = {}): Record { + getRules (extendWith: Record = {}): Record { return merge(this.validationRules, extendWith) } /** * Get validation messages by merging any passed in with global messages. */ - getMessages (vm: Vue, extendWith: Record): Record { + getMessages (vm: Vue, extendWith: Record): Record { const raw = merge(this.validationMessages || {}, extendWith) - const messages: Record = {} + const messages: Record = {} for (const name in raw) { messages[name] = (context: ValidationContext, ...args: any[]): string => { diff --git a/src/FormularioInput.vue b/src/FormularioInput.vue index bbfc003..a396a68 100644 --- a/src/FormularioInput.vue +++ b/src/FormularioInput.vue @@ -15,8 +15,8 @@ import { } from 'vue-property-decorator' import { arrayify, has, shallowEqualObjects, snakeToCamel } from './utils' import { - CheckRuleFn, - CreateMessageFn, + ValidationRuleFn, + ValidationMessageI18NFn, processConstraints, validate, Violation, @@ -47,8 +47,8 @@ export default class FormularioInput extends Vue { }) name!: string @Prop({ default: '' }) validation!: string|any[] - @Prop({ default: () => ({}) }) validationRules!: Record - @Prop({ default: () => ({}) }) validationMessages!: Record + @Prop({ default: () => ({}) }) validationRules!: Record + @Prop({ default: () => ({}) }) validationMessages!: Record @Prop({ default: VALIDATION_BEHAVIOR.DEMAND, validator: behavior => Object.values(VALIDATION_BEHAVIOR).includes(behavior) @@ -99,16 +99,16 @@ export default class FormularioInput extends Vue { }) } - get normalizedValidationRules (): Record { - const rules: Record = {} + get normalizedValidationRules (): Record { + const rules: Record = {} Object.keys(this.validationRules).forEach(key => { rules[snakeToCamel(key)] = this.validationRules[key] }) return rules } - get normalizedValidationMessages (): Record { - const messages: Record = {} + get normalizedValidationMessages (): Record { + const messages: Record = {} Object.keys(this.validationMessages).forEach((key) => { messages[snakeToCamel(key)] = this.validationMessages[key] }) diff --git a/src/validation/messages.ts b/src/validation/messages.ts index 902aea1..e42cd05 100644 --- a/src/validation/messages.ts +++ b/src/validation/messages.ts @@ -29,7 +29,7 @@ export default { /** * The value is not a letter. */ - alpha (vm: Vue, context: Record): string { + alpha (vm: Vue, context: ValidationContext): string { return vm.$t('validation.alpha', context) }, @@ -175,7 +175,7 @@ export default { /** * Value is not a url. */ - url (vm: Vue, context: Record): string { + url (vm: Vue, context: ValidationContext): string { return vm.$t('validation.url.default', context) } } diff --git a/src/validation/validator.ts b/src/validation/validator.ts index 225dc43..50b767a 100644 --- a/src/validation/validator.ts +++ b/src/validation/validator.ts @@ -11,14 +11,18 @@ export interface Violation { message: string; } -export interface CheckRuleFn { +export interface ValidationRuleFn { (context: ValidationContext, ...args: any[]): Promise|boolean; } -export interface CreateMessageFn { +export interface ValidationMessageFn { (context: ValidationContext, ...args: any[]): string; } +export interface ValidationMessageI18NFn { + (vm: Vue, context: ValidationContext, ...args: any[]): string; +} + export interface ValidationContext { // The value of the field (do not mutate!), value: any; @@ -34,21 +38,20 @@ export type ValidatorGroup = { } export function createValidator ( - ruleFn: CheckRuleFn, + ruleFn: ValidationRuleFn, ruleName: string|null, ruleArgs: any[], - messageFn: CreateMessageFn + messageFn: ValidationMessageFn ): Validator { return (context: ValidationContext): Promise => { - return Promise.resolve(ruleFn(context, ...ruleArgs)) - .then(valid => { - return !valid ? { - rule: ruleName, - args: ruleArgs, - context, - message: messageFn(context, ...ruleArgs), - } : null - }) + return Promise.resolve(ruleFn(context, ...ruleArgs)).then(valid => { + return !valid ? { + rule: ruleName, + args: ruleArgs, + context, + message: messageFn(context, ...ruleArgs), + } : null + }) } } @@ -61,8 +64,8 @@ export function parseModifier (ruleName: string): [string, string|null] { export function processSingleArrayConstraint ( constraint: any[], - rules: Record, - messages: Record + rules: Record, + messages: Record ): [Validator, string|null, string|null] { const args = constraint.slice() const first = args.shift() @@ -95,8 +98,8 @@ export function processSingleArrayConstraint ( export function processSingleStringConstraint ( constraint: string, - rules: Record, - messages: Record + rules: Record, + messages: Record ): [Validator, string|null, string|null] { const args = constraint.split(':') const [name, modifier] = parseModifier(args.shift() || '') @@ -119,8 +122,8 @@ export function processSingleStringConstraint ( export function processSingleConstraint ( constraint: string|Validator|[Validator|string, ...any[]], - rules: Record, - messages: Record + rules: Record, + messages: Record ): [Validator, string|null, string|null] { if (typeof constraint === 'function') { return [constraint, null, null] @@ -139,8 +142,8 @@ export function processSingleConstraint ( export function processConstraints ( constraints: string|any[], - rules: Record, - messages: Record + rules: Record, + messages: Record ): [Validator, string|null, string|null][] { if (typeof constraints === 'string') { return processConstraints(constraints.split('|').filter(f => f.length), rules, messages)