Skip to content

Commit

Permalink
Make simple string concatenations more readable
Browse files Browse the repository at this point in the history
  • Loading branch information
Christoph Herrmann committed Jul 4, 2019
1 parent 7150125 commit 417e207
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,17 +136,15 @@ module.exports = ({
}

function escapeIdentifier (identifier) {
return `"${identifier.replace(/"/g, '""')}"`
return '"' + identifier.replace(/"/g, '""') + '"'
}

sql.defaultSchema = defaultSchema

sql.table = table => () => {
if (!Array.isArray(table)) {
table = [sql.defaultSchema, table]
}
sql.table = param => () => {
const [schema, table] = Array.isArray(param) ? param : [sql.defaultSchema, param]
return {
text: table.filter(table => table).map(escapeIdentifier).join('.'),
text: (schema ? escapeIdentifier(schema) + '.' : '') + escapeIdentifier(table),
parameters: []
}
}
Expand All @@ -168,7 +166,7 @@ module.exports = ({
values = columns.map(column => values[column])
}
return parameterPosition => ({
text: Array.apply(null, { length: values.length }).map(() => `$${++parameterPosition}`).join(', '),
text: Array.apply(null, { length: values.length }).map(() => '$' + (++parameterPosition)).join(', '),
parameters: values
})
}
Expand All @@ -181,7 +179,7 @@ module.exports = ({
for (const values of valuesList) {
const query = sql.values(values, { columns })(parameterPosition)
queries.push({
text: `(${query.text})`,
text: '(' + query.text + ')',
parameters: query.parameters
})
parameterPosition += query.parameters.length
Expand All @@ -201,7 +199,7 @@ module.exports = ({
for (const column of Object.keys(pairs)) {
const value = sql.value(pairs[column])(parameterPosition++)
queries.push({
text: `${escapeIdentifier(column)} = ${value.text}`,
text: escapeIdentifier(column) + ' = ' + value.text,
parameters: value.parameters
})
}
Expand Down Expand Up @@ -233,21 +231,21 @@ module.exports = ({

sql.limit = (limit, { fallbackLimit: fallbackLimit = sql.defaultFallbackLimit, maxLimit: maxLimit = sql.defaultMaxLimit } = {}) =>
() => ({
text: `LIMIT ${Math.min(positiveNumber(limit, fallbackLimit), maxLimit)}`,
text: 'LIMIT ' + Math.min(positiveNumber(limit, fallbackLimit), maxLimit),
parameters: []
})

sql.offset = offset =>
() => ({
text: `OFFSET ${positiveNumber(offset, 0)}`,
text: 'OFFSET ' + positiveNumber(offset, 0),
parameters: []
})

sql.defaultPageSize = defaultPageSize

sql.pagination = (page, { pageSize: pageSize = sql.defaultPageSize } = {}) =>
() => ({
text: `${sql.limit(pageSize)().text} ${sql.offset(page * pageSize)().text}`,
text: sql.limit(pageSize)().text + ' ' + sql.offset(page * pageSize)().text,
parameters: []
})

Expand Down

0 comments on commit 417e207

Please sign in to comment.