UNPKG

vite-plugin-react-pages

Version:

<p> <a href="https://www.npmjs.com/package/vite-plugin-react-pages" target="_blank" rel="noopener"><img src="https://img.shields.io/npm/v/vite-plugin-react-pages.svg" alt="npm package" /></a> </p>

81 lines 2.54 kB
import type { File } from '../utils/virtual-module'; export type FindPages = (pagesDir: string, helpers: PageHelpers) => void | Promise<void>; export interface PageHelpers extends PageAPIs { /** * Read the static data from a file. */ readonly extractStaticData: (file: File) => Promise<{ readonly [key: string]: any; readonly sourceType: string; }>; /** * Scan the fileSystem and * set page data in the file handler. * File deletion will be handled automatically */ readonly watchFiles: WatchFilesHelper; } export interface WatchFilesHelper { /** Watch all files within a directory (except node_modules and .git) */ (baseDir: string, fileHandler?: FileHandler): void; /** Watch files matching the given glob */ (baseDir: string, glob: string, fileHandler?: FileHandler): void; /** Watch files matching one of the given globs */ (baseDir: string, globs: string[], fileHandler?: FileHandler): void; } export type FileHandler = (file: File, api: PageAPIs) => void | Promise<void> | DataPiece | Promise<DataPiece>; export interface PageAPIs { /** * Get a mutable data object of runtimeData */ getRuntimeData: (pageId: string) => { [key: string]: string; }; /** * Get a mutable data object of staticData */ getStaticData: (pageId: string) => { [key: string]: any; }; /** * Add page data. * If the data already exists, overwrite it. */ addPageData: (pageData: DataPiece) => void; } export interface DataPiece { /** * The page route path. * User can register multiple page data with same pageId, * as long as they have different keys. * Page data with same pageId will be merged. * * @example '/posts/hello-world' */ readonly pageId: string; /** * The data key. * For a same page, users can register multiple data pieces, * each with its own key. (Composed Page Data) * * @default 'main' */ readonly key?: string; /** * The path to the runtime data module. * It will be registered with the `key`. */ readonly dataPath?: string; /** * The value of static data. * It will be registered with the `key`. */ readonly staticData?: any; /** * when multiple data pieces have same key (conflict), * the data piece with highest priority will win * @default 1 */ readonly priority?: number; } //# sourceMappingURL=types.doc.d.ts.map