UNPKG

@podlite/schema

Version:

AST tools for Podlite markup language

48 lines (46 loc) 1.22 kB
import Writer from '../writer'; /** sample | type | name ---------------------------------- 'C<>', 'C:fcode' fcode C '<>' fcode any name, or /.+/ 'name' block 'name' ':blankline' blankline any name, or /.+/ 'C:fcode' fcode C '*:*', '*' any type any name */ export interface RuleHandler<T = any> { (writer: Writer, processor: any): (node: T, ctx: any, interator: any) => void; } export declare type RuleObject = { [name: string]: RuleHandler; }; export declare type Filter = { name: string; type?: string; } | { name?: any; type: 'block' | any; } | {}; export interface GetQuery { (k: string): Filter; } export declare const makePlug: (k: string) => {}; export declare function is(query: any, node: any): boolean; export interface Rule { (): {}; isFor(): void; fn(): void; } export declare const makeRule: (query: any, fn: any) => { (): void; rule: any; isFor: (node: any) => boolean; fn: any; }; interface MakeRulesArray { (key: RuleObject | Array<RuleObject>, fn?: Function): Array<any>; } export declare const makeRulesArray: MakeRulesArray; export {};