FleetCart/Themes/Storefront/resources/assets/public/js/Errors.js
2023-12-03 14:07:47 +00: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);
}
}