mikro-orm/mikro-orm

View on GitHub
packages/core/src/cache/CacheAdapter.ts

Summary

Maintainability
A
0 mins
Test Coverage
export interface CacheAdapter {

  /**
   * Gets the items under `name` key from the cache.
   */
  get<T = any>(name: string): T | Promise<T | undefined> | undefined;

  /**
   * Sets the item to the cache. `origin` is used for cache invalidation and should reflect the change in data.
   */
  set(name: string, data: any, origin: string, expiration?: number): void | Promise<void>;

  /**
   * Removes the item from cache.
   */
  remove(name: string): void | Promise<void>;

  /**
   * Clears all items stored in the cache.
   */
  clear(): void | Promise<void>;

  /**
   * Called inside `MikroORM.close()` Allows graceful shutdowns (e.g. for redis).
   */
  close?(): void | Promise<void>;

}

export interface SyncCacheAdapter extends CacheAdapter {

  /**
   * Gets the items under `name` key from the cache.
   */
  get<T = any>(name: string): T | undefined;

  /**
   * Sets the item to the cache. `origin` is used for cache invalidation and should reflect the change in data.
   */
  set(name: string, data: any, origin: string, expiration?: number): void;

  /**
   * Removes the item from cache.
   */
  remove(name: string): void;

  /**
   * Generates a combined cache from all existing entries.
   */
  combine?(): string | void;

}