Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

OperationNodeTransformer

Transforms an operation node tree into another one.

Kysely queries are expressed internally as a tree of objects (operation nodes). OperationNodeTransformer takes such a tree as its input and returns a transformed deep copy of it. By default the OperationNodeTransformer does nothing. You need to override one or more methods to make it do something.

There's a method for each node type. For example if you'd like to convert each identifier (table name, column name, alias etc.) from camelCase to snake_case, you'd do something like this:

class CamelCaseTransformer extends OperationNodeTransformer {
  transformIdentifier(node: IdentifierNode): IdentifierNode {
    node = super.transformIdentifier(node),

    return {
      ...node,
      name: snakeCase(node.name),
    }
  }
}

const transformer = new CamelCaseTransformer()
const tree = transformer.transformNode(tree)
class OperationNodeTransformer {
protected readonly nodeStack: OperationNode[];
 
protected transformAddColumn(node: AddColumnNode): AddColumnNode;
protected transformAddConstraint(node: AddConstraintNode): AddConstraintNode;
protected transformAddIndex(node: AddIndexNode): AddIndexNode;
protected transformAggregateFunction(node: AggregateFunctionNode): AggregateFunctionNode;
protected transformAlias(node: AliasNode): AliasNode;
protected transformAlterColumn(node: AlterColumnNode): AlterColumnNode;
protected transformAlterTable(node: AlterTableNode): AlterTableNode;
protected transformAnd(node: AndNode): AndNode;
protected transformBinaryOperation(node: BinaryOperationNode): BinaryOperationNode;
protected transformCase(node: CaseNode): CaseNode;
protected transformCast(node: CastNode): CastNode;
protected transformCheckConstraint(node: CheckConstraintNode): CheckConstraintNode;
protected transformColumn(node: ColumnNode): ColumnNode;
protected transformColumnDefinition(node: ColumnDefinitionNode): ColumnDefinitionNode;
protected transformColumnUpdate(node: ColumnUpdateNode): ColumnUpdateNode;
protected transformCommonTableExpression(node: CommonTableExpressionNode): CommonTableExpressionNode;
protected transformCommonTableExpressionName(node: CommonTableExpressionNameNode): CommonTableExpressionNameNode;
protected transformCreateIndex(node: CreateIndexNode): CreateIndexNode;
protected transformCreateSchema(node: CreateSchemaNode): CreateSchemaNode;
protected transformCreateTable(node: CreateTableNode): CreateTableNode;
protected transformCreateType(node: CreateTypeNode): CreateTypeNode;
protected transformCreateView(node: CreateViewNode): CreateViewNode;
protected transformDataType(node: DataTypeNode): DataTypeNode;
protected transformDefaultInsertValue(node: DefaultInsertValueNode): DefaultInsertValueNode;
protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
protected transformDeleteQuery(node: DeleteQueryNode): DeleteQueryNode;
protected transformDropColumn(node: DropColumnNode): DropColumnNode;
protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
protected transformDropIndex(node: DropIndexNode): DropIndexNode;
protected transformDropSchema(node: DropSchemaNode): DropSchemaNode;
protected transformDropTable(node: DropTableNode): DropTableNode;
protected transformDropType(node: DropTypeNode): DropTypeNode;
protected transformDropView(node: DropViewNode): DropViewNode;
protected transformExplain(node: ExplainNode): ExplainNode;
protected transformFetch(node: FetchNode): FetchNode;
protected transformForeignKeyConstraint(node: ForeignKeyConstraintNode): ForeignKeyConstraintNode;
protected transformFrom(node: FromNode): FromNode;
protected transformFunction(node: FunctionNode): FunctionNode;
protected transformGenerated(node: GeneratedNode): GeneratedNode;
protected transformGroupBy(node: GroupByNode): GroupByNode;
protected transformGroupByItem(node: GroupByItemNode): GroupByItemNode;
protected transformHaving(node: HavingNode): HavingNode;
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
protected transformInsertQuery(node: InsertQueryNode): InsertQueryNode;
protected transformJoin(node: JoinNode): JoinNode;
protected transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode;
protected transformJSONPath(node: JSONPathNode): JSONPathNode;
protected transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode;
protected transformJSONReference(node: JSONReferenceNode): JSONReferenceNode;
protected transformLimit(node: LimitNode): LimitNode;
protected transformList(node: ListNode): ListNode;
protected transformMatched(node: MatchedNode): MatchedNode;
protected transformMergeQuery(node: MergeQueryNode): MergeQueryNode;
protected transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode;
protected transformNodeImpl<T extends OperationNode>(node: T): T;
protected transformNodeList<T extends ReadonlyArray<OperationNode> | undefined>(list: T): T;
protected transformOffset(node: OffsetNode): OffsetNode;
protected transformOn(node: OnNode): OnNode;
protected transformOnConflict(node: OnConflictNode): OnConflictNode;
protected transformOnDuplicateKey(node: OnDuplicateKeyNode): OnDuplicateKeyNode;
protected transformOperator(node: OperatorNode): OperatorNode;
protected transformOr(node: OrNode): OrNode;
protected transformOrderBy(node: OrderByNode): OrderByNode;
protected transformOrderByItem(node: OrderByItemNode): OrderByItemNode;
protected transformOver(node: OverNode): OverNode;
protected transformParens(node: ParensNode): ParensNode;
protected transformPartitionBy(node: PartitionByNode): PartitionByNode;
protected transformPartitionByItem(node: PartitionByItemNode): PartitionByItemNode;
protected transformPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): PrimaryKeyConstraintNode;
protected transformPrimitiveValueList(node: PrimitiveValueListNode): PrimitiveValueListNode;
protected transformRaw(node: RawNode): RawNode;
protected transformReference(node: ReferenceNode): ReferenceNode;
protected transformReferences(node: ReferencesNode): ReferencesNode;
protected transformRenameColumn(node: RenameColumnNode): RenameColumnNode;
protected transformReturning(node: ReturningNode): ReturningNode;
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
protected transformSelection(node: SelectionNode): SelectionNode;
protected transformSelectModifier(node: SelectModifierNode): SelectModifierNode;
protected transformSelectQuery(node: SelectQueryNode): SelectQueryNode;
protected transformSetOperation(node: SetOperationNode): SetOperationNode;
protected transformTable(node: TableNode): TableNode;
protected transformTop(node: TopNode): TopNode;
protected transformTuple(node: TupleNode): TupleNode;
protected transformUnaryOperation(node: UnaryOperationNode): UnaryOperationNode;
protected transformUniqueConstraint(node: UniqueConstraintNode): UniqueConstraintNode;
protected transformUpdateQuery(node: UpdateQueryNode): UpdateQueryNode;
protected transformUsing(node: UsingNode): UsingNode;
protected transformValue(node: ValueNode): ValueNode;
protected transformValueList(node: ValueListNode): ValueListNode;
protected transformValues(node: ValuesNode): ValuesNode;
protected transformWhen(node: WhenNode): WhenNode;
protected transformWhere(node: WhereNode): WhereNode;
protected transformWith(node: WithNode): WithNode;
transformNode<T extends OperationNode | undefined>(node: T): T;
}

