or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cache-expiration.mdexpiration-plugin.mdindex.md
tile.json

tessl/npm-workbox-expiration

A service worker helper library that expires cached responses based on age or maximum number of entries.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/workbox-expiration@7.3.x

To install, run

npx @tessl/cli install tessl/npm-workbox-expiration@7.3.0

index.mddocs/

Workbox Expiration

Workbox Expiration is a service worker helper library that expires cached responses based on age or maximum number of entries. It provides two main approaches for cache expiration: programmatic cache management via the CacheExpiration class and seamless integration with Workbox strategies through the ExpirationPlugin.

Package Information

  • Package Name: workbox-expiration
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install workbox-expiration

Core Imports

import { CacheExpiration, ExpirationPlugin } from "workbox-expiration";
import type { ExpirationPluginOptions } from "workbox-expiration";

For CommonJS:

const { CacheExpiration, ExpirationPlugin } = require("workbox-expiration");

Basic Usage

import { ExpirationPlugin } from "workbox-expiration";
import { StaleWhileRevalidate } from "workbox-strategies";

// Using ExpirationPlugin with a Workbox strategy
const strategy = new StaleWhileRevalidate({
  cacheName: "api-cache",
  plugins: [
    new ExpirationPlugin({
      maxEntries: 50,
      maxAgeSeconds: 60 * 60 * 24, // 24 hours
    }),
  ],
});

// Direct cache expiration management
import { CacheExpiration } from "workbox-expiration";

const cacheExpiration = new CacheExpiration("my-cache", {
  maxEntries: 100,
  maxAgeSeconds: 60 * 60, // 1 hour
});

// Manually expire entries
await cacheExpiration.expireEntries();

Architecture

Workbox Expiration is built around several key components:

  • CacheExpiration Class: Direct programmatic interface for cache expiration management
  • ExpirationPlugin Class: Workbox plugin that automatically handles expiration during cache operations
  • IndexedDB Integration: Persistent timestamp storage via CacheTimestampsModel for tracking entry age and usage
  • Lifecycle Hooks: Integration with Workbox plugin lifecycle for automatic expiration
  • Quota Management: Optional automatic cleanup when storage quota is exceeded

Capabilities

Cache Expiration Management

Direct programmatic control over cache expiration with configurable age and entry limits. Ideal for manual cache management and custom expiration workflows.

class CacheExpiration {
  constructor(cacheName: string, config: CacheExpirationConfig = {});
  expireEntries(): Promise<void>;
  updateTimestamp(url: string): Promise<void>;
  isURLExpired(url: string): Promise<boolean>;
  delete(): Promise<void>;
}

interface CacheExpirationConfig {
  maxEntries?: number;
  maxAgeSeconds?: number;
  matchOptions?: CacheQueryOptions;
}

Cache Expiration Management

Plugin-Based Expiration

Workbox plugin for seamless integration with caching strategies, providing automatic expiration based on age and entry limits during cache operations.

class ExpirationPlugin {
  constructor(config: ExpirationPluginOptions = {});
  deleteCacheAndMetadata(): Promise<void>;
}

interface ExpirationPluginOptions {
  maxEntries?: number;
  maxAgeSeconds?: number;
  matchOptions?: CacheQueryOptions;
  purgeOnQuotaError?: boolean;
}

Plugin-Based Expiration