UNPKG

@macalinao/grill-cli

Version:

Zero-config CLI for generating clients for Solana programs

61 lines 1.78 kB
import type { AnchorIdl } from "@codama/nodes-from-anchor"; import type { Node, Visitor } from "codama"; /** * Context provided to visitor functions */ export interface VisitorContext { /** The parsed Anchor IDL */ idl: AnchorIdl; } /** * Configuration for Grill code generation */ export interface GrillConfig { /** * Path to the Anchor IDL file. * Overrides the --idl command line option. * @default "./target/idl/program.json" */ idlPath?: string; /** * Output directory for the generated client. * Overrides the --output command line option. * @default "./src/generated" */ outputDir?: string; /** * Additional root node visitors to apply to the Codama nodes before generating code. * These visitors are applied in order after the initial Anchor IDL parsing. * Can be either an array of visitors or a function that returns an array of visitors. */ visitors?: Visitor<Node | null, "rootNode">[] | ((context: VisitorContext) => Visitor<Node | null, "rootNode">[]); } /** * Define a Grill configuration. * * @param config - The configuration object * @returns The configuration object (for type safety) * * @example * ```typescript * // grill.config.mjs * import { defineConfig } from "@macalinao/grill-cli"; * import { someCustomVisitor } from "./visitors/custom.js"; * * // Using an array of visitors * export default defineConfig({ * visitors: [ * someCustomVisitor(), * ], * }); * * // Using a function that returns visitors * export default defineConfig({ * visitors: ({ idl }) => [ * someCustomVisitor(idl), * ], * }); * ``` */ export declare function defineConfig(config: GrillConfig): GrillConfig; //# sourceMappingURL=config.d.ts.map