@scalar/snippetz 0.7.4 → 0.7.6

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 (249) hide show
  1. package/dist/clients/index.js +168 -169
  2. package/dist/httpsnippet-lite/helpers/code-builder.js +86 -74
  3. package/dist/httpsnippet-lite/helpers/escape.js +69 -44
  4. package/dist/httpsnippet-lite/helpers/headers.js +17 -14
  5. package/dist/httpsnippet-lite/helpers/reducer.js +1 -1
  6. package/dist/httpsnippet-lite/helpers/shell.js +13 -13
  7. package/dist/httpsnippet-lite/helpers/snippet-request.js +1 -1
  8. package/dist/httpsnippet-lite/helpers/url.js +4 -8
  9. package/dist/httpsnippet-lite/targets/c/libcurl/client.js +69 -67
  10. package/dist/httpsnippet-lite/targets/clojure/clj_http/client.js +165 -154
  11. package/dist/httpsnippet-lite/targets/csharp/restsharp/client.js +35 -38
  12. package/dist/httpsnippet-lite/targets/go/native/client.js +151 -147
  13. package/dist/httpsnippet-lite/targets/java/asynchttp/client.js +32 -35
  14. package/dist/httpsnippet-lite/targets/java/nethttp/client.js +40 -39
  15. package/dist/httpsnippet-lite/targets/java/okhttp/client.js +83 -73
  16. package/dist/httpsnippet-lite/targets/java/unirest/client.js +41 -34
  17. package/dist/httpsnippet-lite/targets/javascript/axios/client.js +81 -76
  18. package/dist/httpsnippet-lite/targets/javascript/jquery/client.js +77 -71
  19. package/dist/httpsnippet-lite/targets/javascript/xhr/client.js +73 -71
  20. package/dist/httpsnippet-lite/targets/kotlin/okhttp/client.js +83 -73
  21. package/dist/httpsnippet-lite/targets/node/axios/client.js +74 -69
  22. package/dist/httpsnippet-lite/targets/objc/helpers.js +52 -33
  23. package/dist/httpsnippet-lite/targets/objc/nsurlsession/client.js +123 -121
  24. package/dist/httpsnippet-lite/targets/ocaml/cohttp/client.js +60 -49
  25. package/dist/httpsnippet-lite/targets/powershell/common.js +46 -56
  26. package/dist/httpsnippet-lite/targets/powershell/restmethod/client.js +9 -13
  27. package/dist/httpsnippet-lite/targets/powershell/webrequest/client.js +9 -13
  28. package/dist/httpsnippet-lite/targets/python/python3/client.js +85 -68
  29. package/dist/httpsnippet-lite/targets/r/httr/client.js +114 -95
  30. package/dist/httpsnippet-lite/targets/ruby/native/client.js +66 -70
  31. package/dist/httpsnippet-lite/targets/shell/httpie/client.js +121 -107
  32. package/dist/httpsnippet-lite/targets/shell/wget/client.js +48 -43
  33. package/dist/httpsnippet-lite/targets/swift/helpers.js +62 -44
  34. package/dist/httpsnippet-lite/targets/swift/nsurlsession/client.js +126 -112
  35. package/dist/httpsnippet-lite/targets/target.js +1 -1
  36. package/dist/index.js +2 -9
  37. package/dist/libs/http.js +68 -56
  38. package/dist/libs/javascript.js +77 -60
  39. package/dist/libs/php.js +59 -49
  40. package/dist/libs/rust.js +60 -33
  41. package/dist/libs/shell.js +14 -5
  42. package/dist/plugins/c/libcurl/index.js +1 -5
  43. package/dist/plugins/c/libcurl/libcurl.js +13 -13
  44. package/dist/plugins/clojure/clj_http/clj_http.js +13 -13
  45. package/dist/plugins/clojure/clj_http/index.js +1 -5
  46. package/dist/plugins/csharp/httpclient/httpclient.js +206 -150
  47. package/dist/plugins/csharp/httpclient/index.js +1 -5
  48. package/dist/plugins/csharp/restsharp/index.js +1 -5
  49. package/dist/plugins/csharp/restsharp/restsharp.js +13 -13
  50. package/dist/plugins/dart/http/http.js +95 -93
  51. package/dist/plugins/dart/http/index.js +1 -5
  52. package/dist/plugins/fsharp/httpclient/httpclient.js +169 -122
  53. package/dist/plugins/fsharp/httpclient/index.js +1 -5
  54. package/dist/plugins/go/native/index.js +1 -5
  55. package/dist/plugins/go/native/native.js +13 -13
  56. package/dist/plugins/http/http11/http11.d.ts.map +1 -1
  57. package/dist/plugins/http/http11/http11.js +104 -85
  58. package/dist/plugins/http/http11/index.js +1 -5
  59. package/dist/plugins/java/asynchttp/asynchttp.js +13 -13
  60. package/dist/plugins/java/asynchttp/index.js +1 -5
  61. package/dist/plugins/java/nethttp/index.js +1 -5
  62. package/dist/plugins/java/nethttp/nethttp.js +13 -13
  63. package/dist/plugins/java/okhttp/index.js +1 -5
  64. package/dist/plugins/java/okhttp/okhttp.js +13 -13
  65. package/dist/plugins/java/unirest/index.js +1 -5
  66. package/dist/plugins/java/unirest/unirest.js +13 -13
  67. package/dist/plugins/js/axios/axios.js +13 -13
  68. package/dist/plugins/js/axios/index.js +1 -5
  69. package/dist/plugins/js/fetch/fetch.js +82 -68
  70. package/dist/plugins/js/fetch/index.js +1 -5
  71. package/dist/plugins/js/jquery/index.js +1 -5
  72. package/dist/plugins/js/jquery/jquery.js +13 -13
  73. package/dist/plugins/js/ofetch/index.js +1 -5
  74. package/dist/plugins/js/ofetch/ofetch.js +61 -48
  75. package/dist/plugins/js/xhr/index.js +1 -5
  76. package/dist/plugins/js/xhr/xhr.js +13 -13
  77. package/dist/plugins/kotlin/okhttp/index.js +1 -5
  78. package/dist/plugins/kotlin/okhttp/okhttp.js +13 -13
  79. package/dist/plugins/node/axios/axios.js +13 -13
  80. package/dist/plugins/node/axios/index.js +1 -5
  81. package/dist/plugins/node/fetch/fetch.js +86 -74
  82. package/dist/plugins/node/fetch/index.js +1 -5
  83. package/dist/plugins/node/ofetch/index.js +1 -5
  84. package/dist/plugins/node/ofetch/ofetch.js +61 -48
  85. package/dist/plugins/node/undici/index.js +1 -5
  86. package/dist/plugins/node/undici/undici.js +60 -47
  87. package/dist/plugins/objc/nsurlsession/index.js +1 -5
  88. package/dist/plugins/objc/nsurlsession/nsurlsession.js +13 -13
  89. package/dist/plugins/ocaml/cohttp/cohttp.js +13 -13
  90. package/dist/plugins/ocaml/cohttp/index.js +1 -5
  91. package/dist/plugins/php/curl/curl.js +143 -101
  92. package/dist/plugins/php/curl/index.js +1 -5
  93. package/dist/plugins/php/guzzle/guzzle.d.ts.map +1 -1
  94. package/dist/plugins/php/guzzle/guzzle.js +109 -83
  95. package/dist/plugins/php/guzzle/index.js +1 -5
  96. package/dist/plugins/powershell/restmethod/index.js +1 -5
  97. package/dist/plugins/powershell/restmethod/restmethod.js +13 -13
  98. package/dist/plugins/powershell/webrequest/index.js +1 -5
  99. package/dist/plugins/powershell/webrequest/webrequest.js +13 -13
  100. package/dist/plugins/python/httpx/async.js +17 -15
  101. package/dist/plugins/python/httpx/index.js +2 -7
  102. package/dist/plugins/python/httpx/sync.js +11 -12
  103. package/dist/plugins/python/python3/index.js +1 -5
  104. package/dist/plugins/python/python3/python3.js +13 -13
  105. package/dist/plugins/python/requests/index.js +1 -5
  106. package/dist/plugins/python/requests/requests.js +11 -12
  107. package/dist/plugins/python/requestsLike.d.ts.map +1 -1
  108. package/dist/plugins/python/requestsLike.js +145 -112
  109. package/dist/plugins/r/httr/httr.js +13 -13
  110. package/dist/plugins/r/httr/index.js +1 -5
  111. package/dist/plugins/ruby/native/index.js +1 -5
  112. package/dist/plugins/ruby/native/native.js +13 -13
  113. package/dist/plugins/rust/reqwest/index.js +1 -5
  114. package/dist/plugins/rust/reqwest/reqwest.js +126 -83
  115. package/dist/plugins/shell/curl/curl.d.ts.map +1 -1
  116. package/dist/plugins/shell/curl/curl.js +129 -97
  117. package/dist/plugins/shell/curl/index.js +1 -5
  118. package/dist/plugins/shell/httpie/httpie.js +13 -13
  119. package/dist/plugins/shell/httpie/index.js +1 -5
  120. package/dist/plugins/shell/wget/index.js +1 -5
  121. package/dist/plugins/shell/wget/wget.js +13 -13
  122. package/dist/plugins/swift/nsurlsession/index.js +1 -5
  123. package/dist/plugins/swift/nsurlsession/nsurlsession.js +13 -13
  124. package/dist/snippetz.js +25 -28
  125. package/dist/utils/convertWithHttpSnippetLite.js +100 -96
  126. package/dist/utils/index.js +1 -5
  127. package/package.json +8 -12
  128. package/dist/clients/index.js.map +0 -7
  129. package/dist/httpsnippet-lite/helpers/code-builder.js.map +0 -7
  130. package/dist/httpsnippet-lite/helpers/escape.js.map +0 -7
  131. package/dist/httpsnippet-lite/helpers/headers.js.map +0 -7
  132. package/dist/httpsnippet-lite/helpers/reducer.js.map +0 -7
  133. package/dist/httpsnippet-lite/helpers/shell.js.map +0 -7
  134. package/dist/httpsnippet-lite/helpers/snippet-request.js.map +0 -7
  135. package/dist/httpsnippet-lite/helpers/url.js.map +0 -7
  136. package/dist/httpsnippet-lite/targets/c/libcurl/client.js.map +0 -7
  137. package/dist/httpsnippet-lite/targets/clojure/clj_http/client.js.map +0 -7
  138. package/dist/httpsnippet-lite/targets/csharp/restsharp/client.js.map +0 -7
  139. package/dist/httpsnippet-lite/targets/go/native/client.js.map +0 -7
  140. package/dist/httpsnippet-lite/targets/java/asynchttp/client.js.map +0 -7
  141. package/dist/httpsnippet-lite/targets/java/nethttp/client.js.map +0 -7
  142. package/dist/httpsnippet-lite/targets/java/okhttp/client.js.map +0 -7
  143. package/dist/httpsnippet-lite/targets/java/unirest/client.js.map +0 -7
  144. package/dist/httpsnippet-lite/targets/javascript/axios/client.js.map +0 -7
  145. package/dist/httpsnippet-lite/targets/javascript/jquery/client.js.map +0 -7
  146. package/dist/httpsnippet-lite/targets/javascript/xhr/client.js.map +0 -7
  147. package/dist/httpsnippet-lite/targets/kotlin/okhttp/client.js.map +0 -7
  148. package/dist/httpsnippet-lite/targets/node/axios/client.js.map +0 -7
  149. package/dist/httpsnippet-lite/targets/objc/helpers.js.map +0 -7
  150. package/dist/httpsnippet-lite/targets/objc/nsurlsession/client.js.map +0 -7
  151. package/dist/httpsnippet-lite/targets/ocaml/cohttp/client.js.map +0 -7
  152. package/dist/httpsnippet-lite/targets/powershell/common.js.map +0 -7
  153. package/dist/httpsnippet-lite/targets/powershell/restmethod/client.js.map +0 -7
  154. package/dist/httpsnippet-lite/targets/powershell/webrequest/client.js.map +0 -7
  155. package/dist/httpsnippet-lite/targets/python/python3/client.js.map +0 -7
  156. package/dist/httpsnippet-lite/targets/r/httr/client.js.map +0 -7
  157. package/dist/httpsnippet-lite/targets/ruby/native/client.js.map +0 -7
  158. package/dist/httpsnippet-lite/targets/shell/httpie/client.js.map +0 -7
  159. package/dist/httpsnippet-lite/targets/shell/wget/client.js.map +0 -7
  160. package/dist/httpsnippet-lite/targets/swift/helpers.js.map +0 -7
  161. package/dist/httpsnippet-lite/targets/swift/nsurlsession/client.js.map +0 -7
  162. package/dist/httpsnippet-lite/targets/target.js.map +0 -7
  163. package/dist/index.js.map +0 -7
  164. package/dist/libs/http.js.map +0 -7
  165. package/dist/libs/javascript.js.map +0 -7
  166. package/dist/libs/php.js.map +0 -7
  167. package/dist/libs/rust.js.map +0 -7
  168. package/dist/libs/shell.js.map +0 -7
  169. package/dist/plugins/c/libcurl/index.js.map +0 -7
  170. package/dist/plugins/c/libcurl/libcurl.js.map +0 -7
  171. package/dist/plugins/clojure/clj_http/clj_http.js.map +0 -7
  172. package/dist/plugins/clojure/clj_http/index.js.map +0 -7
  173. package/dist/plugins/csharp/httpclient/httpclient.js.map +0 -7
  174. package/dist/plugins/csharp/httpclient/index.js.map +0 -7
  175. package/dist/plugins/csharp/restsharp/index.js.map +0 -7
  176. package/dist/plugins/csharp/restsharp/restsharp.js.map +0 -7
  177. package/dist/plugins/dart/http/http.js.map +0 -7
  178. package/dist/plugins/dart/http/index.js.map +0 -7
  179. package/dist/plugins/fsharp/httpclient/httpclient.js.map +0 -7
  180. package/dist/plugins/fsharp/httpclient/index.js.map +0 -7
  181. package/dist/plugins/go/native/index.js.map +0 -7
  182. package/dist/plugins/go/native/native.js.map +0 -7
  183. package/dist/plugins/http/http11/http11.js.map +0 -7
  184. package/dist/plugins/http/http11/index.js.map +0 -7
  185. package/dist/plugins/java/asynchttp/asynchttp.js.map +0 -7
  186. package/dist/plugins/java/asynchttp/index.js.map +0 -7
  187. package/dist/plugins/java/nethttp/index.js.map +0 -7
  188. package/dist/plugins/java/nethttp/nethttp.js.map +0 -7
  189. package/dist/plugins/java/okhttp/index.js.map +0 -7
  190. package/dist/plugins/java/okhttp/okhttp.js.map +0 -7
  191. package/dist/plugins/java/unirest/index.js.map +0 -7
  192. package/dist/plugins/java/unirest/unirest.js.map +0 -7
  193. package/dist/plugins/js/axios/axios.js.map +0 -7
  194. package/dist/plugins/js/axios/index.js.map +0 -7
  195. package/dist/plugins/js/fetch/fetch.js.map +0 -7
  196. package/dist/plugins/js/fetch/index.js.map +0 -7
  197. package/dist/plugins/js/jquery/index.js.map +0 -7
  198. package/dist/plugins/js/jquery/jquery.js.map +0 -7
  199. package/dist/plugins/js/ofetch/index.js.map +0 -7
  200. package/dist/plugins/js/ofetch/ofetch.js.map +0 -7
  201. package/dist/plugins/js/xhr/index.js.map +0 -7
  202. package/dist/plugins/js/xhr/xhr.js.map +0 -7
  203. package/dist/plugins/kotlin/okhttp/index.js.map +0 -7
  204. package/dist/plugins/kotlin/okhttp/okhttp.js.map +0 -7
  205. package/dist/plugins/node/axios/axios.js.map +0 -7
  206. package/dist/plugins/node/axios/index.js.map +0 -7
  207. package/dist/plugins/node/fetch/fetch.js.map +0 -7
  208. package/dist/plugins/node/fetch/index.js.map +0 -7
  209. package/dist/plugins/node/ofetch/index.js.map +0 -7
  210. package/dist/plugins/node/ofetch/ofetch.js.map +0 -7
  211. package/dist/plugins/node/undici/index.js.map +0 -7
  212. package/dist/plugins/node/undici/undici.js.map +0 -7
  213. package/dist/plugins/objc/nsurlsession/index.js.map +0 -7
  214. package/dist/plugins/objc/nsurlsession/nsurlsession.js.map +0 -7
  215. package/dist/plugins/ocaml/cohttp/cohttp.js.map +0 -7
  216. package/dist/plugins/ocaml/cohttp/index.js.map +0 -7
  217. package/dist/plugins/php/curl/curl.js.map +0 -7
  218. package/dist/plugins/php/curl/index.js.map +0 -7
  219. package/dist/plugins/php/guzzle/guzzle.js.map +0 -7
  220. package/dist/plugins/php/guzzle/index.js.map +0 -7
  221. package/dist/plugins/powershell/restmethod/index.js.map +0 -7
  222. package/dist/plugins/powershell/restmethod/restmethod.js.map +0 -7
  223. package/dist/plugins/powershell/webrequest/index.js.map +0 -7
  224. package/dist/plugins/powershell/webrequest/webrequest.js.map +0 -7
  225. package/dist/plugins/python/httpx/async.js.map +0 -7
  226. package/dist/plugins/python/httpx/index.js.map +0 -7
  227. package/dist/plugins/python/httpx/sync.js.map +0 -7
  228. package/dist/plugins/python/python3/index.js.map +0 -7
  229. package/dist/plugins/python/python3/python3.js.map +0 -7
  230. package/dist/plugins/python/requests/index.js.map +0 -7
  231. package/dist/plugins/python/requests/requests.js.map +0 -7
  232. package/dist/plugins/python/requestsLike.js.map +0 -7
  233. package/dist/plugins/r/httr/httr.js.map +0 -7
  234. package/dist/plugins/r/httr/index.js.map +0 -7
  235. package/dist/plugins/ruby/native/index.js.map +0 -7
  236. package/dist/plugins/ruby/native/native.js.map +0 -7
  237. package/dist/plugins/rust/reqwest/index.js.map +0 -7
  238. package/dist/plugins/rust/reqwest/reqwest.js.map +0 -7
  239. package/dist/plugins/shell/curl/curl.js.map +0 -7
  240. package/dist/plugins/shell/curl/index.js.map +0 -7
  241. package/dist/plugins/shell/httpie/httpie.js.map +0 -7
  242. package/dist/plugins/shell/httpie/index.js.map +0 -7
  243. package/dist/plugins/shell/wget/index.js.map +0 -7
  244. package/dist/plugins/shell/wget/wget.js.map +0 -7
  245. package/dist/plugins/swift/nsurlsession/index.js.map +0 -7
  246. package/dist/plugins/swift/nsurlsession/nsurlsession.js.map +0 -7
  247. package/dist/snippetz.js.map +0 -7
  248. package/dist/utils/convertWithHttpSnippetLite.js.map +0 -7
  249. package/dist/utils/index.js.map +0 -7
