48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
export interface AssetGroup {
 | 
						|
    installMode?: 'prefetch' | 'lazy';
 | 
						|
    name: string;
 | 
						|
    resources: {
 | 
						|
        files?: Glob[];
 | 
						|
        /** @deprecated */ versionedFiles?: Glob[];
 | 
						|
        urls?: Glob[];
 | 
						|
    };
 | 
						|
    updateMode?: 'prefetch' | 'lazy';
 | 
						|
}
 | 
						|
 | 
						|
export interface Config {
 | 
						|
    appData?: {};
 | 
						|
    assetGroups?: AssetGroup[];
 | 
						|
    dataGroups?: DataGroup[];
 | 
						|
    index: string;
 | 
						|
    navigationUrls?: string[];
 | 
						|
}
 | 
						|
 | 
						|
export interface DataGroup {
 | 
						|
    cacheConfig: {
 | 
						|
        maxSize: number;
 | 
						|
        maxAge: Duration;
 | 
						|
        timeout?: Duration;
 | 
						|
        strategy?: 'freshness' | 'performance';
 | 
						|
    };
 | 
						|
    name: string;
 | 
						|
    urls: Glob[];
 | 
						|
    version?: number;
 | 
						|
}
 | 
						|
 | 
						|
export declare type Duration = string;
 | 
						|
 | 
						|
export interface Filesystem {
 | 
						|
    hash(file: string): Promise<string>;
 | 
						|
    list(dir: string): Promise<string[]>;
 | 
						|
    read(file: string): Promise<string>;
 | 
						|
    write(file: string, contents: string): Promise<void>;
 | 
						|
}
 | 
						|
 | 
						|
export declare class Generator {
 | 
						|
    readonly fs: Filesystem;
 | 
						|
    constructor(fs: Filesystem, baseHref: string);
 | 
						|
    process(config: Config): Promise<Object>;
 | 
						|
}
 | 
						|
 | 
						|
export declare type Glob = string;
 |