/opt/canhelp/node_modules/kysely/dist/cjs/parser
Edit: /opt/canhelp/node_modules/kysely/dist/cjs/parser/reference-parser.d.ts (3616B)
import { AliasNode } from '../operation-node/alias-node.js';
import { ColumnNode } from '../operation-node/column-node.js';
import { ReferenceNode } from '../operation-node/reference-node.js';
import type { AnyColumn, AnyColumnWithTable, ExtractColumnType } from '../util/type-utils.js';
import type { SelectQueryBuilderExpression } from '../query-builder/select-query-builder-expression.js';
import { type ExpressionOrFactory } from './expression-parser.js';
import type { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
import type { SelectType } from '../util/column-type.js';
import type { OperationNode } from '../operation-node/operation-node.js';
import type { Expression } from '../expression/expression.js';
import type { SimpleReferenceExpressionNode } from '../operation-node/simple-reference-expression-node.js';
import { type OrderByDirection } from './order-by-parser.js';
import { type JSONOperatorWith$ } from '../operation-node/operator-node.js';
import { JSONReferenceNode } from '../operation-node/json-reference-node.js';
export type StringReference
= AnyColumn | AnyColumnWithTable;
export type SimpleReferenceExpression = StringReference | DynamicReferenceBuilder;
export type ReferenceExpression = SimpleReferenceExpression | ExpressionOrFactory;
export type ReferenceExpressionOrList = ReferenceExpression | ReadonlyArray>;
export type ExtractTypeFromReferenceExpression = SelectType>;
export type ExtractRawTypeFromReferenceExpression = RE extends string ? ExtractTypeFromStringReference : RE extends SelectQueryBuilderExpression ? O[keyof O] | null : RE extends (qb: any) => SelectQueryBuilderExpression ? O[keyof O] | null : RE extends Expression ? O : RE extends (qb: any) => Expression ? O : DV;
export type ExtractTypeFromStringReference = RE extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : RE extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : RE extends AnyColumn ? ExtractColumnType : DV;
export type OrderedColumnName = C extends `${string} ${infer O}` ? O extends OrderByDirection ? C : never : C;
export type ExtractColumnNameFromOrderedColumnName = C extends `${infer CL} ${infer O}` ? O extends OrderByDirection ? CL : never : C;
export declare function parseSimpleReferenceExpression(exp: SimpleReferenceExpression): SimpleReferenceExpressionNode;
export declare function parseReferenceExpressionOrList(arg: ReferenceExpressionOrList): OperationNode[];
export declare function parseReferenceExpression(exp: ReferenceExpression): OperationNode;
export declare function parseJSONReference(ref: string, op: JSONOperatorWith$): JSONReferenceNode;
export declare function parseStringReference(ref: string): ReferenceNode;
export declare function parseAliasedStringReference(ref: string): SimpleReferenceExpressionNode | AliasNode;
export declare function parseColumnName(column: AnyColumn): ColumnNode;
export declare function parseOrderedColumnName(column: string): OperationNode;