@skele/core
Version:
Core package of the Skele framework. Element definitions, registrations and traversal.
1 lines • 1.17 kB
JavaScript
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.adaptKey=adaptKey;exports.default=Registry;var _immutable=require("immutable");var _Trie=_interopRequireDefault(require("./impl/Trie"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function adaptKey(key){if(key instanceof _immutable.List){if(key.size===0)return[];if(key.size===1)return[key.get(0)];if(key.size===2)return[key.get(0),key.get(1)];if(key.size===3)return[key.get(0),key.get(1),key.get(2)];if(key.size===4)return[key.get(0),key.get(1),key.get(2),key.get(3)];if(key.size===5)return[key.get(0),key.get(1),key.get(2),key.get(3),key.get(4)];return key.toArray();}return key;}function Registry(){this._registry=new _Trie.default();this.register=function(kind,obj){this._registry.register(adaptKey(kind),obj);};this.get=function(key){return this._registry.get(adaptKey(key),true);};this.getEntry=function(key){return this._registry.getEntry(adaptKey(key),true);};this.collector=function(key){return this._registry.collector(key);};this.isEmpty=function(){return this._registry.isEmpty;};this.reset=function(){this._registry=new _Trie.default();};}