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 transformCommonTableExpression(node: CommonTableExpressionNode): CommonTableExpressionNode;
protected transformCommonTableExpressionName(node: CommonTableExpressionNameNode): CommonTableExpressionNameNode;
§Properties
§
nodeStack: OperationNode[]
[src]§Methods
§
transformCommonTableExpression(node: CommonTableExpressionNode): CommonTableExpressionNode protected
[src]§
transformCommonTableExpressionName(node: CommonTableExpressionNameNode): CommonTableExpressionNameNode protected
[src]