registry-base.js 860 B

123456789101112131415161718192021222324252627282930313233343536
  1. export default class RegistryBase {
  2. constructor() {
  3. this._registryMap = new Map();
  4. }
  5. entries() {
  6. return this._registryMap.entries();
  7. }
  8. getAll(key) {
  9. this.ensure(key);
  10. return this._registryMap.get(key);
  11. }
  12. get(key) {
  13. this.ensure(key);
  14. const value = this._registryMap.get(key);
  15. return value[value.length - 1] || null;
  16. }
  17. set(key, value) {
  18. this.ensure(key);
  19. this._registryMap.get(key).push(value);
  20. }
  21. setAll(key, value) {
  22. this._registryMap.set(key, value);
  23. }
  24. has(key) {
  25. this.ensure(key);
  26. return this._registryMap.get(key).length > 0;
  27. }
  28. clear() {
  29. this._registryMap.clear();
  30. }
  31. ensure(key) {
  32. if (!this._registryMap.has(key)) {
  33. this._registryMap.set(key, []);
  34. }
  35. }
  36. }