Volt.Cache (Volt v0.13.1)

Copy Markdown View Source

ETS-backed module cache keyed by path.

Caches compiled output so repeated requests for unchanged files skip the compilation step entirely.

Summary

Functions

Clear all cached entries.

Create the cache ETS table. Called once from Application.start/2.

Evict the entry for a cache key.

Evict all cache entries derived from a file path, including variant keys like path <> "?import".

Look up a cached entry. Returns nil on miss.

Look up any cached entry for a file path regardless of mtime.

Store a compiled entry.

Types

cache_entry()

@type cache_entry() :: %{mtime: integer(), entry: entry()}

entry()

@type entry() :: Volt.DevServer.CacheEntry.t()

Functions

clear()

@spec clear() :: :ok

Clear all cached entries.

create_table()

@spec create_table() :: :ok

Create the cache ETS table. Called once from Application.start/2.

evict(key)

@spec evict(String.t()) :: :ok

Evict the entry for a cache key.

evict_file(path)

@spec evict_file(String.t()) :: :ok

Evict all cache entries derived from a file path, including variant keys like path <> "?import".

get(path, mtime)

@spec get(String.t(), integer()) :: entry() | nil

Look up a cached entry. Returns nil on miss.

get_file(path)

@spec get_file(String.t()) :: entry() | nil

Look up any cached entry for a file path regardless of mtime.

put(path, mtime, entry)

@spec put(String.t(), integer(), entry()) :: :ok

Store a compiled entry.