happy-sql 2.0.7 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/ChangeLog +11 -0
  2. package/lib/happy-sql.js +5 -1
  3. package/lib/parser/fixture/comment-fix.js +6 -1
  4. package/lib/parser/fixture/section-multi-fix.js +22 -4
  5. package/lib/parser/fixture/select-fix.js +6 -1
  6. package/lib/parser/fixture/with-named-fix.js +41 -9
  7. package/lib/parser/fixture/with-named-insert-fix.js +42 -9
  8. package/lib/parser/parser.js +0 -1
  9. package/lib/parser/visitors/clause/count/fixture/count-fix.js +8 -1
  10. package/lib/parser/visitors/clause/count/fixture/count-one-fix.js +8 -1
  11. package/lib/parser/visitors/clause/create-sequence/fixture/create-sequence-fix.js +3 -1
  12. package/lib/parser/visitors/clause/create-table/fixture/create-table-autoincrement-fix.js +10 -3
  13. package/lib/parser/visitors/clause/create-table/fixture/create-table-default-fix.js +9 -3
  14. package/lib/parser/visitors/clause/create-table/fixture/create-table-identity-always-fix.js +10 -3
  15. package/lib/parser/visitors/clause/create-table/fixture/create-table-identity-by-default-fix.js +10 -3
  16. package/lib/parser/visitors/clause/create-table/fixture/create-table-nextval-fix.js +16 -4
  17. package/lib/parser/visitors/clause/create-table/fixture/create-table-not-null-fix.js +9 -3
  18. package/lib/parser/visitors/clause/create-table/fixture/create-table-serial-fix.js +9 -3
  19. package/lib/parser/visitors/clause/delete/fixture/delete-fix.js +8 -1
  20. package/lib/parser/visitors/clause/from/fixture/from-fix.js +6 -1
  21. package/lib/parser/visitors/clause/from/fixture/from-where-fix.js +10 -1
  22. package/lib/parser/visitors/clause/from/fixture/join-fix.js +12 -1
  23. package/lib/parser/visitors/clause/from/fixture/join-multi-fix.js +19 -1
  24. package/lib/parser/visitors/clause/from/fixture/join-on-in-fix.js +17 -1
  25. package/lib/parser/visitors/clause/from/fixture/join-on-is-not-null-fix.js +14 -1
  26. package/lib/parser/visitors/clause/from/fixture/join-on-is-null-fix.js +14 -1
  27. package/lib/parser/visitors/clause/from/fixture/join-on-like-fix.js +15 -1
  28. package/lib/parser/visitors/clause/from/fixture/join-on-not-eq-fix.js +12 -1
  29. package/lib/parser/visitors/clause/from/fixture/join-on-number-fix.js +12 -1
  30. package/lib/parser/visitors/clause/from/fixture/join-on-or-fix.js +12 -1
  31. package/lib/parser/visitors/clause/from/fixture/join-on-param-fix.js +12 -1
  32. package/lib/parser/visitors/clause/from/from.js +1 -26
  33. package/lib/parser/visitors/clause/insert/fixture/insert-fix.js +9 -1
  34. package/lib/parser/visitors/clause/insert/fixture/insert-identifier-fix.js +15 -1
  35. package/lib/parser/visitors/clause/insert/fixture/insert-multi-fix.js +9 -1
  36. package/lib/parser/visitors/clause/insert/fixture/insert-number-fix.js +16 -1
  37. package/lib/parser/visitors/clause/insert/fixture/insert-returning-conflict-fix.js +18 -1
  38. package/lib/parser/visitors/clause/insert/fixture/insert-returning-fix.js +12 -5
  39. package/lib/parser/visitors/clause/insert/fixture/insert-returning-id-fix.js +12 -5
  40. package/lib/parser/visitors/clause/insert/fixture/insert-string-fix.js +15 -1
  41. package/lib/parser/visitors/clause/on-conflict/fixture/on-conflict-fix.js +15 -1
  42. package/lib/parser/visitors/clause/on-conflict/fixture/on-conflict-nothing-fix.js +12 -1
  43. package/lib/parser/visitors/clause/select/fixture/select-alias-fix.js +7 -1
  44. package/lib/parser/visitors/clause/select/fixture/select-alias-param-fix.js +6 -1
  45. package/lib/parser/visitors/clause/select/fixture/select-fix.js +6 -1
  46. package/lib/parser/visitors/clause/select/fixture/select-last-insert-rowid-fix.js +6 -1
  47. package/lib/parser/visitors/clause/select/fixture/select-lastval-fix.js +6 -1
  48. package/lib/parser/visitors/clause/select/fixture/select-number-fix.js +9 -1
  49. package/lib/parser/visitors/clause/select/fixture/select-param-fix.js +7 -1
  50. package/lib/parser/visitors/clause/update/fixture/update-fix.js +9 -1
  51. package/lib/parser/visitors/clause/update/fixture/update-identifier-fix.js +9 -1
  52. package/lib/parser/visitors/clause/update/fixture/update-no-where-fix.js +6 -1
  53. package/lib/parser/visitors/clause/update/fixture/update-number-fix.js +9 -1
  54. package/lib/parser/visitors/clause/update/fixture/update-string-fix.js +9 -1
  55. package/lib/parser/visitors/clause/update/fixture/update-where-and-fix.js +11 -0
  56. package/lib/parser/visitors/clause/update/fixture/update-where-and.sql +1 -0
  57. package/lib/parser/visitors/clause/update/fixture/update-where-in-fix.js +16 -0
  58. package/lib/parser/visitors/clause/update/fixture/update-where-in.sql +1 -0
  59. package/lib/parser/visitors/clause/update/fixture/update-where-is-not-null-fix.js +13 -0
  60. package/lib/parser/visitors/clause/update/fixture/update-where-is-not-null.sql +1 -0
  61. package/lib/parser/visitors/clause/update/fixture/update-where-is-null-fix.js +13 -0
  62. package/lib/parser/visitors/clause/update/fixture/update-where-is-null.sql +1 -0
  63. package/lib/parser/visitors/clause/update/fixture/update-where-like-fix.js +14 -0
  64. package/lib/parser/visitors/clause/update/fixture/update-where-like.sql +1 -0
  65. package/lib/parser/visitors/clause/update/fixture/update-where-or-fix.js +11 -0
  66. package/lib/parser/visitors/clause/update/fixture/update-where-or.sql +1 -0
  67. package/lib/parser/visitors/clause/where/fixture/where-boolean-fix.js +11 -0
  68. package/lib/parser/visitors/clause/where/fixture/where-boolean.sql +1 -0
  69. package/lib/parser/visitors/clause/where/fixture/where-compare-fix.js +9 -1
  70. package/lib/parser/visitors/clause/where/fixture/where-fix.js +9 -1
  71. package/lib/parser/visitors/clause/where/fixture/where-gte-fix.js +9 -1
  72. package/lib/parser/visitors/clause/where/fixture/where-in-fix.js +14 -1
  73. package/lib/parser/visitors/clause/where/fixture/where-is-not-null-fix.js +11 -1
  74. package/lib/parser/visitors/clause/where/fixture/where-is-null-fix.js +11 -1
  75. package/lib/parser/visitors/clause/where/fixture/where-like-fix.js +12 -1
  76. package/lib/parser/visitors/clause/where/fixture/where-member-fix.js +11 -0
  77. package/lib/parser/visitors/clause/where/fixture/where-member.sql +1 -0
  78. package/lib/parser/visitors/clause/where/fixture/where-not-eq-fix.js +9 -1
  79. package/lib/parser/visitors/clause/where/fixture/where-null-fix.js +11 -0
  80. package/lib/parser/visitors/clause/where/fixture/where-null.sql +1 -0
  81. package/lib/parser/visitors/clause/where/fixture/where-number-fix.js +9 -1
  82. package/lib/parser/visitors/clause/where/fixture/where-or-fix.js +9 -1
  83. package/lib/printer/visitors/array-expression.js +4 -2
  84. package/lib/printer/visitors/call-expression/clauses/column/column.js +1 -1
  85. package/lib/printer/visitors/call-expression/clauses/create-table/create-table.js +7 -3
  86. package/lib/printer/visitors/call-expression/clauses/delete/delete.js +1 -1
  87. package/lib/printer/visitors/call-expression/clauses/from/from.js +1 -1
  88. package/lib/printer/visitors/call-expression/clauses/insert/insert.js +1 -1
  89. package/lib/printer/visitors/call-expression/clauses/into/into.js +1 -1
  90. package/lib/printer/visitors/call-expression/clauses/join/join.js +3 -2
  91. package/lib/printer/visitors/call-expression/clauses/select/select.js +1 -1
  92. package/lib/printer/visitors/call-expression/clauses/update/update.js +2 -2
  93. package/lib/printer/visitors/call-expression/clauses/with-named/with-named.js +23 -6
  94. package/package.json +1 -1