package/dist/libs/php.js CHANGED
@@ -1,57 +1,67 @@
1
+ /**
2
+ * Generates a consistent indentation string based on the specified indentation level.
3
+ */
1
4
  function indent(level) {
2
- return " ".repeat(level * 2);
5
+ return ' '.repeat(level * 2);
3
6
  }
4
- class Raw {
5
- constructor(value) {
6
- this.value = value;
7
- }
7
+ /**
8
+ * Represents a raw PHP code that should not be quoted, e.g. `fopen('test.txt', 'r')`.
9
+ * If it consists of multiple lines, they will be indented properly.
10
+ */
11
+ export class Raw {
12
+ value;
13
+ constructor(value) {
14
+ this.value = value;
15
+ }
8
16
  }
9
- function objectToString(data, level = 0) {
10
- if (data === null || data === void 0) {
11
- return "null";
12
- }
13
- if (data instanceof Raw) {
14
- const lines = data.value.split("\n");
15
- if (lines.length > 1) {
16
- const innerIndentation = indent(level + 1);
17
- return lines.map((line, index) => {
18
- if (index === 0) {
19
- return line;
17
+ /**
18
+ * Converts a JavaScript object or value into a PHP array or scalar string representation.
19
+ * Handles nested arrays and objects, proper string escaping, and preserves indentation for readability.
20
+ *
21
+ * @example
22
+ * objectToString({ foo: 'bar', baz: 'qux' }) // => "['foo' => 'bar', 'baz' => 'qux']"
23
+ */
24
+ export function objectToString(data, level = 0) {
25
+ if (data === null || data === undefined) {
26
+ return 'null';
27
+ }
28
+ if (data instanceof Raw) {
29
+ const lines = data.value.split('\n');
30
+ if (lines.length > 1) {
31
+ const innerIndentation = indent(level + 1);
32
+ return lines
33
+ .map((line, index) => {
34
+ if (index === 0) {
35
+ return line;
36
+ }
37
+ return `${innerIndentation}${line}`;
38
+ })
39
+ .join('\n');
20
40
  }
21
- return `${innerIndentation}${line}`;
22
- }).join("\n");
41
+ return data.value;
42
+ }
43
+ if (typeof data === 'string') {
44
+ return `'${data.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
23
45
  }
24
- return data.value;
25
- }
26
- if (typeof data === "string") {
27
- return `'${data.replace(/\\/g, "\\\\").replace(/'/g, "\\'")}'`;
28
- }
29
- if (typeof data === "number" || typeof data === "boolean") {
30
- return String(data);
31
- }
32
- if (Array.isArray(data)) {
33
- if (data.length === 0) {
34
- return "[]";
46
+ if (typeof data === 'number' || typeof data === 'boolean') {
47
+ return String(data);
35
48
  }
36
- const items = data.map((item) => objectToString(item, level + 1)).join(",\n" + indent(level + 1));
37
- return `[
38
- ${indent(level + 1)}${items}
39
- ${indent(level)}]`;
40
- }
41
- if (typeof data === "object") {
42
- const entries = Object.entries(data);
43
- if (entries.length === 0) {
44
- return "[]";
49
+ if (Array.isArray(data)) {
50
+ if (data.length === 0) {
51
+ return '[]';
52
+ }
53
+ const items = data.map((item) => objectToString(item, level + 1)).join(',\n' + indent(level + 1));
54
+ return `[\n${indent(level + 1)}${items}\n${indent(level)}]`;
55
+ }
56
+ if (typeof data === 'object') {
57
+ const entries = Object.entries(data);
58
+ if (entries.length === 0) {
59
+ return '[]';
60
+ }
61
+ const items = entries
62
+ .map(([key, value]) => `'${key}' => ${objectToString(value, level + 1)}`)
63
+ .join(',\n' + indent(level + 1));
64
+ return `[\n${indent(level + 1)}${items}\n${indent(level)}]`;
45
65
  }
46
- const items = entries.map(([key, value]) => `'${key}' => ${objectToString(value, level + 1)}`).join(",\n" + indent(level + 1));
47
- return `[
48
- ${indent(level + 1)}${items}
49
- ${indent(level)}]`;
50
- }
51
- return "null";
66
+ return 'null';
52
67
  }
53
- export {
54
- Raw,
55
- objectToString
56
- };
57
- //# sourceMappingURL=php.js.map
package/dist/libs/rust.js CHANGED
@@ -1,39 +1,66 @@
1
+ /**
2
+ * Escapes a string for use in Rust string literals
3
+ * Handles quotes, backslashes, newlines, and other special characters
4
+ */
1
5
  function escapeString(str) {
2
- return str.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\0/g, "\\0");
6
+ return str
7
+ .replace(/\\/g, '\\\\') // Escape backslashes first
8
+ .replace(/"/g, '\\"') // Escape double quotes
9
+ .replace(/\n/g, '\\n') // Escape newlines
10
+ .replace(/\r/g, '\\r') // Escape carriage returns
11
+ .replace(/\t/g, '\\t') // Escape tabs
12
+ .replace(/\0/g, '\\0'); // Escape null bytes
3
13
  }
4
- function wrapInDoubleQuotes(str) {
5
- return `"${escapeString(str)}"`;
14
+ /**
15
+ * Formats and escapes a string safely for use in Rust string literals.
16
+ * The returned value is the escaped string, surrounded by double quotes,
17
+ * making it ready for direct insertion into Rust source code.
18
+ */
19
+ export function wrapInDoubleQuotes(str) {
20
+ return `"${escapeString(str)}"`;
6
21
  }
7
- function indent(level, text) {
8
- const spaces = " ".repeat(level * 4);
9
- return `${spaces}${text}`;
22
+ /**
23
+ * Produces an indented string using 4 spaces per indent level,
24
+ * in accordance with rustfmt style guidelines.
25
+ * Useful for code generation scenarios requiring precise formatting.
26
+ */
27
+ export function indent(level, text) {
28
+ const spaces = ' '.repeat(level * 4);
29
+ return `${spaces}${text}`;
10
30
  }
11
- function createChain(method, ...args) {
12
- return indent(1, `.${method}(${args.join(", ")})`);
31
+ /**
32
+ * Formats a Rust chained method call with standard 4-space indentation.
33
+ * Useful for fluent API or builder patterns in generated Rust code.
34
+ */
35
+ export function createChain(method, ...args) {
36
+ return indent(1, `.${method}(${args.join(', ')})`);
13
37
  }
14
- function formatJson(jsonText) {
15
- try {
16
- const jsonData = JSON.parse(jsonText);
17
- const prettyJson = JSON.stringify(jsonData, null, 4);
18
- const lines = prettyJson.split("\n");
19
- const rustLines = lines.map((line, index) => {
20
- if (index === 0) {
21
- return line;
22
- }
23
- if (index === lines.length - 1) {
24
- return indent(1, line);
25
- }
26
- return indent(1, line);
27
- });
28
- return rustLines.join("\n");
29
- } catch {
30
- return jsonText;
31
- }
38
+ /**
39
+ * Properly formats a JSON snippet for Rust's `serde_json::json!` macro,
40
+ * applying idiomatic 4-space indentation to each line for improved readability.
41
+ */
42
+ export function formatJson(jsonText) {
43
+ try {
44
+ const jsonData = JSON.parse(jsonText);
45
+ const prettyJson = JSON.stringify(jsonData, null, 4);
46
+ // Split into lines and add proper indentation for Rust
47
+ const lines = prettyJson.split('\n');
48
+ const rustLines = lines.map((line, index) => {
49
+ if (index === 0) {
50
+ // First line (opening brace)
51
+ return line;
52
+ }
53
+ if (index === lines.length - 1) {
54
+ // Last line (closing brace)
55
+ return indent(1, line);
56
+ }
57
+ // Middle lines
58
+ return indent(1, line);
59
+ });
60
+ return rustLines.join('\n');
61
+ }
62
+ catch {
63
+ // If JSON parsing fails, return the original text
64
+ return jsonText;
65
+ }
32
66
  }
33
- export {
34
- createChain,
35
- formatJson,
36
- indent,
37
- wrapInDoubleQuotes
38
- };
39
- //# sourceMappingURL=rust.js.map
@@ -1,5 +1,14 @@
1
- const escapeSingleQuotes = (value) => value.replace(/'/g, "'\\''");
2
- export {
3
- escapeSingleQuotes
4
- };
5
- //# sourceMappingURL=shell.js.map
1
+ /**
2
+ * Escapes single quotes in a string for safe use inside bash single-quoted strings.
3
+ * In bash, you cannot directly escape a single quote inside single quotes (i.e., 'hell\'o' is invalid).
4
+ * Instead, you must close the single quotes, insert an escaped single quote, then reopen the single quotes:
5
+ *
6
+ * ```bash
7
+ * 'hell'\''o'
8
+ * ```
9
+ *
10
+ * This is why escaping a single quote in bash is not as simple as just using a backslash (\' does not work).
11
+ *
12
+ * @example "hell'o" becomes "hell'\''o"
13
+ */
14
+ export const escapeSingleQuotes = (value) => value.replace(/'/g, "'\\''");
@@ -1,5 +1 @@
1
- import { cLibcurl } from "./libcurl.js";
2
- export {
3
- cLibcurl
4
- };
5
- //# sourceMappingURL=index.js.map
1
+ export { cLibcurl } from './libcurl.js';
@@ -1,14 +1,14 @@
1
- import { libcurl } from "../../../httpsnippet-lite/targets/c/libcurl/client.js";
2
- import { convertWithHttpSnippetLite } from "../../../utils/convertWithHttpSnippetLite.js";
3
- const cLibcurl = {
4
- target: "c",
5
- client: "libcurl",
6
- title: "Libcurl",
7
- generate(request) {
8
- return convertWithHttpSnippetLite(libcurl, request);
9
- }
1
+ import { libcurl } from '../../../httpsnippet-lite/targets/c/libcurl/client.js';
2
+ import { convertWithHttpSnippetLite } from '../../../utils/convertWithHttpSnippetLite.js';
3
+ /**
4
+ * c/libcurl
5
+ */
6
+ export const cLibcurl = {
7
+ target: 'c',
8
+ client: 'libcurl',
9
+ title: 'Libcurl',
10
+ generate(request) {
11
+ // TODO: Write an own converter
12
+ return convertWithHttpSnippetLite(libcurl, request);
13
+ },
10
14
  };
11
- export {
12
- cLibcurl
13
- };
14
- //# sourceMappingURL=libcurl.js.map
@@ -1,14 +1,14 @@
1
- import { clj_http } from "../../../httpsnippet-lite/targets/clojure/clj_http/client.js";
2
- import { convertWithHttpSnippetLite } from "../../../utils/convertWithHttpSnippetLite.js";
3
- const clojureCljhttp = {
4
- target: "clojure",
5
- client: "clj_http",
6
- title: "clj-http",
7
- generate(request) {
8
- return convertWithHttpSnippetLite(clj_http, request);
9
- }
1
+ import { clj_http } from '../../../httpsnippet-lite/targets/clojure/clj_http/client.js';
2
+ import { convertWithHttpSnippetLite } from '../../../utils/convertWithHttpSnippetLite.js';
3
+ /**
4
+ * clojure/clj_http
5
+ */
6
+ export const clojureCljhttp = {
7
+ target: 'clojure',
8
+ client: 'clj_http',
9
+ title: 'clj-http',
10
+ generate(request) {
11
+ // TODO: Write an own converter
12
+ return convertWithHttpSnippetLite(clj_http, request);
13
+ },
10
14
  };
11
- export {
12
- clojureCljhttp
13
- };
14
- //# sourceMappingURL=clj_http.js.map
@@ -1,5 +1 @@
1
- import { clojureCljhttp } from "./clj_http.js";
2
- export {
3
- clojureCljhttp
4
- };
5
- //# sourceMappingURL=index.js.map
1
+ export { clojureCljhttp } from './clj_http.js';