happy-sql 1.7.0 → 1.7.1

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 (19) hide show
  1. package/ChangeLog +5 -0
  2. package/lib/parser/fixture/with-named-insert-fix.js +11 -0
  3. package/lib/parser/fixture/with-named-insert.sql +13 -0
  4. package/lib/printer/visitors/call-expression/clauses/insert/fixture/insert-fix.sql +1 -1
  5. package/lib/printer/visitors/call-expression/clauses/into/fixture/single-column-fix.sql +1 -1
  6. package/lib/printer/visitors/call-expression/clauses/on-conflict/fixture/on-conflict-fix.sql +1 -1
  7. package/lib/printer/visitors/call-expression/clauses/on-conflict/fixture/on-conflict-multi-fix.sql +1 -1
  8. package/lib/printer/visitors/call-expression/clauses/returning/fixture/returning-conflict-fix.sql +1 -1
  9. package/lib/printer/visitors/call-expression/clauses/returning/fixture/returning-fix.sql +1 -1
  10. package/lib/printer/visitors/call-expression/clauses/returning/fixture/returning-id-fix.sql +1 -1
  11. package/lib/printer/visitors/call-expression/clauses/returning/fixture/returning-multi-fix.sql +1 -1
  12. package/lib/printer/visitors/call-expression/clauses/values/fixture/values-fix.sql +1 -1
  13. package/lib/printer/visitors/call-expression/clauses/values/fixture/values-quoted-fix.sql +1 -0
  14. package/lib/printer/visitors/call-expression/clauses/values/fixture/values-quoted.js +1 -0
  15. package/lib/printer/visitors/call-expression/clauses/values/values.js +10 -1
  16. package/lib/printer/visitors/call-expression/clauses/with-named/fixture/with-named-insert-fix.sql +10 -0
  17. package/lib/printer/visitors/call-expression/clauses/with-named/fixture/with-named-insert.js +11 -0
  18. package/lib/printer/visitors/call-expression/clauses/with-named/fixture/withNamed-fix.sql +1 -1
  19. package/package.json +1 -1
package/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ 2026.08.19, v1.7.1
2
+
3
+ fix:
4
+ - 269dea4 happy-sql: values printer: preserve string param quotes
5
+
1
6
  2026.08.18, v1.7.0
2
7
 
3
8
  feature:
@@ -0,0 +1,11 @@
1
+ [
2
+ withNamed(call = insert(into(
3
+ CallExpression,
4
+ [file, parent_id],
5
+ values(':file', ':parent_id'),
6
+ ), returning(id)), member = insert(into(
7
+ MemberExpression,
8
+ [file, parent_id],
9
+ select(':file', id, from(call)),
10
+ ), returning(id)), insert(into(Identifier, [file, name, parent_id], select(':file', 'isNaN', id, from(member))))),
11
+ ];
@@ -0,0 +1,13 @@
1
+ WITH
2
+ call AS (
3
+ INSERT INTO CallExpression (file, parent_id)
4
+ VALUES (':file', ':parent_id')
5
+ RETURNING id
6
+ ),
7
+ member AS (
8
+ INSERT INTO MemberExpression (file, parent_id)
9
+ SELECT ':file', id FROM call
10
+ RETURNING id
11
+ )
12
+ INSERT INTO Identifier (file, name, parent_id)
13
+ SELECT ':file', 'isNaN', id FROM member
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x)
1
+ INSERT INTO t (x) VALUES (':x')
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x)
1
+ INSERT INTO t (x) VALUES (':x')
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x) ON CONFLICT (x) DO UPDATE SET x = :x
1
+ INSERT INTO t (x) VALUES (':x') ON CONFLICT (x) DO UPDATE SET x = :x
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x) ON CONFLICT (x, y) DO UPDATE SET x = :x
1
+ INSERT INTO t (x) VALUES (':x') ON CONFLICT (x, y) DO UPDATE SET x = :x
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x) ON CONFLICT (x) DO UPDATE SET y = :y RETURNING id
1
+ INSERT INTO t (x) VALUES (':x') ON CONFLICT (x) DO UPDATE SET y = :y RETURNING id
@@ -1 +1 @@
1
- INSERT INTO CallExpression (parent_id) VALUES (:parent_id) RETURNING id AS call_id
1
+ INSERT INTO CallExpression (parent_id) VALUES (':parent_id') RETURNING id AS call_id
@@ -1 +1 @@
1
- INSERT INTO CallExpression (parent_id) VALUES (:parent_id) RETURNING id
1
+ INSERT INTO CallExpression (parent_id) VALUES (':parent_id') RETURNING id
@@ -1 +1 @@
1
- INSERT INTO t (x) VALUES (:x) RETURNING id, created_at
1
+ INSERT INTO t (x) VALUES (':x') RETURNING id, created_at
@@ -1 +1 @@
1
- VALUES (:x)
1
+ VALUES (':x')
@@ -0,0 +1 @@
1
+ [values(':file', ':parent_id')]
@@ -1,3 +1,7 @@
1
+ import {types} from '@putout/babel';
2
+
3
+ const {isStringLiteral} = types;
4
+
1
5
  export const values = (path, {write, traverse}) => {
2
6
  const args = path.get('arguments');
3
7
  write('VALUES (');
@@ -5,7 +9,12 @@ export const values = (path, {write, traverse}) => {
5
9
  if (i > 0)
6
10
  write(', ');
7
11
 
8
- traverse(args[i]);
12
+ const arg = args[i];
13
+
14
+ if (isStringLiteral(arg.node))
15
+ write(`'${arg.node.value}'`);
16
+ else
17
+ traverse(arg);
9
18
  }
10
19
 
11
20
  write(')');
@@ -0,0 +1,10 @@
1
+ WITH
2
+ call AS (
3
+ INSERT INTO CallExpression (file, parent_id) VALUES (':file', ':parent_id') RETURNING id
4
+ ),
5
+ member AS (
6
+ INSERT INTO MemberExpression (file, parent_id) SELECT :file, id
7
+ FROM call RETURNING id
8
+ )
9
+ INSERT INTO Identifier (file, name, parent_id) SELECT :file, 'isNaN', id
10
+ FROM member
@@ -0,0 +1,11 @@
1
+ [
2
+ withNamed(call = insert(into(
3
+ CallExpression,
4
+ [file, parent_id],
5
+ values(':file', ':parent_id'),
6
+ ), returning(id)), member = insert(into(
7
+ MemberExpression,
8
+ [file, parent_id],
9
+ select(':file', id, from(call)),
10
+ ), returning(id)), insert(into(Identifier, [file, name, parent_id], select(':file', 'isNaN', id, from(member))))),
11
+ ];
@@ -1,6 +1,6 @@
1
1
  WITH
2
2
  call AS (
3
- INSERT INTO CallExpression (parent_id) VALUES (:parent_id) RETURNING id
3
+ INSERT INTO CallExpression (parent_id) VALUES (':parent_id') RETURNING id
4
4
  ),
5
5
  member AS (
6
6
  INSERT INTO MemberExpression (parent_id) SELECT id
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-sql",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "type": "module",
5
5
  "description": "sql to js ast parser and printer",
6
6
  "exports": {