UNPKG

alepha

Version:

Alepha is a convention-driven TypeScript framework for building robust, end-to-end type-safe applications, from serverless APIs to full-stack React apps.

127 lines (124 loc) 4.04 kB
import * as _alepha_core1 from "alepha"; import * as _alepha_core0 from "alepha"; import { Descriptor, KIND } from "alepha"; import { PageConfigSchema, PageReactContext, PageRoute, RouterState, TPropsDefault, TPropsParentDefault } from "alepha/react"; //#region src/interfaces/Head.d.ts interface Head extends SimpleHead { description?: string; keywords?: string[]; author?: string; robots?: string; themeColor?: string; viewport?: string | { width?: string; height?: string; initialScale?: string; maximumScale?: string; userScalable?: "no" | "yes" | "0" | "1"; interactiveWidget?: "resizes-visual" | "resizes-content" | "overlays-content"; }; og?: { title?: string; description?: string; image?: string; url?: string; type?: string; }; twitter?: { card?: string; title?: string; description?: string; image?: string; site?: string; }; } interface SimpleHead { title?: string; titleSeparator?: string; htmlAttributes?: Record<string, string>; bodyAttributes?: Record<string, string>; meta?: Array<{ name: string; content: string; }>; } //# sourceMappingURL=Head.d.ts.map //#endregion //#region src/providers/HeadProvider.d.ts declare class HeadProvider { global?: Head | (() => Head); protected getGlobalHead(): Head | undefined; fillHead(state: RouterState, context: PageReactContext): void; protected fillHeadByPage(page: PageRoute, context: PageReactContext, props: Record<string, any>): void; } //# sourceMappingURL=HeadProvider.d.ts.map //#endregion //#region src/descriptors/$head.d.ts /** * Set global `<head>` options for the application. */ declare const $head: { (options: HeadDescriptorOptions): HeadDescriptor; [KIND]: typeof HeadDescriptor; }; type HeadDescriptorOptions = Head | (() => Head); declare class HeadDescriptor extends Descriptor<HeadDescriptorOptions> { protected readonly provider: HeadProvider; protected onInit(): void; } //# sourceMappingURL=$head.d.ts.map //#endregion //#region src/hooks/useHead.d.ts /** * ```tsx * const App = () => { * const [head, setHead] = useHead({ * // will set the document title on the first render * title: "My App", * }); * * return ( * // This will update the document title when the button is clicked * <button onClick={() => setHead({ title: "Change Title" })}> * Change Title {head.title} * </button> * ); * } * ``` */ declare const useHead: (options?: UseHeadOptions) => void; type UseHeadOptions = Head | ((previous?: Head) => Head); type UseHeadReturn = [Head, (head?: Head | ((previous?: Head) => Head)) => void]; //# sourceMappingURL=useHead.d.ts.map //#endregion //#region src/providers/ServerHeadProvider.d.ts declare class ServerHeadProvider { protected readonly headProvider: HeadProvider; protected readonly onServerRenderEnd: _alepha_core1.HookDescriptor<"react:server:render:end">; renderHead(template: string, head: SimpleHead): string; protected mergeAttributes(existing: string, attrs: Record<string, string>): string; protected parseAttributes(attrStr: string): Record<string, string>; protected escapeHtml(str: string): string; } //# sourceMappingURL=ServerHeadProvider.d.ts.map //#endregion //#region src/index.d.ts declare module "alepha/react" { interface PageDescriptorOptions<TConfig extends PageConfigSchema = PageConfigSchema, TProps extends object = TPropsDefault, TPropsParent extends object = TPropsParentDefault> { head?: Head | ((props: TProps, previous?: Head) => Head); } interface PageReactContext { head: Head; } } /** * Fill `<head>` server & client side. * * @see {@link ServerHeadProvider} * @module alepha.react.head */ declare const AlephaReactHead: _alepha_core0.Service<_alepha_core0.Module>; //# sourceMappingURL=index.d.ts.map //#endregion export { $head, AlephaReactHead, Head, HeadDescriptor, HeadDescriptorOptions, ServerHeadProvider, SimpleHead, UseHeadOptions, UseHeadReturn, useHead }; //# sourceMappingURL=index.d.ts.map