40 lines
954 B
JavaScript
40 lines
954 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
class RegistryBase {
|
|
constructor() {
|
|
this._registryMap = new Map();
|
|
}
|
|
entries() {
|
|
return this._registryMap.entries();
|
|
}
|
|
getAll(key) {
|
|
this.ensure(key);
|
|
return this._registryMap.get(key);
|
|
}
|
|
get(key) {
|
|
this.ensure(key);
|
|
const value = this._registryMap.get(key);
|
|
return value[value.length - 1] || null;
|
|
}
|
|
set(key, value) {
|
|
this.ensure(key);
|
|
this._registryMap.get(key).push(value);
|
|
}
|
|
setAll(key, value) {
|
|
this._registryMap.set(key, value);
|
|
}
|
|
has(key) {
|
|
this.ensure(key);
|
|
return this._registryMap.get(key).length > 0;
|
|
}
|
|
clear() {
|
|
this._registryMap.clear();
|
|
}
|
|
ensure(key) {
|
|
if (!this._registryMap.has(key)) {
|
|
this._registryMap.set(key, []);
|
|
}
|
|
}
|
|
}
|
|
exports.default = RegistryBase;
|