UNPKG

@knapsack/app

Version:

Build Design Systems with Knapsack

78 lines 3.31 kB
import { type KnapsackPattern, type KnapsackPatternsConfig, type KsAppClientDataNoMeta, type TemplateSuggestionsGetFn, type RenderDataDemo, type KsRenderApiResults, type ContentStateForRendering, type PatternsState, type RendererId } from '@knapsack/types'; import { type PathAbsolute } from '@knapsack/file-utils'; import { type Renderer } from './renderers/renderer-base'; import { type KnapsackConfig } from '../../types/knapsack-config'; import { type KnapsackDb } from '../../types/knapsack-db'; import { type MissingFileVerbosityOption } from '../../types/misc'; import type { Db } from '../../db'; import { type CliLifecycle } from '../../types/cli-lifecycle'; import type { RouteInspect } from '../../api-info'; type Me = KnapsackDb<PatternsState> & CliLifecycle; export declare class Patterns implements Me { #private; missingFileVerbosity: MissingFileVerbosityOption; demosById: KsAppClientDataNoMeta['db']['demos']['byId']; userConfig: KnapsackConfig; private configDb; /** * directory path where data files (json/yml) can be found * non-absolute paths stored in these files will be relative from this */ private dataDir; templateRenderers: Partial<Record<RendererId, Renderer<RendererId, any>>>; byId: { [id: string]: KnapsackPattern; }; /** Keys are pattern IDs, values are path to `knapsack.pattern.ID.json` */ private patternDataFiles; private assetSets; private hasUpdatePatternsDataRan?; constructor({ dataDir, templateRenderers, assetSets, db, config, }: { dataDir: PathAbsolute; templateRenderers: Renderer<RendererId, any>[]; assetSets: import('./asset-sets').AssetSets; db: Db; config: KnapsackConfig; }); getRenderer(rendererId: RendererId): Renderer<RendererId, any>; init: Me['init']; hydrate: Me['hydrate']; build: Me['build']; get allPatterns(): KnapsackPattern[]; getData: Me['getData']; clearCache: Me['clearCache']; savePrep: Me['savePrep']; private updatePatternData; private updatePatternsData; getPatterns(): KnapsackPattern[]; getPatternsConfig(): Promise<KnapsackPatternsConfig>; getContentStateFromLocalJsonFiles(): Promise<ContentStateForRendering>; inspect(templateInfo: RouteInspect['input']): Promise<RouteInspect['output']>; /** * Render template */ render({ patternId, templateId, demo, state, isInIframe, websocketsPort, assetSetId, }: { /** * Not needed if `demo` is type `data-w-template-info` - only used to retrieve the rendererId */ patternId: string; /** * Not needed if `demo` is type `data-w-template-info` - only used to retrieve the rendererId */ templateId: string; /** * Demo data to pass to template */ demo: RenderDataDemo; state: ContentStateForRendering; /** * Will this be in an iFrame? */ isInIframe?: boolean; websocketsPort?: number; assetSetId?: string; }): Promise<KsRenderApiResults>; getTemplateSuggestions({ rendererId, state, newPath, }: Parameters<TemplateSuggestionsGetFn>[0]): ReturnType<TemplateSuggestionsGetFn>; } export {}; //# sourceMappingURL=patterns.d.ts.map