next-swr
Version:
Revalidate stale data in Next.js
119 lines (112 loc) • 3.59 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import { PropsWithChildren } from 'react';
import * as next_types from 'next/types';
import { GetStaticPropsResult, GetStaticPropsContext } from 'next/types';
type Swr = {
dedupingInterval?: number;
expires?: number;
refreshInterval?: number | ((props: Props) => number);
revalidateIfStale?: boolean;
revalidateOnFocus?: boolean;
revalidateOnMount?: boolean;
revalidate_f?: number;
swrPath?: string;
time?: number;
times?: {
offset: number;
latency?: number;
firstLoad?: boolean;
};
};
type Props = {
[key: string]: unknown;
} & {
swr?: Swr;
};
type GetStaticPropsSwr = GetStaticPropsResult<Props> & {
props?: Props;
swr?: Swr;
};
type UseRevalidateResult = [Props, (newState: Props | ((props: Props) => Props)) => void];
type UseTimesResult = {
time?: number;
offset?: number;
latency?: number;
firstLoad?: boolean;
};
declare function RevalidateProvider({ children, swr, ...props }: PropsWithChildren<Props>): react_jsx_runtime.JSX.Element;
declare function getStaticPropsRevalidate(getStaticProps: (ctx: GetStaticPropsContext) => Promise<GetStaticPropsSwr>): (ctx: GetStaticPropsContext) => Promise<{
redirect: next_types.Redirect;
props: {
swr: {
expires: number;
refreshInterval?: number | ((props: Props) => number) | undefined;
revalidateIfStale?: boolean | undefined;
revalidateOnFocus?: boolean | undefined;
revalidateOnMount?: boolean | undefined;
swrPath?: string | undefined;
time: number;
times?: {
offset: number;
latency?: number | undefined;
firstLoad?: boolean | undefined;
} | undefined;
dedupingInterval: number;
};
} | {
swr: Swr;
} | {
swr: Swr;
};
revalidate: number | boolean;
} | {
notFound: true;
props: {
swr: {
expires: number;
refreshInterval?: number | ((props: Props) => number) | undefined;
revalidateIfStale?: boolean | undefined;
revalidateOnFocus?: boolean | undefined;
revalidateOnMount?: boolean | undefined;
swrPath?: string | undefined;
time: number;
times?: {
offset: number;
latency?: number | undefined;
firstLoad?: boolean | undefined;
} | undefined;
dedupingInterval: number;
};
} | {
swr: Swr;
} | {
swr: Swr;
};
revalidate: number | boolean;
} | {
props: {
swr: {
expires: number;
refreshInterval?: number | ((props: Props) => number) | undefined;
revalidateIfStale?: boolean | undefined;
revalidateOnFocus?: boolean | undefined;
revalidateOnMount?: boolean | undefined;
swrPath?: string | undefined;
time: number;
times?: {
offset: number;
latency?: number | undefined;
firstLoad?: boolean | undefined;
} | undefined;
dedupingInterval: number;
};
} | {
swr: Swr;
} | {
swr: Swr;
};
revalidate: number | boolean;
}>;
declare function useRevalidate(props: Props): UseRevalidateResult;
declare function useTimes(): UseTimesResult;
export { RevalidateProvider, getStaticPropsRevalidate, useRevalidate, useTimes };