Class CacheManager

Manages cached model files, backed by a pluggable StorageBackend.

Defaults to OPFS (Origin Private File System).

Constructors

  • Parameters

    • backends: StorageBackend[] = ...

      Array of storage backends to use, in order of preference ; if first is available, use it, otherwise try the next one.

    Returns CacheManager

Methods

  • Delete a single file in cache

    Parameters

    • nameOrURL: string

      Can be either an URL or a name returned by getNameFromURL() or list()

    Returns Promise<void>

  • Delete multiple files in cache.

    Parameters

    • predicate: (e: CacheEntry) => boolean

      A predicate like array.filter(item => boolean)

    Returns Promise<void>

  • Convert a given URL into a storage key.

    Format: ${hashSHA1(fullURL)}_${fileName}

    Parameters

    • url: string

    Returns Promise<string>

  • Get the size of a file in stored cache

    NOTE: in case the download is stopped mid-way (i.e. user close browser tab), the file maybe corrupted, size maybe different from metadata.originalSize

    Parameters

    • name: string

      The file name returned by getNameFromURL() or list()

    Returns Promise<number>

    number of bytes, or -1 if file does not exist

  • Open a file in cache for reading

    Parameters

    • nameOrURL: string

      The file name returned by getNameFromURL() or list(), or the original URL of the remote file

    Returns Promise<null | Blob>

    Blob, or null if file does not exist

  • Parameters

    • name: string

      The file name returned by getNameFromURL() or list()

    • stream: ReadableStream<any>
    • metadata: CacheEntryMetadata

    Returns Promise<void>

    Use download() instead

    Write a new file to cache. This will overwrite existing file.