refactor: merge util removed due it's no longer required
This commit is contained in:
parent
dfc6557bc6
commit
0d2a5329db
@ -10,8 +10,6 @@ import type {
|
||||
|
||||
import type { Options } from '../types/plugin'
|
||||
|
||||
import merge from '@/utils/merge'
|
||||
|
||||
import validationRules from '@/validation/rules'
|
||||
import validationMessages from '@/validation/messages'
|
||||
|
||||
@ -35,8 +33,8 @@ export default class Formulario {
|
||||
*/
|
||||
public extend (extendWith: Options): Formulario {
|
||||
if (typeof extendWith === 'object') {
|
||||
this.validationRules = merge(this.validationRules, extendWith.validationRules || {})
|
||||
this.validationMessages = merge(this.validationMessages, extendWith.validationMessages || {})
|
||||
this.validationRules = { ...this.validationRules, ...(extendWith.validationRules || {}) }
|
||||
this.validationMessages = { ...this.validationMessages, ...(extendWith.validationMessages || {}) }
|
||||
return this
|
||||
}
|
||||
throw new Error(`[Formulario]: Formulario.extend(): should be passed an object (was ${typeof extendWith})`)
|
||||
@ -89,7 +87,7 @@ export default class Formulario {
|
||||
* @internal
|
||||
*/
|
||||
public getRules (extendWith: Record<string, ValidationRuleFn> = {}): Record<string, ValidationRuleFn> {
|
||||
return merge(this.validationRules, extendWith)
|
||||
return { ...this.validationRules, ...extendWith }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -97,12 +95,14 @@ export default class Formulario {
|
||||
* @internal
|
||||
*/
|
||||
public getMessages (vm: Vue, extendWith: Record<string, ValidationMessageI18NFn|string>): Record<string, ValidationMessageFn> {
|
||||
const raw = merge(this.validationMessages || {}, extendWith)
|
||||
const raw = { ...this.validationMessages, ...extendWith }
|
||||
const messages: Record<string, ValidationMessageFn> = {}
|
||||
|
||||
for (const name in raw) {
|
||||
messages[name] = (context: ValidationContext, ...args: any[]): string => {
|
||||
return typeof raw[name] === 'string' ? raw[name] : raw[name](vm, context, ...args)
|
||||
messages[name] = (context: ValidationContext, ...args: unknown[]): string => {
|
||||
const fn = raw[name]
|
||||
|
||||
return typeof fn === 'string' ? fn : fn(vm, context, ...args)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,6 @@ import {
|
||||
deepEquals,
|
||||
get,
|
||||
has,
|
||||
merge,
|
||||
set,
|
||||
unset,
|
||||
} from '@/utils'
|
||||
@ -59,7 +58,7 @@ export default class FormularioForm extends Vue {
|
||||
private localFormErrors: string[] = []
|
||||
|
||||
private get fieldsErrorsComputed (): Record<string, string[]> {
|
||||
return merge(this.fieldsErrors || {}, this.localFieldsErrors)
|
||||
return { ...this.fieldsErrors, ...this.localFieldsErrors }
|
||||
}
|
||||
|
||||
private get formErrorsComputed (): string[] {
|
||||
|
@ -72,7 +72,7 @@ export function typeOf (value: unknown): string {
|
||||
return 'InstanceOf<' + (constructorOf(value) as { name?: string }).name + '>'
|
||||
}
|
||||
|
||||
throw new Error()
|
||||
throw new Error('[Formulario] typeOf - unknown type detected')
|
||||
}
|
||||
|
||||
export function isScalar (value: unknown): boolean {
|
||||
|
@ -1,7 +1,6 @@
|
||||
export { default as id } from './id'
|
||||
export { default as clone } from './clone'
|
||||
export { default as has } from './has'
|
||||
export { default as merge } from './merge'
|
||||
export { get, set, unset } from './access'
|
||||
export { default as regexForFormat } from './regexForFormat'
|
||||
export { deepEquals, shallowEquals } from './compare'
|
||||
|
@ -1,40 +0,0 @@
|
||||
import isPlainObject from 'is-plain-object'
|
||||
import has from '@/utils/has'
|
||||
|
||||
/**
|
||||
* Create a new object by copying properties of base and mergeWith.
|
||||
* Note: arrays don't overwrite - they push
|
||||
*
|
||||
* @param {Object} a
|
||||
* @param {Object} b
|
||||
* @param {boolean} concatArrays
|
||||
*/
|
||||
export default function merge (
|
||||
a: Record<string, any>,
|
||||
b: Record<string, any>,
|
||||
concatArrays = true
|
||||
): Record<string, any> {
|
||||
const merged: Record<string, any> = {}
|
||||
|
||||
for (const key in a) {
|
||||
if (has(b, key)) {
|
||||
if (isPlainObject(b[key]) && isPlainObject(a[key])) {
|
||||
merged[key] = merge(a[key], b[key], concatArrays)
|
||||
} else if (concatArrays && Array.isArray(a[key]) && Array.isArray(b[key])) {
|
||||
merged[key] = a[key].concat(b[key])
|
||||
} else {
|
||||
merged[key] = b[key]
|
||||
}
|
||||
} else {
|
||||
merged[key] = a[key]
|
||||
}
|
||||
}
|
||||
|
||||
for (const prop in b) {
|
||||
if (!has(merged, prop)) {
|
||||
merged[prop] = b[prop]
|
||||
}
|
||||
}
|
||||
|
||||
return merged
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
import merge from '@/utils/merge.ts'
|
||||
|
||||
describe('merge', () => {
|
||||
it('Can merge simple object', () => {
|
||||
expect(merge({
|
||||
optionA: true,
|
||||
optionB: '1234',
|
||||
}, {
|
||||
optionA: false,
|
||||
})).toEqual({
|
||||
optionA: false,
|
||||
optionB: '1234',
|
||||
})
|
||||
})
|
||||
|
||||
it('Can add to simple array', () => {
|
||||
expect(merge({
|
||||
optionA: true,
|
||||
optionB: ['first', 'second']
|
||||
}, {
|
||||
optionB: ['third']
|
||||
}, true)).toEqual({
|
||||
optionA: true,
|
||||
optionB: ['first', 'second', 'third']
|
||||
})
|
||||
})
|
||||
|
||||
it('Can merge recursively', () => {
|
||||
expect(merge({
|
||||
optionA: true,
|
||||
optionC: {
|
||||
first: '123',
|
||||
third: {
|
||||
a: 'b',
|
||||
},
|
||||
},
|
||||
optionB: '1234',
|
||||
}, {
|
||||
optionB: '567',
|
||||
optionC: {
|
||||
first: '1234',
|
||||
second: '789',
|
||||
}
|
||||
})).toEqual({
|
||||
optionA: true,
|
||||
optionC: {
|
||||
first: '1234',
|
||||
third: {
|
||||
a: 'b',
|
||||
},
|
||||
second: '789',
|
||||
},
|
||||
optionB: '567',
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue
Block a user