@@ -6,7 +6,7 @@ export const insert = (path, {write, traverse}) => {
6
6
  traverse(intoArg);
7
7
 
8
8
  for (const arg of rest) {
9
- write('\n');
9
+ write.newline();
10
10
  traverse(arg);
11
11
  }
12
12
  };
@@ -24,7 +24,7 @@ export const into = (path, {write, traverse}) => {
24
24
  write(')');
25
25
 
26
26
  if (values) {
27
- write(' ');
27
+ write.space();
28
28
  traverse(values);
29
29
  }
30
30
  };
@@ -17,11 +17,12 @@ const printTable = (path, ctx) => {
17
17
  export const join = (path, {write, traverse}) => {
18
18
  const [table, onClause] = path.get('arguments');
19
19
 
20
- write('\nJOIN ');
20
+ write.newline();
21
+ write('JOIN ');
21
22
  printTable(table, {
22
23
  write,
23
24
  traverse,
24
25
  });
25
- write(' ');
26
+ write.space();
26
27
  traverse(onClause);
27
28
  };
@@ -34,7 +34,7 @@ export const select = (path, {write, traverse}) => {
34
34
  }
35
35
 
36
36
  if (fromArg) {
37
- write('\n');
37
+ write.newline();
38
38
  traverse(fromArg);
39
39
  }
40
40
  };
