49 lines
894 B
JavaScript
49 lines
894 B
JavaScript
import Vue from "vue";
|
|
|
|
export default class {
|
|
constructor() {
|
|
this.errors = {};
|
|
}
|
|
|
|
record(errors) {
|
|
this.errors = errors;
|
|
}
|
|
|
|
any() {
|
|
return Object.keys(this.errors).length > 0;
|
|
}
|
|
|
|
has(key) {
|
|
return this.errors.hasOwnProperty(key);
|
|
}
|
|
|
|
get(key) {
|
|
if (this.errors[key]) {
|
|
return this.errors[key][0];
|
|
}
|
|
}
|
|
|
|
clear(key) {
|
|
if (key === undefined) {
|
|
return;
|
|
}
|
|
|
|
Vue.delete(this.errors, this.normalizeKey(key));
|
|
}
|
|
|
|
reset() {
|
|
this.errors = {};
|
|
}
|
|
|
|
normalizeKey(key) {
|
|
let keyParts = key.replace("[]", "").split("[");
|
|
|
|
// No need to normalize the key.
|
|
if (keyParts.length === 1) {
|
|
return key;
|
|
}
|
|
|
|
return keyParts.join(".").slice(0, -1);
|
|
}
|
|
}
|