IMO:
.where('column_a', '=', 'value1') .and(q => q.isNull('column_b').orWhere('column_b', '=', 'value2')))
WHERE column_a = 'value1' AND (column_b IS NULL OR column_b = 'value2')
And obviously you can use whatever indentations you like.
- No keyword arguments
- No operator overloading (so you can't override | to get the nice "or" syntax)