@@ -6,11 +6,11 @@ export const update = (path, {write, traverse}) => {
6
6
 
7
7
  write('UPDATE ');
8
8
  traverse(table);
9
- write('\n');
9
+ write.newline();
10
10
  traverse(set);
11
11
 
12
12
  if (where) {
13
- write('\n');
13
+ write.newline();
14
14
  traverse(where);
15
15
  }
16
16
  };
@@ -1,20 +1,37 @@
1
1
  const isAssignment = (arg) => arg.node.type === 'AssignmentExpression';
2
2
 
3
- export const withNamed = (path, {write, traverse}) => {
3
+ export const withNamed = (path, {write, indent, traverse}) => {
4
4
  const args = path.get('arguments');
5
5
  const namedQueries = args.filter(isAssignment);
6
6
  const finalStatement = args.at(-1);
7
7
 
8
- write('WITH\n');
8
+ write('WITH');
9
+ write.newline();
9
10
  const last = namedQueries.length - 1;
10
11
 
11
12
  for (const [i, query] of namedQueries.entries()) {
12
- write(' ');
13
+ indent.inc();
14
+ write.indent();
15
+ indent.dec();
13
16
  write(query.get('left').node.name);
14
- write(' AS (\n ');
17
+ write(' AS (');
18
+ write.newline();
19
+ indent.inc();
20
+ indent.inc();
21
+ write.indent();
15
22
  traverse(query.get('right'));
16
- write('\n )');
17
- write(i < last ? ',\n' : '\n');
23
+ indent.dec();
24
+ indent.dec();
25
+ write.newline();
26
+ indent.inc();
27
+ write.indent();
28
+ indent.dec();
29
+ write(')');
30
+
31
+ if (i < last)
32
+ write(',');
33
+
34
+ write.newline();
18
35
  }
19
36
 
20
37
  traverse(finalStatement);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-sql",
3
- "version": "2.0.7",
3
+ "version": "2.0.8",
4
4
  "type": "module",
5
5
  "description": "sql to js ast parser and printer",
6
6
  "exports": {