react-clear-browser-cache
Version:
Library for clearing browser cache after react app updates
71 lines (70 loc) • 2.7 kB
TypeScript
/// <reference types="node" />
import React from 'react';
export declare type ClearBrowserCacheStorage = {
get: (key: string) => string | null;
set: (key: string, value: string) => void;
};
export declare type ClearBrowserCacheAppVersionStorage = {
get: () => string;
set: (version: string) => void;
};
export declare type ClearBrowserCacheDebugFunc = (params: {
state?: ClearBrowserCacheBoundaryState;
error?: Error;
errorInfo?: any;
}) => void;
export declare type ClearBrowserCacheErrorChecker = (error: Error) => boolean;
export declare type ClearBrowserCacheBoundaryState = {
loading: boolean;
isLatestVersion: boolean;
latestVersion: string;
disabled: boolean;
};
export declare type ClearBrowserCacheBoundaryProps = {
auto: boolean;
storageKey: string;
filename: string;
storage: Storage;
duration?: number;
fallback?: React.ReactNode;
debug?: ClearBrowserCacheDebugFunc;
errorCheckers?: ClearBrowserCacheErrorChecker[];
};
declare type CtxValue = ClearBrowserCacheBoundaryState & {
clearCacheAndReload: () => Promise<void>;
};
declare type ClearBrowserCacheProps = {
children: (value: CtxValue) => any;
};
export declare function createErrorChecker(name: string, regexpForMesssage: RegExp): (error: Error) => boolean;
export declare function useClearBrowserCache(): CtxValue;
export declare function ClearBrowserCache({ children }: ClearBrowserCacheProps): any;
export declare class ClearBrowserCacheBoundary extends React.Component<React.PropsWithChildren<ClearBrowserCacheBoundaryProps>, ClearBrowserCacheBoundaryState> {
static defaultProps: {
fallback: null;
errorCheckers: never[];
auto: boolean;
storageKey: string;
filename: string;
storage: {
get(...args: any[]): any;
set(...args: any[]): void;
};
};
appVersionStorage: ClearBrowserCacheAppVersionStorage;
checkInterval: null | NodeJS.Timeout;
errorCheckers: ClearBrowserCacheErrorChecker[];
constructor(props: any);
componentDidMount(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
componentDidCatch(error: Error, errorInfo: any): void;
debug: (error?: Error | undefined, errorInfo?: any) => void;
startVersionCheck: () => void;
stopVersionCheck: () => void;
fetchMeta: () => Promise<any>;
clearCacheAndReload: (newVersion?: string | undefined) => Promise<void>;
checkVersion: (auto?: boolean, silent?: boolean) => Promise<void>;
render(): {} | null | undefined;
}
export default ClearBrowserCacheBoundary;