vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
50 lines (49 loc) • 3.49 kB
TypeScript
export { execHook };
export { execHookGlobal };
export { execHookDirect };
export { execHookDirectSingle };
export { execHookDirectSingleWithReturn };
export { execHookDirectWithoutPageContext };
export { execHookDirectSync };
export { getPageContext };
export { providePageContext };
export { isUserHookError };
export type { PageContextExecHook };
import type { PageContextClient, PageContextServer } from '../../types/PageContext.js';
import type { Hook, HookLoc } from './getHook.js';
import type { VikeConfigPublicPageLazy } from '../getPageFiles.js';
import type { HookName, HookNameGlobal } from '../../types/Config.js';
import type { PageConfigGlobalRuntime } from '../../types/PageConfig.js';
import type { PageContextForPublicUsageServer } from '../../node/runtime/renderPage/preparePageContextForPublicUsageServer.js';
import type { PageContextForPublicUsageClientShared } from '../../client/shared/preparePageContextForPublicUsageClientShared.js';
import { type PageContextPrepareMinimum } from '../preparePageContextForPublicUsage.js';
import type { GlobalContextPrepareMinimum } from '../prepareGlobalContextForPublicUsage.js';
type PageContextExecHook = VikeConfigPublicPageLazy & PageContextForPublicUsage;
type PageContextForPublicUsage = PageContextForPublicUsageServer | PageContextForPublicUsageClientShared;
type HookWithResult = Hook & {
hookReturn: unknown;
};
declare function execHook<PageContext extends PageContextExecHook>(hookName: HookName, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
declare function execHookGlobal<HookArg extends PageContextPrepareMinimum | GlobalContextPrepareMinimum>(hookName: HookNameGlobal, pageConfigGlobal: PageConfigGlobalRuntime, pageContext: PageContextPrepareMinimum | null, hookArg: HookArg, prepareForPublicUsage: (hookArg: HookArg) => HookArg): Promise<void>;
declare function execHookDirect<PageContext extends PageContextPrepareMinimum>(hooks: Hook[], pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
declare function execHookDirectSingle<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<void>;
declare function execHookDirectSingleWithReturn<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): Promise<{
hookReturn: unknown;
}>;
declare function isUserHookError(err: unknown): false | HookLoc;
declare function execHookDirectWithoutPageContext<HookReturn>(hookFnCaller: () => HookReturn, hook: Omit<Hook, 'hookFn'>): Promise<HookReturn>;
declare function execHookDirectSync<PageContext extends PageContextPrepareMinimum>(hook: Omit<Hook, 'hookTimeout'>, pageContext: PageContext, preparePageContextForPublicUsage: (pageContext: PageContext) => PageContext): {
hookReturn: unknown;
};
/**
* Access `pageContext` object inside Vike hooks, in order to create universal hooks.
*
* https://vike.dev/getPageContext
*/
declare function getPageContext<PageContext = PageContextClient | PageContextServer>(): null | PageContext;
/**
* Provide `pageContext` for universal hooks.
*
* https://vike.dev/getPageContext
*/
declare function providePageContext(pageContext: null | PageContextClient | PageContextServer): void;