UNPKG

@kuindji/sql-type-parser

Version:
37 lines 3.6 kB
/** * @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