import { JioTranslateElement, ElementMeta } from '../../types'; export type RegistredElementsMap = Map; export function ElementStore() { const registredElements: RegistredElementsMap = new Map(); return Object.freeze({ set(el: JioTranslateElement, meta: ElementMeta) { registredElements.set(el, meta); }, get(el: JioTranslateElement | undefined) { return el && registredElements.get(el); }, remove(el: JioTranslateElement) { return registredElements.delete(el); }, forEachElement( callback: (el: JioTranslateElement, meta: ElementMeta) => void ) { registredElements.forEach((value, key) => callback(key, value)); }, }); } export type ElementStoreType = ReturnType;