UNPKG

@stacksjs/stx

Version:

A performant UI Framework. Powered by Bun.

59 lines 2.12 kB
import { extractBalancedExpression, findMatchingDelimiter, splitByPipe, Tokenizer } from './tokenizer'; /** * Find all template expressions in source ({{ }} and {!! !!}) */ export declare function findExpressions(source: string): ExpressionMatch[]; /** * Parse an expression with optional filter chain * e.g., "value | uppercase | truncate(10)" -> { baseExpression: "value", filters: [...] } */ export declare function parseExpressionWithFilters(expression: string): ParsedExpression; /** * Parse comma-separated arguments, respecting nesting */ export declare function parseArguments(argsString: string): string[]; /** * Extract directive parameters from parentheses * e.g., "@foreach($items as $item)" -> "$items as $item" */ export declare function extractDirectiveParams(source: string, directiveEnd: number): { params: string endPos: number } | null; /** * Parse script content and extract declarations */ export declare function parseScriptDeclarations(scriptContent: string): ScriptDeclaration[]; // ============================================================================= // Expression Extraction // ============================================================================= export declare interface ExpressionMatch { fullMatch: string expression: string start: number end: number isRaw: boolean } // ============================================================================= // Filter Parsing // ============================================================================= export declare interface FilterCall { name: string args: string[] } export declare interface ParsedExpression { baseExpression: string filters: FilterCall[] } // ============================================================================= // Script Parsing Utilities // ============================================================================= export declare interface ScriptDeclaration { type: 'variable' | 'function' name: string value: string exported: boolean start: number end: number } export { extractBalancedExpression, findMatchingDelimiter, splitByPipe, Tokenizer };