UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

58 lines (57 loc) 2.58 kB
import type { MarkdownHeading } from '@astrojs/markdown-remark'; export interface RenderedContent { /** Rendered HTML string. If present then `render(entry)` will return a component that renders this HTML. */ html: string; metadata?: { /** Any images that are present in this entry. Relative to the {@link DataEntry} filePath. */ imagePaths?: Array<string>; /** Any headings that are present in this file. */ headings?: MarkdownHeading[]; /** Raw frontmatter, parsed parsed from the file. This may include data from remark plugins. */ frontmatter?: Record<string, any>; /** Any other metadata that is present in this file. */ [key: string]: unknown; }; } export interface DataEntry<TData extends Record<string, unknown> = Record<string, unknown>> { /** The ID of the entry. Unique per collection. */ id: string; /** The parsed entry data */ data: TData; /** The file path of the content, if applicable. Relative to the site root. */ filePath?: string; /** The raw body of the content, if applicable. */ body?: string; /** An optional content digest, to check if the content has changed. */ digest?: number | string; /** The rendered content of the entry, if applicable. */ rendered?: RenderedContent; /** * If an entry is a deferred, its rendering phase is delegated to a virtual module during the runtime phase when calling `renderEntry`. */ deferredRender?: boolean; assetImports?: Array<string>; /** @deprecated */ legacyId?: string; } /** * A read-only data store for content collections. This is used to retrieve data from the content layer at runtime. * To add or modify data, use {@link MutableDataStore} instead. */ export declare class ImmutableDataStore { protected _collections: Map<string, Map<string, any>>; constructor(); get<T = DataEntry>(collectionName: string, key: string): T | undefined; entries<T = DataEntry>(collectionName: string): Array<[id: string, T]>; values<T = DataEntry>(collectionName: string): Array<T>; keys(collectionName: string): Array<string>; has(collectionName: string, key: string): boolean; hasCollection(collectionName: string): boolean; collections(): Map<string, Map<string, any>>; /** * Attempts to load a DataStore from the virtual module. * This only works in Vite. */ static fromModule(): Promise<ImmutableDataStore>; static fromMap(data: Map<string, Map<string, any>>): Promise<ImmutableDataStore>; }