/** * SanProject#compileToRenderer() 输出的 renderer 的类型声明 */ import { Component } from 'san'; import type { GlobalContext } from './global-context'; export type Renderer = (data: { [key: string]: any; }, info?: RendererInfo) => string; export interface RendererInfo { noDataOutput?: boolean; parentCtx?: { context?: GlobalContext; }; outputData?: Record | ((data: Record) => Record); ComponentClass?: Component; } export type InnerRendererInfo = RendererInfo & { renderOnly?: boolean | { cmpt: string[]; }; tagName?: string; attrs?: string[]; slots?: { [slotName: string]: Renderer; }; isChild: boolean; rootOutputData: Record; };