/** * Acorn-based JSX parser implementation * * This parser uses acorn + acorn-jsx for fast, lightweight JSX parsing. * It cannot parse TypeScript syntax, but this is perfect for Vite's context * where esbuild has already stripped TypeScript before our plugin runs. * * Performance: ~1-2ms per typical component (50-100 lines) * Bundle size: ~100KB (acorn + acorn-jsx) * * @module @domscribe/transform/parsers/acorn/acorn-parser */ import type { Node as AcornNode } from 'acorn'; import { ParserInterface } from '../parser.interface.js'; import { AcornJSXOpeningElement } from './types.js'; import { ParseParams, SourceLocation } from '../types.js'; /** * AcornParser implementation for JSX-only parsing * * Used in Vite context where TypeScript is already stripped by esbuild. */ export declare class AcornParser implements ParserInterface { /** * Acorn parser instance extended with JSX plugin */ private readonly jsxParser; constructor(); parse(source: string, params?: ParseParams): AcornNode; findJSXOpeningElements(ast: AcornNode): AcornJSXOpeningElement[]; hasDataDsAttribute(element: AcornJSXOpeningElement): boolean; getLocation(node: AcornJSXOpeningElement): SourceLocation | undefined; getTagName(node: AcornJSXOpeningElement): string; getInsertPosition(node: AcornJSXOpeningElement): number; private getNodeNameAsString; } /** * Create an AcornParser instance * * Factory function for consistency with other parsers. */ export declare function createAcornParser(): AcornParser; //# sourceMappingURL=acorn.parser.d.ts.map