FleetCart/Themes/Storefront/resources/assets/public/js/Errors.js
2023-06-11 13:14:03 +01:00

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);
}
}