UNPKG

kysely

Version:

Type safe SQL query builder

21 lines (20 loc) 1.01 kB
/// <reference types="./safe-null-comparison-transformer.d.ts" /> import { BinaryOperationNode } from '../../operation-node/binary-operation-node.js'; import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js'; import { OperatorNode } from '../../operation-node/operator-node.js'; import { ValueNode } from '../../operation-node/value-node.js'; export class SafeNullComparisonTransformer extends OperationNodeTransformer { transformBinaryOperation(node) { const { operator, leftOperand, rightOperand } = super.transformBinaryOperation(node); if (!ValueNode.is(rightOperand) || rightOperand.value !== null || !OperatorNode.is(operator)) { return node; } const op = operator.operator; if (op !== '=' && op !== '!=' && op !== '<>') { return node; } return BinaryOperationNode.create(leftOperand, OperatorNode.create(op === '=' ? 'is' : 'is not'), rightOperand); } }