§Properties

§Methods

§
transformAddColumn(node: AddColumnNode): AddColumnNode protected
[src]
§
transformAddConstraint(node: AddConstraintNode): AddConstraintNode protected
[src]
§
transformAddIndex(node: AddIndexNode): AddIndexNode protected
[src]
§
transformAggregateFunction(node: AggregateFunctionNode): AggregateFunctionNode protected
[src]
§
transformAlias(node: AliasNode): AliasNode protected
[src]
§
transformAlterColumn(node: AlterColumnNode): AlterColumnNode protected
[src]
§
transformAlterTable(node: AlterTableNode): AlterTableNode protected
[src]
§
transformAnd(node: AndNode): AndNode protected
[src]
§
transformBinaryOperation(node: BinaryOperationNode): BinaryOperationNode protected
[src]
§
transformCase(node: CaseNode): CaseNode protected
[src]
§
transformCast(node: CastNode): CastNode protected
[src]
§
transformCheckConstraint(node: CheckConstraintNode): CheckConstraintNode protected
[src]
§
transformColumn(node: ColumnNode): ColumnNode protected
[src]
§
transformColumnDefinition(node: ColumnDefinitionNode): ColumnDefinitionNode protected
[src]
§
transformColumnUpdate(node: ColumnUpdateNode): ColumnUpdateNode protected
[src]
§
transformCommonTableExpression(node: CommonTableExpressionNode): CommonTableExpressionNode protected
[src]
§
transformCommonTableExpressionName(node: CommonTableExpressionNameNode): CommonTableExpressionNameNode protected
[src]
§
transformCreateIndex(node: CreateIndexNode): CreateIndexNode protected
[src]
§
transformCreateSchema(node: CreateSchemaNode): CreateSchemaNode protected
[src]
§
transformCreateTable(node: CreateTableNode): CreateTableNode protected
[src]
§
transformCreateType(node: CreateTypeNode): CreateTypeNode protected
[src]
§
transformCreateView(node: CreateViewNode): CreateViewNode protected
[src]
§
transformDataType(node: DataTypeNode): DataTypeNode protected
[src]
§
transformDefaultInsertValue(node: DefaultInsertValueNode): DefaultInsertValueNode protected
[src]
§
transformDefaultValue(node: DefaultValueNode): DefaultValueNode protected
[src]
§
transformDeleteQuery(node: DeleteQueryNode): DeleteQueryNode protected
[src]
§
transformDropColumn(node: DropColumnNode): DropColumnNode protected
[src]
§
transformDropConstraint(node: DropConstraintNode): DropConstraintNode protected
[src]
§
transformDropIndex(node: DropIndexNode): DropIndexNode protected
[src]
§
transformDropSchema(node: DropSchemaNode): DropSchemaNode protected
[src]
§
transformDropTable(node: DropTableNode): DropTableNode protected
[src]
§
transformDropType(node: DropTypeNode): DropTypeNode protected
[src]
§
transformDropView(node: DropViewNode): DropViewNode protected
[src]
§
transformExplain(node: ExplainNode): ExplainNode protected
[src]
§
transformFetch(node: FetchNode): FetchNode protected
[src]
§
transformForeignKeyConstraint(node: ForeignKeyConstraintNode): ForeignKeyConstraintNode protected
[src]
§
transformFrom(node: FromNode): FromNode protected
[src]
§
transformFunction(node: FunctionNode): FunctionNode protected
[src]
§
transformGenerated(node: GeneratedNode): GeneratedNode protected
[src]
§
transformGroupBy(node: GroupByNode): GroupByNode protected
[src]
§
transformGroupByItem(node: GroupByItemNode): GroupByItemNode protected
[src]
§
transformHaving(node: HavingNode): HavingNode protected
[src]
§
transformIdentifier(node: IdentifierNode): IdentifierNode protected
[src]
§
transformInsertQuery(node: InsertQueryNode): InsertQueryNode protected
[src]
§
transformJoin(node: JoinNode): JoinNode protected
[src]
§
transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode protected
[src]
§
transformJSONPath(node: JSONPathNode): JSONPathNode protected
[src]
§
transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode protected
[src]
§
transformJSONReference(node: JSONReferenceNode): JSONReferenceNode protected
[src]
§
transformLimit(node: LimitNode): LimitNode protected
[src]
§
transformList(node: ListNode): ListNode protected
[src]
§
transformMatched(node: MatchedNode): MatchedNode protected
[src]
§
transformMergeQuery(node: MergeQueryNode): MergeQueryNode protected
[src]
§
transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode protected
[src]
§
transformNodeImpl<T extends OperationNode>(node: T): T protected
[src]
§
transformNodeList<T extends ReadonlyArray<OperationNode> | undefined>(list: T): T protected
[src]
§
transformOffset(node: OffsetNode): OffsetNode protected
[src]
§
transformOn(node: OnNode): OnNode protected
[src]
§
transformOnConflict(node: OnConflictNode): OnConflictNode protected
[src]
§
transformOnDuplicateKey(node: OnDuplicateKeyNode): OnDuplicateKeyNode protected
[src]
§
transformOperator(node: OperatorNode): OperatorNode protected
[src]
§
transformOr(node: OrNode): OrNode protected
[src]
§
transformOrderBy(node: OrderByNode): OrderByNode protected
[src]
§
transformOrderByItem(node: OrderByItemNode): OrderByItemNode protected
[src]
§
transformOver(node: OverNode): OverNode protected
[src]
§
transformParens(node: ParensNode): ParensNode protected
[src]
§
transformPartitionBy(node: PartitionByNode): PartitionByNode protected
[src]
§
transformPartitionByItem(node: PartitionByItemNode): PartitionByItemNode protected
[src]
§
transformPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): PrimaryKeyConstraintNode protected
[src]
§
transformPrimitiveValueList(node: PrimitiveValueListNode): PrimitiveValueListNode protected
[src]
§
transformRaw(node: RawNode): RawNode protected
[src]
§
transformReference(node: ReferenceNode): ReferenceNode protected
[src]
§
transformReferences(node: ReferencesNode): ReferencesNode protected
[src]
§
transformRenameColumn(node: RenameColumnNode): RenameColumnNode protected
[src]
§
transformReturning(node: ReturningNode): ReturningNode protected
[src]
§
transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode protected
[src]
§
transformSelectAll(node: SelectAllNode): SelectAllNode protected
[src]
§
transformSelection(node: SelectionNode): SelectionNode protected
[src]
§
transformSelectModifier(node: SelectModifierNode): SelectModifierNode protected
[src]
§
transformSelectQuery(node: SelectQueryNode): SelectQueryNode protected
[src]
§
transformSetOperation(node: SetOperationNode): SetOperationNode protected
[src]
§
transformTable(node: TableNode): TableNode protected
[src]
§
transformTop(node: TopNode): TopNode protected
[src]
§
transformTuple(node: TupleNode): TupleNode protected
[src]
§
transformUnaryOperation(node: UnaryOperationNode): UnaryOperationNode protected
[src]
§
transformUniqueConstraint(node: UniqueConstraintNode): UniqueConstraintNode protected
[src]
§
transformUpdateQuery(node: UpdateQueryNode): UpdateQueryNode protected
[src]
§
transformUsing(node: UsingNode): UsingNode protected
[src]
§
transformValue(node: ValueNode): ValueNode protected
[src]
§
transformValueList(node: ValueListNode): ValueListNode protected
[src]
§
transformValues(node: ValuesNode): ValuesNode protected
[src]
§
transformWhen(node: WhenNode): WhenNode protected
[src]
§
transformWhere(node: WhereNode): WhereNode protected
[src]
§
transformWith(node: WithNode): WithNode protected
[src]
§
transformNode<T extends OperationNode | undefined>(node: T): T
[src]