sqlCode = (strings, ...interpolants) => {
let bits = []
let bindings = {}
let unnamedTableIndex = 0
strings.forEach((string, i) => {
bits.push(string)
if (i < interpolants.length) {
const interpolant = interpolants[i]
if (interpolant.forEach) {
interpolant.forEach(function (value) {
const name = "table__" + unnamedTableIndex
unnamedTableIndex++
bits.push(`${i > 0 ? ', ' : ''}:${name}`)
bindings[name] = value
})
} else {
Object.keys(interpolant).forEach(function (name, i) {
const value = interpolant[name]
bits.push(`${i > 0 ? ', ' : ''}:${name} AS ${name}`)
bindings[name] = value
});
}
}
})
return [bits.join(''), bindings]
}