registry-base.js 1.2 KB

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