@kuindji/sql-type-parser
Version:
Type-level SQL parser for TypeScript
37 lines • 3.6 kB
TypeScript
/**
* @kuindji/sql-type-parser
*
* Type-level SQL Parser
*
* This module provides a type-level parser that transforms SQL query
* string literals into their corresponding AST types at compile time.
*
* Architecture:
* ------------
* The parser is organized into modules by query type:
* - common/ - Shared utilities (tokenizer, AST nodes, utils)
* - select/ - SELECT query parser
*
* Each query type has its own execution tree in the type system
* to avoid TypeScript performance issues.
*
* @example
* ```typescript
* import type { ParseSQL, SQLSelectQuery } from '@kuindji/sql-type-parser'
*
* // Parse SQL to AST
* type AST = ParseSQL<"SELECT id, name FROM users">
* // Returns SQLSelectQuery<SelectClause<...>>
* ```
*
* @packageDocumentation
*/
export type { ParseSQL, DetectQueryType, ParseSelectSQL, ParseInsertSQL, ParseUpdateSQL, ParseDeleteSQL, IsSelectQuery, IsInsertQuery, IsUpdateQuery, IsDeleteQuery, AnySQLQuery, } from "./router.js";
export type { NormalizeSQL, NextToken, ExtractUntil, SplitByComma, FromTerminators, WhereTerminators, OrderByTerminators, StartsWith, CountOpen, CountClose, ParensBalanced, Trim, RemoveQuotes, Flatten, ParseError, IsParseError, MatchError, IsMatchError, Increment, Decrement, IsStringLiteral, HasTemplateHoles, DynamicQuery, IsDynamicQuery, DynamicQueryResult, DatabaseSchema, TableDefinition, SchemaDefinition, RelationType, ColumnReference, Relation, Relations, GetDefaultSchema, GetTableNames, GetColumnNames, GetColumnType, HasRelations, GetRelationNames, GetRelation, FindRelationsFrom, FindRelationsTo, QueryType, UnboundColumnRef, TableColumnRef, ValidatableColumnRef, TableWildcard, SimpleColumnRefType, ComplexExpr, ColumnRefType, TableRef, SubquerySelectClause, DerivedTableRef, CTEDefinition, TableSource, ComparisonOp, LogicalOp, LiteralValue, BinaryExpr, UnparsedExpr, ParsedCondition, LogicalExprAny, WhereExpr, LogicalExpr, JoinType, JoinClause, SortDirection, OrderByItem, AggregateFunc, AggregateExpr, MapSQLTypeToTS, } from "./common/index.js";
export type { SQLSelectQuery, ColumnRef, LiteralExpr, SubqueryExpr, ExistsExpr, IntervalExpr, ExtendedColumnRefType, SQLConstantExpr, SQLConstantName, SelectClause, SelectItem, SelectColumns, UnionClause, UnionClauseAny, UnionOperatorType, MatchSelectQuery, QueryResult, ValidateQuery, ValidateSQL, ValidateSelectSQL, ValidateSelectOptions, } from "./select/index.js";
export type { SQLInsertQuery, InsertClause, InsertColumnList, InsertColumnRef, InsertValue, InsertValueRow, InsertValuesClause, InsertSelectClause, InsertSource, ReturningClause, OnConflictClause, ConflictTarget, ConflictAction, ConflictUpdateSet, MatchInsertQuery, InsertResult, InsertInput, ValidateInsertResult, ValidateInsertSQL, ValidateInsertOptions, IsValidInsert, GetInsertTableColumns, } from "./insert/index.js";
export type { SQLUpdateQuery, UpdateClause, SetClause, SetAssignment, SetValue, UpdateFromClause, UpdateReturningClause, ReturningItem, QualifiedColumnRef, QualifiedWildcard, ReturningQualifier, MatchUpdateQuery, UpdateResult, ValidateUpdateResult, ValidateUpdateSQL, ValidateUpdateOptions, IsValidUpdate, GetUpdateTableColumns, } from "./update/index.js";
export type { SQLDeleteQuery, DeleteClause, UsingClause, DeleteReturningClause, MatchDeleteQuery, DeleteResult, ValidateDeleteResult, ValidateDeleteSQL, ValidateDeleteOptions, IsValidDelete, GetDeleteTableColumns, } from "./delete/index.js";
export { createSelectFn } from "./db.js";
export type { ValidQuery, SelectResult, SelectResultArray, IsValidSelect } from "./db.js";
//# sourceMappingURL=index.d.ts.map