Fichero

libs/suspense/services/suspense-cache.service.ts

Descripción

Implementación de servicio de cache en memoria (simple), para las clases asociadas a los componentes lazy que se van a cargar usando qp-suspense

Índice

Propiedades
Métodos

Constructor

constructor()

Métodos

debugClazzMap
debugClazzMap()

Despliega el contenido del caché de clases. Sólo para debug.

Devuelve : void
getClazz
getClazz(clazzName: string)

Dado el nombre de un clase, la rescata desde el caché. Supone que previamente se ha hecho una verificación de su existencia.

Parámetros :
Nombre Tipo Opcional Descripción
clazzName string No

Llave de búsqueda para el rescate de la clase del componente. Nombre de la clase.

Devuelve : T

Clase asociada al componente a cargar

hasClazz
hasClazz(clazzName: string)

Verifica si una clase sen encuentra en el caché.

Parámetros :
Nombre Tipo Opcional Descripción
clazzName string No

Llave de búsqueda para el rescate de la clase del componente. Nombre de la clase.

Devuelve : boolean

true si la clase se encuentra en el caché

setClazz
setClazz(clazzName: string, clazz: T)

Almacena la clase asociada al componente Suspenseable, utilizando el nombre de la clase como llave de búsqueda.

Parámetros :
Nombre Tipo Opcional Descripción
clazzName string No

Nombre de la clase, que será usado como llave de búsqeuda/rescate

clazz T No

Clase (módulo ESM) asociada al componente

Devuelve : void

Propiedades

Private clazzMap
Tipo : Map<string | T>
Valor por defecto : new Map()
import { Injectable } from '@angular/core';

/**
 * Implementación de servicio de cache en memoria (simple), para las
 * clases asociadas a los componentes lazy que se van a cargar usando qp-suspense
 */
@Injectable({
  providedIn: 'root'
})
export class SuspenseCacheService<T> {
  private clazzMap: Map<string, T> = new Map();

  constructor() { }

  /**
   * Verifica si una clase sen encuentra en el caché.
   * @param clazzName Llave de búsqueda para el rescate de la clase del componente. Nombre de la clase. 
   * @returns true si la clase se encuentra en el caché
   */
  hasClazz(clazzName: string): boolean {
    return this.clazzMap.has(clazzName);
  }

  /**
   * Dado el nombre de un clase, la rescata desde el caché.
   * Supone que previamente se ha hecho una verificación de su existencia.
   * @param clazzName Llave de búsqueda para el rescate de la clase del componente. Nombre de la clase. 
   * @returns Clase asociada al componente a cargar
   */
  getClazz(clazzName: string): T {
    return this.clazzMap.get(clazzName) as T;
  }

  /**
   * Almacena la clase asociada al componente Suspenseable, utilizando el nombre de la clase
   * como llave de búsqueda. 
   * @param clazzName Nombre de la clase, que será usado como llave de búsqeuda/rescate
   * @param clazz Clase (módulo ESM) asociada al componente
   */
  setClazz(clazzName: string, clazz: T) {
    this.clazzMap.set(clazzName, clazz);
  }

  /**
   * Despliega el contenido del caché de clases.
   * Sólo para debug.
   */
  debugClazzMap() {
    console.log(`[QpSuspenseCacheService]`, this.clazzMap);
  }
}

comparación de resultados ""

    No hay resultados que coincidan ""