vue-hooks-plus
Version:
Vue hooks library
53 lines (52 loc) • 1.48 kB
JavaScript
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
class RegisterDevToolsStore {
constructor() {
__publicField(this, "requestInstances", /* @__PURE__ */ new Map());
__publicField(this, "listeners", []);
}
emit(payload) {
this.listeners.forEach((item) => item(payload));
}
subscribe(listener) {
this.listeners.push(listener);
return () => {
const index = this.listeners.indexOf(listener);
this.listeners.splice(index, 1);
};
}
insert(key, payload) {
this.requestInstances.set(key, { ...payload });
this.emit({
key,
...payload
});
}
update(key, payload) {
if (this.has(key)) {
this.requestInstances.set(key, { ...this.requestInstances.get(key), ...payload });
}
}
has(key) {
return this.requestInstances.has(key);
}
reset(key) {
if (this.requestInstances.has(key)) {
const current = this.requestInstances.get(key);
this.requestInstances.clear();
this.insert(key, current);
} else
this.requestInstances.clear();
}
getAll() {
return this.requestInstances;
}
}
const devToolsStore = new RegisterDevToolsStore();
export {
devToolsStore as default
};