node-sql-template-strings
                                
                                 node-sql-template-strings copied to clipboard
                                
                                    node-sql-template-strings copied to clipboard
                            
                            
                            
                        feat: Support for nested sql statements
I think nested query statements gives much better readability compared to appends:
Let' say I have helpers
function authorFilter(author) {
  return SQL`author=${author}`;
}
function nameFilter(name) {
  return SQL`name=${name}`;
}
With append it would be:
SQL`SELECT author FROM books WHERE `
   .append(authorFilter(author))
   .append(' AND ')
   .append(nameFilter(book))`
With nested queries:
SQL`SELECT author FROM books WHERE
     ${authorFilter(author)} AND
     ${nameFilter(book)}`;
This also enables easy support for raw values:
const tableName = "books";
SQL`SELECT * FROM ${SQL([tableName])}`.sql;
// => SELECT * FROM books
However SQL( [ value ] ) syntax is slightly cryptic. I'd vote to bring back raw() as
SQL.raw = function(value) {
  return SQL([value]);
};
Or this:
function SQL(strings) {
   if(typeof strings === 'string') {
       return SQL([strings])
   else
  return new SQLStatement(strings.slice(0), Array.from(arguments).slice(1))
}
SQL`SELECT * FROM ${SQL(tableName)}`
This also solves use case described in https://github.com/felixfbecker/node-sql-template-strings/pull/72
Codecov Report
Merging #79 into master will not change coverage. The diff coverage is
100%.
@@          Coverage Diff          @@
##           master    #79   +/-   ##
=====================================
  Coverage     100%   100%           
=====================================
  Files           1      1           
  Lines          35     45   +10     
  Branches        6      7    +1     
=====================================
+ Hits           35     45   +10
| Impacted Files | Coverage Ξ | |
|---|---|---|
| index.js | 100% <100%> (ΓΈ) | :arrow_up: | 
@skyjur Is this PR still in development? If you are busy I am more than happy to help out. Really looking forward to that feature :)
@KeKs0r it's kind of ready and I've used it in a few simple cases, but haven't done very extensive testing.
@skyjur I love the idea of nested sql statements for so I implemented it in @sequencework/sql (which is shamelessly inspired by sql-template-strings). I'd love if you could try it and let me know what you think π¬