This commit upgrades TypeScript to the latest version 5.3 and introduces `verbatimModuleSyntax` in line with the official Vue guide recommendatinos (vuejs/docs#2592). By enforcing `import type` for type-only imports, this commit improves code clarity and supports tooling optimization, ensuring imports are only bundled when necessary for runtime. Changes: - Bump TypeScript to 5.3.3 across the project. - Adjust import statements to utilize `import type` where applicable, promoting cleaner and more efficient code.
24 lines
741 B
TypeScript
24 lines
741 B
TypeScript
import { ParameterSubstitutionParser } from '../SyntaxParsers/ParameterSubstitutionParser';
|
|
import { WithParser } from '../SyntaxParsers/WithParser';
|
|
import type { IExpression } from '../Expression/IExpression';
|
|
import type { IExpressionParser } from './IExpressionParser';
|
|
|
|
const Parsers = [
|
|
new ParameterSubstitutionParser(),
|
|
new WithParser(),
|
|
];
|
|
|
|
export class CompositeExpressionParser implements IExpressionParser {
|
|
public constructor(private readonly leafs: readonly IExpressionParser[] = Parsers) {
|
|
if (!leafs.length) {
|
|
throw new Error('missing leafs');
|
|
}
|
|
}
|
|
|
|
public findExpressions(code: string): IExpression[] {
|
|
return this.leafs.flatMap(
|
|
(parser) => parser.findExpressions(code) || [],
|
|
);
|
|
}
|
|
}
|