UNPKG

@tanstack/router-core

Version:

Modern and scalable routing for React applications

100 lines (99 loc) 3.58 kB
export type AssetCrossOrigin = 'anonymous' | 'use-credentials'; export type ScriptFormat = 'module' | 'iife'; export declare const DEV_STYLES_ATTR = "data-tanstack-router-dev-styles"; export type AssetCrossOriginConfig = AssetCrossOrigin | Partial<Record<'script' | 'stylesheet', AssetCrossOrigin>>; export type ManifestAssetLink = string | { href: string; crossOrigin?: AssetCrossOrigin; }; export declare function getAssetCrossOrigin(assetCrossOrigin: AssetCrossOriginConfig | undefined, kind: 'script' | 'stylesheet'): AssetCrossOrigin | undefined; export declare function getManifestScriptFormat(manifest: { scriptFormat?: ScriptFormat; } | undefined): ScriptFormat; export declare function getScriptPreloadAttrs(manifest: { scriptFormat?: ScriptFormat; } | undefined, link: ManifestAssetLink, assetCrossOrigin?: AssetCrossOriginConfig): { rel: 'modulepreload' | 'preload'; as?: 'script'; href: string; crossOrigin?: AssetCrossOrigin; }; export declare function resolveManifestAssetLink(link: ManifestAssetLink): { href: string; crossOrigin?: AssetCrossOrigin; }; export type Manifest = { scriptFormat?: ScriptFormat; inlineStyle?: ManifestInlineCss; routes: Record<string, ManifestRoute>; }; export type ServerManifest = { scriptFormat?: ScriptFormat; inlineCss?: ServerManifestInlineCss; routes: Record<string, ServerManifestRoute>; }; export type ServerManifestInlineCss = { styles: Record<string, string>; templates?: Record<string, InlineCssTemplate>; }; export type InlineCssTemplate = { strings: Array<string>; urls: Array<string>; }; export type ManifestRoute = { filePath?: string; preloads?: Array<ManifestAssetLink>; scripts?: Array<ManifestScript>; css?: Array<ManifestCssLink>; }; export type ServerManifestRoute = ManifestRoute; export type ManifestRouteAssets = Pick<ManifestRoute, 'preloads' | 'scripts' | 'css'>; export type RouterManagedTitleTag = { tag: 'title'; attrs?: Record<string, any>; children: string; }; export type RouterManagedMetaTag = { tag: 'meta'; attrs?: Record<string, any>; children?: never; }; export type RouterManagedLinkTag = { tag: 'link'; attrs?: Record<string, any>; children?: never; }; export type RouterManagedScriptTag = { tag: 'script'; attrs?: Record<string, any>; children?: string; }; export type ManifestScript = Omit<RouterManagedScriptTag, 'tag'>; export type RouterManagedStyleTag = { tag: 'style'; attrs?: Record<string, any>; children?: string; inlineCss?: true; }; export type RouterManagedTag = RouterManagedTitleTag | RouterManagedMetaTag | RouterManagedLinkTag | RouterManagedScriptTag | RouterManagedStyleTag; export declare function appendUniqueUserTags(target: Array<RouterManagedTag>, tags: Array<RouterManagedTag>): void; export type ManifestCssLink = string | { href: string; crossOrigin?: AssetCrossOrigin; [DEV_STYLES_ATTR]?: true; }; export type ManifestInlineCss = { attrs?: Record<string, any>; children?: string; }; export type RouterManagedInlineCssTag = RouterManagedStyleTag & { inlineCss: true; }; export declare function getStylesheetHref(asset: ManifestCssLink): string; export declare function resolveManifestCssLink(link: ManifestCssLink): { href: string; crossOrigin?: AssetCrossOrigin; "data-tanstack-router-dev-styles"?: true; }; export declare function createInlineCssStyleAsset(css: string): ManifestInlineCss; export declare function createInlineCssPlaceholderAsset(): ManifestInlineCss;