All files / packages/core/src/RenderingEngine renderingEngineCache.ts

100% Statements 10/10
100% Branches 0/0
100% Functions 5/5
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44    1x   1x               12579x               133x   133x                 133x       181x 181x   181x          
import type { IRenderingEngine } from '../types';
 
const cache = {};
 
const renderingEngineCache = {
  /**
   * Returns the `RenderingEngine` instance with the given `id`.
   *
   * @param id - The `id` of the `RenderingEngine` instance to fetch.
   * @returns The `RenderingEngine` instance.
   */
  get: (id: string): IRenderingEngine => {
    return cache[id];
  },
  /**
   * Adds the `RenderingEngine` instance to the cache.
   *
   * @param re - The `RenderingEngine` to add.
   */
  set: (re: IRenderingEngine): void => {
    const renderingEngineId = re.id;
 
    cache[renderingEngineId] = re;
  },
  /**
   * Deletes the `RenderingEngine` instance from the cache.
   *
   * @param id - The `id` of the `RenderingEngine` instance to delete.
   * @returns True if the delete was successful.
   */
  delete: (id: string) => {
    return delete cache[id];
  },
 
  getAll: (): Array<IRenderingEngine> => {
    const renderingEngineIds = Object.keys(cache);
    const renderingEngines = renderingEngineIds.map((id) => cache[id]);
 
    return renderingEngines;
  },
};
 
export default renderingEngineCache;