https://github.com/angular/angular
Raw File
Tip revision: 28a4631b63be6cd1e7e35d7f0dc6686f978f9063 authored by Jessica Janiuk on 09 June 2021, 18:30:22 UTC
release: cut the v12.1.0-next.5 release (#42534)
Tip revision: 28a4631
in.ts
/**
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */

/**
 * @publicApi
 */
export type Glob = string;

/**
 * @publicApi
 */
export type Duration = string;

/**
 * A top-level Angular Service Worker configuration object.
 *
 * @publicApi
 */
export interface Config {
  appData?: {};
  index: string;
  assetGroups?: AssetGroup[];
  dataGroups?: DataGroup[];
  navigationUrls?: string[];
  navigationRequestStrategy?: 'freshness'|'performance';
}

/**
 * Configuration for a particular group of assets.
 *
 * @publicApi
 */
export interface AssetGroup {
  name: string;
  installMode?: 'prefetch'|'lazy';
  updateMode?: 'prefetch'|'lazy';
  resources: {files?: Glob[]; urls?: Glob[];};
  cacheQueryOptions?: Pick<CacheQueryOptions, 'ignoreSearch'>;
}

/**
 * Configuration for a particular group of dynamic URLs.
 *
 * @publicApi
 */
export interface DataGroup {
  name: string;
  urls: Glob[];
  version?: number;
  cacheConfig: {
    maxSize: number; maxAge: Duration;
    timeout?: Duration;
    strategy?: 'freshness' | 'performance';
  };
  cacheQueryOptions?: Pick<CacheQueryOptions, 'ignoreSearch'>;
}
back to top