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>
56 lines • 1.85 kB
TypeScript
import { PageUpdateBuffer } from './UpdateBuffer';
import { VirtualModuleAPIs, VirtualModulesManager } from '../utils/virtual-module';
import type { FileHandler, PageAPIs } from './types.doc';
/**
* building upon VirtualModulesManager,
* PagesDataKeeper recognize and handle page modules.
*/
export declare class PagesDataKeeper extends PageUpdateBuffer {
private readonly virtualModulesManager;
/**
* this.pages is a cache of this.virtualModulesManager.getModules
* which is updated in batch (may be outdated for a short time)
*/
private readonly pages;
constructor(virtualModulesManager: VirtualModulesManager);
/** turn PagesDataInternal to PagesData */
getPages(): PagesData;
getPage(pageId: string): OnePageData | null;
/**
* when low-level page virtual modules has changed, update this.pages data
* and notify listeners
*/
private setPageData;
private createPageDataFromRaw;
/**
* update page virtual modules according to fs files
*/
addFSWatcher(baseDir: string, globs: string[], fileHandler: FileHandler): void;
createOneTimePageAPIs(updaterAPIs: VirtualModuleAPIs): PageAPIs;
/**
* TODO:
* getRuntimeData and getStaticData are very inefficient to implement,
* redesign them in the next version
*/
private createPageAPIs;
}
export interface PagesData {
/**
* pageId: 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'
*/
[pageId: string]: OnePageData;
}
export interface OnePageData {
data: {
[key: string]: string;
};
staticData: {
[key: string]: any;
};
}
//# sourceMappingURL=PagesDataKeeper.d.ts.map