Class CacheManager

Cache implementation using OPFS (Origin private file system)

This class is also responsible for downloading files from the internet.

Constructors

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 file name in cache.

    Format of the file name: ${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.

  • Write the metadata of the file to disk.

    This function is separated from write() for compatibility reason. In older version of wllama, there was no metadata for cached file, so when newer version of wllama loads a file created by older version, it will try to polyfill the metadata.

    Parameters

    Returns Promise<void>