| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- export const collection = new Map();
- export default function staticRegister(namespace = 'common') {
- if (!collection.has(namespace)) {
- collection.set(namespace, new Map());
- }
- const subCollection = collection.get(namespace);
- /**
- * Register an item to the collection. If the item under the same was exist earlier then this item will be replaced with new one.
- *
- * @param {String} name Identification of the item.
- * @param {*} item Item to save in the collection.
- */
- function register(name, item) {
- subCollection.set(name, item);
- }
- /**
- * Retrieve the item from the collection.
- *
- * @param {String} name Identification of the item.
- * @returns {*} Returns item which was saved in the collection.
- */
- function getItem(name) {
- return subCollection.get(name);
- }
- /**
- * Check if item under specyfied name is exists.
- *
- * @param {String} name Identification of the item.
- * @returns {Boolean} Returns `true` or `false` depends on if element exists in the collection.
- */
- function hasItem(name) {
- return subCollection.has(name);
- }
- /**
- * Retrieve list of names registered from the collection.
- *
- * @returns {Array} Returns an array of strings with all names under which objects are stored.
- */
- function getNames() {
- return [...subCollection.keys()];
- }
- /**
- * Retrieve all registered values from the collection.
- *
- * @returns {Array} Returns an array with all values stored in the collection.
- */
- function getValues() {
- return [...subCollection.values()];
- }
- return {
- register,
- getItem,
- hasItem,
- getNames,
- getValues,
- };
- }
|