@kuindji/sql-type-parser
Advanced tools
| /** | ||
| * Aggregate function parsing (COUNT, SUM, AVG, MIN, MAX) | ||
| */ | ||
| import type { AggregateExpr, AggregateFunc } from "../../../common/ast.js"; | ||
| import type { AggregateExpr, AggregateFunc, ComplexExpr } from "../../../common/ast.js"; | ||
| import type { Decrement, Increment, ParseError, RemoveQuotes, Trim } from "../../../common/utils.js"; | ||
@@ -33,5 +33,12 @@ import type { ParseColumnRefType } from "./reference.js"; | ||
| * Parse aggregate function argument | ||
| * For simple column references, parse them properly. | ||
| * For complex expressions (function calls, arithmetic), wrap in ComplexExpr. | ||
| */ | ||
| type ParseAggregateArg<T extends string> = Trim<T> extends "*" ? "*" : ParseColumnRefType<Trim<T>>; | ||
| type ParseAggregateArg<T extends string> = Trim<T> extends "*" ? "*" : IsComplexAggregateArg<Trim<T>> extends true ? ComplexExpr<[], undefined, Trim<T>> : ParseColumnRefType<Trim<T>>; | ||
| /** | ||
| * Check if aggregate argument is a complex expression | ||
| * (contains operators, function calls, etc.) | ||
| */ | ||
| type IsComplexAggregateArg<T extends string> = T extends `${string} ( ${string}` ? true : T extends `${string} + ${string}` ? true : T extends `${string} - ${string}` ? true : T extends `${string} * ${string}` ? true : T extends `${string} / ${string}` ? true : T extends `${string} % ${string}` ? true : T extends `( ${string}` ? true : false; | ||
| export {}; | ||
| //# sourceMappingURL=aggregate.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/select/parser/columns/aggregate.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/select/parser/columns/aggregate.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@kuindji/sql-type-parser", | ||
| "version": "0.4.19", | ||
| "version": "0.4.20", | ||
| "description": "Type-level SQL parser for TypeScript", | ||
@@ -5,0 +5,0 @@ "author": "Ivan Kuindzhi", |
1058813
0.12%10603
0.08%