@knapsack/app
Version:
Build Design Systems with Knapsack
78 lines • 3.31 kB
TypeScript
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