@kattebak/openapi-generator-ts 1.0.0

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 (290) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -0
  3. package/dist/cli/commands/generate.d.ts +23 -0
  4. package/dist/cli/commands/generate.d.ts.map +1 -0
  5. package/dist/cli/commands/generate.js +116 -0
  6. package/dist/cli/commands/generate.js.map +1 -0
  7. package/dist/cli/commands/list.d.ts +2 -0
  8. package/dist/cli/commands/list.d.ts.map +1 -0
  9. package/dist/cli/commands/list.js +26 -0
  10. package/dist/cli/commands/list.js.map +1 -0
  11. package/dist/cli/commands/validate.d.ts +6 -0
  12. package/dist/cli/commands/validate.d.ts.map +1 -0
  13. package/dist/cli/commands/validate.js +80 -0
  14. package/dist/cli/commands/validate.js.map +1 -0
  15. package/dist/cli/convert-template.d.ts +31 -0
  16. package/dist/cli/convert-template.d.ts.map +1 -0
  17. package/dist/cli/convert-template.js +204 -0
  18. package/dist/cli/convert-template.js.map +1 -0
  19. package/dist/cli/convert-template.test.d.ts +2 -0
  20. package/dist/cli/convert-template.test.d.ts.map +1 -0
  21. package/dist/cli/convert-template.test.js +74 -0
  22. package/dist/cli/convert-template.test.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +246 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/core/config.d.ts +252 -0
  28. package/dist/core/config.d.ts.map +1 -0
  29. package/dist/core/config.js +31 -0
  30. package/dist/core/config.js.map +1 -0
  31. package/dist/core/generator.d.ts +99 -0
  32. package/dist/core/generator.d.ts.map +1 -0
  33. package/dist/core/generator.js +492 -0
  34. package/dist/core/generator.js.map +1 -0
  35. package/dist/core/index.d.ts +4 -0
  36. package/dist/core/index.d.ts.map +1 -0
  37. package/dist/core/index.js +4 -0
  38. package/dist/core/index.js.map +1 -0
  39. package/dist/core/types.d.ts +47 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/types.js +5 -0
  42. package/dist/core/types.js.map +1 -0
  43. package/dist/generators/generators.test.d.ts +6 -0
  44. package/dist/generators/generators.test.d.ts.map +1 -0
  45. package/dist/generators/generators.test.js +247 -0
  46. package/dist/generators/generators.test.js.map +1 -0
  47. package/dist/generators/go.d.ts +10 -0
  48. package/dist/generators/go.d.ts.map +1 -0
  49. package/dist/generators/go.js +327 -0
  50. package/dist/generators/go.js.map +1 -0
  51. package/dist/generators/index.d.ts +29 -0
  52. package/dist/generators/index.d.ts.map +1 -0
  53. package/dist/generators/index.js +58 -0
  54. package/dist/generators/index.js.map +1 -0
  55. package/dist/generators/php.d.ts +14 -0
  56. package/dist/generators/php.d.ts.map +1 -0
  57. package/dist/generators/php.js +241 -0
  58. package/dist/generators/php.js.map +1 -0
  59. package/dist/generators/python.d.ts +10 -0
  60. package/dist/generators/python.d.ts.map +1 -0
  61. package/dist/generators/python.js +273 -0
  62. package/dist/generators/python.js.map +1 -0
  63. package/dist/generators/typescript-fetch.d.ts +14 -0
  64. package/dist/generators/typescript-fetch.d.ts.map +1 -0
  65. package/dist/generators/typescript-fetch.js +217 -0
  66. package/dist/generators/typescript-fetch.js.map +1 -0
  67. package/dist/index.d.ts +14 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +16 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/models/codegen-model.d.ts +123 -0
  72. package/dist/models/codegen-model.d.ts.map +1 -0
  73. package/dist/models/codegen-model.js +64 -0
  74. package/dist/models/codegen-model.js.map +1 -0
  75. package/dist/models/codegen-model.test.d.ts +6 -0
  76. package/dist/models/codegen-model.test.d.ts.map +1 -0
  77. package/dist/models/codegen-model.test.js +143 -0
  78. package/dist/models/codegen-model.test.js.map +1 -0
  79. package/dist/models/codegen-operation.d.ts +95 -0
  80. package/dist/models/codegen-operation.d.ts.map +1 -0
  81. package/dist/models/codegen-operation.js +54 -0
  82. package/dist/models/codegen-operation.js.map +1 -0
  83. package/dist/models/codegen-parameter.d.ts +86 -0
  84. package/dist/models/codegen-parameter.d.ts.map +1 -0
  85. package/dist/models/codegen-parameter.js +47 -0
  86. package/dist/models/codegen-parameter.js.map +1 -0
  87. package/dist/models/codegen-property.d.ts +95 -0
  88. package/dist/models/codegen-property.d.ts.map +1 -0
  89. package/dist/models/codegen-property.js +47 -0
  90. package/dist/models/codegen-property.js.map +1 -0
  91. package/dist/models/codegen-response.d.ts +64 -0
  92. package/dist/models/codegen-response.d.ts.map +1 -0
  93. package/dist/models/codegen-response.js +42 -0
  94. package/dist/models/codegen-response.js.map +1 -0
  95. package/dist/models/codegen-security.d.ts +34 -0
  96. package/dist/models/codegen-security.d.ts.map +1 -0
  97. package/dist/models/codegen-security.js +18 -0
  98. package/dist/models/codegen-security.js.map +1 -0
  99. package/dist/models/index.d.ts +8 -0
  100. package/dist/models/index.d.ts.map +1 -0
  101. package/dist/models/index.js +7 -0
  102. package/dist/models/index.js.map +1 -0
  103. package/dist/parser/index.d.ts +4 -0
  104. package/dist/parser/index.d.ts.map +1 -0
  105. package/dist/parser/index.js +4 -0
  106. package/dist/parser/index.js.map +1 -0
  107. package/dist/parser/openapi-parser.d.ts +71 -0
  108. package/dist/parser/openapi-parser.d.ts.map +1 -0
  109. package/dist/parser/openapi-parser.js +195 -0
  110. package/dist/parser/openapi-parser.js.map +1 -0
  111. package/dist/parser/openapi-parser.test.d.ts +6 -0
  112. package/dist/parser/openapi-parser.test.d.ts.map +1 -0
  113. package/dist/parser/openapi-parser.test.js +238 -0
  114. package/dist/parser/openapi-parser.test.js.map +1 -0
  115. package/dist/parser/operation-transformer.d.ts +95 -0
  116. package/dist/parser/operation-transformer.d.ts.map +1 -0
  117. package/dist/parser/operation-transformer.js +634 -0
  118. package/dist/parser/operation-transformer.js.map +1 -0
  119. package/dist/parser/schema-transformer.d.ts +134 -0
  120. package/dist/parser/schema-transformer.d.ts.map +1 -0
  121. package/dist/parser/schema-transformer.js +557 -0
  122. package/dist/parser/schema-transformer.js.map +1 -0
  123. package/dist/template/engine-adapter.d.ts +55 -0
  124. package/dist/template/engine-adapter.d.ts.map +1 -0
  125. package/dist/template/engine-adapter.js +178 -0
  126. package/dist/template/engine-adapter.js.map +1 -0
  127. package/dist/template/engine-adapter.test.d.ts +6 -0
  128. package/dist/template/engine-adapter.test.d.ts.map +1 -0
  129. package/dist/template/engine-adapter.test.js +186 -0
  130. package/dist/template/engine-adapter.test.js.map +1 -0
  131. package/dist/template/index.d.ts +5 -0
  132. package/dist/template/index.d.ts.map +1 -0
  133. package/dist/template/index.js +5 -0
  134. package/dist/template/index.js.map +1 -0
  135. package/dist/template/lambdas/indent-lambdas.d.ts +40 -0
  136. package/dist/template/lambdas/indent-lambdas.d.ts.map +1 -0
  137. package/dist/template/lambdas/indent-lambdas.js +98 -0
  138. package/dist/template/lambdas/indent-lambdas.js.map +1 -0
  139. package/dist/template/lambdas/index.d.ts +44 -0
  140. package/dist/template/lambdas/index.d.ts.map +1 -0
  141. package/dist/template/lambdas/index.js +79 -0
  142. package/dist/template/lambdas/index.js.map +1 -0
  143. package/dist/template/lambdas/string-lambdas.d.ts +78 -0
  144. package/dist/template/lambdas/string-lambdas.d.ts.map +1 -0
  145. package/dist/template/lambdas/string-lambdas.js +148 -0
  146. package/dist/template/lambdas/string-lambdas.js.map +1 -0
  147. package/dist/template/lambdas/string-lambdas.test.d.ts +6 -0
  148. package/dist/template/lambdas/string-lambdas.test.d.ts.map +1 -0
  149. package/dist/template/lambdas/string-lambdas.test.js +158 -0
  150. package/dist/template/lambdas/string-lambdas.test.js.map +1 -0
  151. package/dist/template/template-locator.d.ts +72 -0
  152. package/dist/template/template-locator.d.ts.map +1 -0
  153. package/dist/template/template-locator.js +173 -0
  154. package/dist/template/template-locator.js.map +1 -0
  155. package/dist/template/template-manager.d.ts +65 -0
  156. package/dist/template/template-manager.d.ts.map +1 -0
  157. package/dist/template/template-manager.js +185 -0
  158. package/dist/template/template-manager.js.map +1 -0
  159. package/package.json +67 -0
  160. package/templates/go/.travis.yml +8 -0
  161. package/templates/go/README.mustache +236 -0
  162. package/templates/go/api.mustache +452 -0
  163. package/templates/go/api_doc.mustache +92 -0
  164. package/templates/go/api_test.mustache +59 -0
  165. package/templates/go/client.mustache +761 -0
  166. package/templates/go/configuration.mustache +332 -0
  167. package/templates/go/git_push.sh.mustache +57 -0
  168. package/templates/go/gitignore.mustache +24 -0
  169. package/templates/go/go.mod.mustache +16 -0
  170. package/templates/go/go.sum.mustache +19 -0
  171. package/templates/go/model.mustache +21 -0
  172. package/templates/go/model_anyof.mustache +93 -0
  173. package/templates/go/model_doc.mustache +97 -0
  174. package/templates/go/model_enum.mustache +101 -0
  175. package/templates/go/model_oneof.mustache +160 -0
  176. package/templates/go/model_simple.mustache +572 -0
  177. package/templates/go/nullable_model.mustache +35 -0
  178. package/templates/go/openapi.mustache +1 -0
  179. package/templates/go/partial_header.mustache +18 -0
  180. package/templates/go/response.mustache +38 -0
  181. package/templates/go/signing.mustache +453 -0
  182. package/templates/go/utils.mustache +352 -0
  183. package/templates/php/.php-cs-fixer.dist.php +29 -0
  184. package/templates/php/.travis.yml +8 -0
  185. package/templates/php/ApiException.mustache +111 -0
  186. package/templates/php/Configuration.mustache +606 -0
  187. package/templates/php/FormDataProcessor.mustache +238 -0
  188. package/templates/php/HeaderSelector.mustache +265 -0
  189. package/templates/php/ModelInterface.mustache +103 -0
  190. package/templates/php/ObjectSerializer.mustache +591 -0
  191. package/templates/php/README.mustache +151 -0
  192. package/templates/php/api.mustache +891 -0
  193. package/templates/php/api_doc.mustache +105 -0
  194. package/templates/php/api_test.mustache +80 -0
  195. package/templates/php/composer.mustache +44 -0
  196. package/templates/php/git_push.sh.mustache +57 -0
  197. package/templates/php/gitignore +15 -0
  198. package/templates/php/libraries/psr-18/ApiException.mustache +114 -0
  199. package/templates/php/libraries/psr-18/DebugPlugin.mustache +93 -0
  200. package/templates/php/libraries/psr-18/README.mustache +161 -0
  201. package/templates/php/libraries/psr-18/api.mustache +833 -0
  202. package/templates/php/libraries/psr-18/api_doc.mustache +79 -0
  203. package/templates/php/libraries/psr-18/composer.mustache +56 -0
  204. package/templates/php/model.mustache +47 -0
  205. package/templates/php/model_doc.mustache +10 -0
  206. package/templates/php/model_enum.mustache +33 -0
  207. package/templates/php/model_generic.mustache +565 -0
  208. package/templates/php/model_test.mustache +88 -0
  209. package/templates/php/partial_header.mustache +18 -0
  210. package/templates/php/php_doc_auth_partial.mustache +23 -0
  211. package/templates/php/phpunit.xml.mustache +18 -0
  212. package/templates/python/README.mustache +60 -0
  213. package/templates/python/README_onlypackage.mustache +50 -0
  214. package/templates/python/__init__.mustache +1 -0
  215. package/templates/python/__init__api.mustache +19 -0
  216. package/templates/python/__init__model.mustache +22 -0
  217. package/templates/python/__init__package.mustache +49 -0
  218. package/templates/python/api.mustache +244 -0
  219. package/templates/python/api_client.mustache +822 -0
  220. package/templates/python/api_doc.mustache +81 -0
  221. package/templates/python/api_doc_example.mustache +38 -0
  222. package/templates/python/api_response.mustache +21 -0
  223. package/templates/python/api_test.mustache +48 -0
  224. package/templates/python/asyncio/rest.mustache +209 -0
  225. package/templates/python/common_README.mustache +85 -0
  226. package/templates/python/configuration.mustache +806 -0
  227. package/templates/python/exceptions.mustache +210 -0
  228. package/templates/python/exports_api.mustache +3 -0
  229. package/templates/python/exports_model.mustache +3 -0
  230. package/templates/python/exports_package.mustache +20 -0
  231. package/templates/python/git_push.sh.mustache +57 -0
  232. package/templates/python/github-workflow.mustache +35 -0
  233. package/templates/python/gitignore.mustache +66 -0
  234. package/templates/python/gitlab-ci.mustache +31 -0
  235. package/templates/python/httpx/rest.mustache +190 -0
  236. package/templates/python/model.mustache +16 -0
  237. package/templates/python/model_anyof.mustache +182 -0
  238. package/templates/python/model_doc.mustache +40 -0
  239. package/templates/python/model_enum.mustache +36 -0
  240. package/templates/python/model_generic.mustache +403 -0
  241. package/templates/python/model_oneof.mustache +209 -0
  242. package/templates/python/model_test.mustache +60 -0
  243. package/templates/python/partial_api.mustache +52 -0
  244. package/templates/python/partial_api_args.mustache +18 -0
  245. package/templates/python/partial_header.mustache +19 -0
  246. package/templates/python/py.typed.mustache +1 -0
  247. package/templates/python/pyproject.mustache +172 -0
  248. package/templates/python/python_doc_auth_partial.mustache +108 -0
  249. package/templates/python/requirements.mustache +23 -0
  250. package/templates/python/rest.mustache +254 -0
  251. package/templates/python/setup.mustache +60 -0
  252. package/templates/python/setup_cfg.mustache +2 -0
  253. package/templates/python/signing.mustache +422 -0
  254. package/templates/python/test-requirements.mustache +6 -0
  255. package/templates/python/tornado/rest.mustache +148 -0
  256. package/templates/python/tox.mustache +9 -0
  257. package/templates/python/travis.mustache +17 -0
  258. package/templates/typescript-fetch/ApiEntitiesRecord.mustache +26 -0
  259. package/templates/typescript-fetch/ApiEntitiesReducer.mustache +21 -0
  260. package/templates/typescript-fetch/ApiEntitiesSelectors.mustache +5 -0
  261. package/templates/typescript-fetch/README.mustache +127 -0
  262. package/templates/typescript-fetch/allSagas.mustache +19 -0
  263. package/templates/typescript-fetch/api_doc.mustache +63 -0
  264. package/templates/typescript-fetch/api_example.mustache +44 -0
  265. package/templates/typescript-fetch/apis.index.mustache +16 -0
  266. package/templates/typescript-fetch/apis.mustache +483 -0
  267. package/templates/typescript-fetch/apisAssignQueryParam.mustache +12 -0
  268. package/templates/typescript-fetch/gitignore +4 -0
  269. package/templates/typescript-fetch/index.mustache +17 -0
  270. package/templates/typescript-fetch/licenseInfo.mustache +11 -0
  271. package/templates/typescript-fetch/modelEnum.mustache +28 -0
  272. package/templates/typescript-fetch/modelEnumInterfaces.mustache +37 -0
  273. package/templates/typescript-fetch/modelGeneric.mustache +261 -0
  274. package/templates/typescript-fetch/modelGenericInterfaces.mustache +50 -0
  275. package/templates/typescript-fetch/modelOneOf.mustache +255 -0
  276. package/templates/typescript-fetch/modelOneOfInterfaces.mustache +6 -0
  277. package/templates/typescript-fetch/model_doc.mustache +41 -0
  278. package/templates/typescript-fetch/models.index.mustache +32 -0
  279. package/templates/typescript-fetch/models.mustache +24 -0
  280. package/templates/typescript-fetch/npmignore.mustache +1 -0
  281. package/templates/typescript-fetch/package.mustache +43 -0
  282. package/templates/typescript-fetch/recordGeneric.mustache +295 -0
  283. package/templates/typescript-fetch/records.mustache +17 -0
  284. package/templates/typescript-fetch/runtime.mustache +424 -0
  285. package/templates/typescript-fetch/runtimeSagasAndRecords.mustache +120 -0
  286. package/templates/typescript-fetch/sagaApiManager.mustache +28 -0
  287. package/templates/typescript-fetch/sagas.mustache +245 -0
  288. package/templates/typescript-fetch/sourceLibraryIndex.mustache +1 -0
  289. package/templates/typescript-fetch/tsconfig.esm.mustache +7 -0
  290. package/templates/typescript-fetch/tsconfig.mustache +25 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Indentation lambdas for templates
3
+ */
4
+ /**
5
+ * Indent text by specified number of spaces
6
+ */
7
+ export function indent(text, spaces) {
8
+ const indentation = " ".repeat(spaces);
9
+ return text
10
+ .split("\n")
11
+ .map((line, index) => (index === 0 ? line : indentation + line))
12
+ .join("\n");
13
+ }
14
+ /**
15
+ * Indent all lines including the first line
16
+ */
17
+ export function indentAll(text, spaces) {
18
+ const indentation = " ".repeat(spaces);
19
+ return text
20
+ .split("\n")
21
+ .map((line) => indentation + line)
22
+ .join("\n");
23
+ }
24
+ /**
25
+ * Indent with tabs
26
+ */
27
+ export function indentTab(text, tabs) {
28
+ const indentation = "\t".repeat(tabs);
29
+ return text
30
+ .split("\n")
31
+ .map((line, index) => (index === 0 ? line : indentation + line))
32
+ .join("\n");
33
+ }
34
+ /**
35
+ * Trim leading and trailing whitespace
36
+ */
37
+ export function trimWhitespace(text) {
38
+ return text.trim();
39
+ }
40
+ /**
41
+ * Trim trailing whitespace only
42
+ */
43
+ export function trimTrailingWhitespace(text) {
44
+ return text
45
+ .split("\n")
46
+ .map((line) => line.trimEnd())
47
+ .join("\n");
48
+ }
49
+ /**
50
+ * Trim multiple consecutive line breaks to single
51
+ */
52
+ export function trimLineBreaks(text) {
53
+ return text.replace(/\n\n+/g, "\n");
54
+ }
55
+ /**
56
+ * Remove all line breaks
57
+ */
58
+ export function removeLineBreaks(text) {
59
+ return text.replace(/\n/g, "");
60
+ }
61
+ /**
62
+ * Collapse multiple spaces to single space
63
+ */
64
+ export function collapseSpaces(text) {
65
+ return text.replace(/ +/g, " ");
66
+ }
67
+ /**
68
+ * Create indentation lambdas with common preset values
69
+ */
70
+ export function createIndentLambdas() {
71
+ return {
72
+ // Standard indentation (4 spaces)
73
+ indented: (text) => indent(text, 4),
74
+ indented_4: (text) => indent(text, 4),
75
+ indented_8: (text) => indent(text, 8),
76
+ indented_12: (text) => indent(text, 12),
77
+ indented_16: (text) => indent(text, 16),
78
+ // 2-space indentation (common in JS/TS)
79
+ indented_2: (text) => indent(text, 2),
80
+ indented_6: (text) => indent(text, 6),
81
+ indented_10: (text) => indent(text, 10),
82
+ // Tab-based indentation
83
+ indented_tab: (text) => indentTab(text, 1),
84
+ indented_tab_2: (text) => indentTab(text, 2),
85
+ // All lines indentation
86
+ indented_all_4: (text) => indentAll(text, 4),
87
+ indented_all_8: (text) => indentAll(text, 8),
88
+ // Whitespace manipulation
89
+ trimWhitespace,
90
+ trim: trimWhitespace,
91
+ trimTrailingWhitespace,
92
+ trimTrailing: trimTrailingWhitespace,
93
+ trimLineBreaks,
94
+ removeLineBreaks,
95
+ collapseSpaces,
96
+ };
97
+ }
98
+ //# sourceMappingURL=indent-lambdas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indent-lambdas.js","sourceRoot":"","sources":["../../../src/template/lambdas/indent-lambdas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Lambda functions for template processing
3
+ * These are registered as Handlebars helpers
4
+ */
5
+ export * from "./indent-lambdas.js";
6
+ export * from "./string-lambdas.js";
7
+ /**
8
+ * Special purpose lambdas
9
+ */
10
+ /**
11
+ * Join array elements with separator
12
+ */
13
+ export declare function joinWithComma(items: unknown[]): string;
14
+ /**
15
+ * Join array elements with newlines
16
+ */
17
+ export declare function joinWithNewline(items: unknown[]): string;
18
+ /**
19
+ * Check if array/object is not empty
20
+ */
21
+ export declare function hasItems(value: unknown): boolean;
22
+ /**
23
+ * Get the first item of an array
24
+ */
25
+ export declare function first<T>(items: T[]): T | undefined;
26
+ /**
27
+ * Get the last item of an array
28
+ */
29
+ export declare function last<T>(items: T[]): T | undefined;
30
+ /**
31
+ * Required parameter lambda - removes trailing '?' from optional params
32
+ * Matches Java's RequiredParameterLambda behavior
33
+ */
34
+ export declare function requiredParameter(text: string): string;
35
+ /**
36
+ * Optional parameter lambda - adds trailing '?' if not present
37
+ */
38
+ export declare function optionalParameter(text: string): string;
39
+ export type LambdaFunction = (...args: any[]) => unknown;
40
+ /**
41
+ * Create all lambda functions for template registration
42
+ */
43
+ export declare function createAllLambdas(): Record<string, LambdaFunction>;
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/lambdas/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQhD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAElD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAEjD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAEzD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAejE"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Lambda functions for template processing
3
+ * These are registered as Handlebars helpers
4
+ */
5
+ import { createIndentLambdas } from "./indent-lambdas.js";
6
+ import { createStringLambdas } from "./string-lambdas.js";
7
+ export * from "./indent-lambdas.js";
8
+ export * from "./string-lambdas.js";
9
+ /**
10
+ * Special purpose lambdas
11
+ */
12
+ /**
13
+ * Join array elements with separator
14
+ */
15
+ export function joinWithComma(items) {
16
+ return items.map(String).join(", ");
17
+ }
18
+ /**
19
+ * Join array elements with newlines
20
+ */
21
+ export function joinWithNewline(items) {
22
+ return items.map(String).join("\n");
23
+ }
24
+ /**
25
+ * Check if array/object is not empty
26
+ */
27
+ export function hasItems(value) {
28
+ if (Array.isArray(value)) {
29
+ return value.length > 0;
30
+ }
31
+ if (typeof value === "object" && value !== null) {
32
+ return Object.keys(value).length > 0;
33
+ }
34
+ return false;
35
+ }
36
+ /**
37
+ * Get the first item of an array
38
+ */
39
+ export function first(items) {
40
+ return items[0];
41
+ }
42
+ /**
43
+ * Get the last item of an array
44
+ */
45
+ export function last(items) {
46
+ return items[items.length - 1];
47
+ }
48
+ /**
49
+ * Required parameter lambda - removes trailing '?' from optional params
50
+ * Matches Java's RequiredParameterLambda behavior
51
+ */
52
+ export function requiredParameter(text) {
53
+ return text.endsWith("?") ? text.slice(0, -1) : text;
54
+ }
55
+ /**
56
+ * Optional parameter lambda - adds trailing '?' if not present
57
+ */
58
+ export function optionalParameter(text) {
59
+ return text.endsWith("?") ? text : `${text}?`;
60
+ }
61
+ /**
62
+ * Create all lambda functions for template registration
63
+ */
64
+ export function createAllLambdas() {
65
+ const stringLambdas = createStringLambdas();
66
+ const indentLambdas = createIndentLambdas();
67
+ return {
68
+ ...stringLambdas,
69
+ ...indentLambdas,
70
+ joinWithComma: joinWithComma,
71
+ joinWithNewline: joinWithNewline,
72
+ hasItems: hasItems,
73
+ first: first,
74
+ last: last,
75
+ requiredParameter: requiredParameter,
76
+ optionalParameter: optionalParameter,
77
+ };
78
+ }
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/template/lambdas/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAI,KAAU;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAI,KAAU;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;AAC/C,CAAC;AAKD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAE5C,OAAO;QACN,GAAG,aAAa;QAChB,GAAG,aAAa;QAChB,aAAa,EAAE,aAA+B;QAC9C,eAAe,EAAE,eAAiC;QAClD,QAAQ,EAAE,QAA0B;QACpC,KAAK,EAAE,KAAuB;QAC9B,IAAI,EAAE,IAAsB;QAC5B,iBAAiB,EAAE,iBAAmC;QACtD,iBAAiB,EAAE,iBAAmC;KACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Convert string to lowercase
3
+ */
4
+ export declare function lowercase(text: string): string;
5
+ /**
6
+ * Convert string to UPPERCASE
7
+ */
8
+ export declare function uppercase(text: string): string;
9
+ /**
10
+ * Convert string to camelCase
11
+ */
12
+ export declare function camelcase(text: string): string;
13
+ /**
14
+ * Convert string to PascalCase
15
+ */
16
+ export declare function pascalcase(text: string): string;
17
+ /**
18
+ * Convert string to snake_case
19
+ */
20
+ export declare function snakecase(text: string): string;
21
+ /**
22
+ * Convert string to SCREAMING_SNAKE_CASE
23
+ */
24
+ export declare function screamingSnakecase(text: string): string;
25
+ /**
26
+ * Convert string to kebab-case
27
+ */
28
+ export declare function kebabcase(text: string): string;
29
+ /**
30
+ * Convert string to Title Case
31
+ */
32
+ export declare function titlecase(text: string): string;
33
+ /**
34
+ * Capitalize first letter
35
+ */
36
+ export declare function capitalizeFirst(text: string): string;
37
+ /**
38
+ * Lowercase first letter
39
+ */
40
+ export declare function lowercaseFirst(text: string): string;
41
+ /**
42
+ * Convert camelCase to words separated by spaces
43
+ * e.g., "camelCaseText" -> "camel Case Text"
44
+ */
45
+ export declare function uncamelize(text: string): string;
46
+ /**
47
+ * Remove specific characters from text
48
+ */
49
+ export declare function removeSpecialChars(text: string): string;
50
+ /**
51
+ * Double quote the text
52
+ */
53
+ export declare function doublequote(text: string): string;
54
+ /**
55
+ * Single quote the text
56
+ */
57
+ export declare function singlequote(text: string): string;
58
+ /**
59
+ * Escape double quotes in text
60
+ */
61
+ export declare function escapeDoubleQuotes(text: string): string;
62
+ /**
63
+ * Escape single quotes in text
64
+ */
65
+ export declare function escapeSingleQuotes(text: string): string;
66
+ /**
67
+ * Replace backslashes with forward slashes
68
+ */
69
+ export declare function forwardslash(text: string): string;
70
+ /**
71
+ * Replace forward slashes with backslashes
72
+ */
73
+ export declare function backslash(text: string): string;
74
+ /**
75
+ * Create all string lambdas
76
+ */
77
+ export declare function createStringLambdas(): Record<string, (text: string) => string>;
78
+ //# sourceMappingURL=string-lambdas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-lambdas.d.ts","sourceRoot":"","sources":["../../../src/template/lambdas/string-lambdas.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAC5C,MAAM,EACN,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CACxB,CA2BA"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * String transformation lambdas for templates
3
+ * These map to the Java Mustache lambdas in the original implementation
4
+ */
5
+ import { camelCase, capitalize, kebabCase, pascalCase, snakeCase, startCase, } from "es-toolkit/string";
6
+ /**
7
+ * Convert string to lowercase
8
+ */
9
+ export function lowercase(text) {
10
+ return text.toLowerCase();
11
+ }
12
+ /**
13
+ * Convert string to UPPERCASE
14
+ */
15
+ export function uppercase(text) {
16
+ return text.toUpperCase();
17
+ }
18
+ /**
19
+ * Convert string to camelCase
20
+ */
21
+ export function camelcase(text) {
22
+ return camelCase(text);
23
+ }
24
+ /**
25
+ * Convert string to PascalCase
26
+ */
27
+ export function pascalcase(text) {
28
+ return pascalCase(text);
29
+ }
30
+ /**
31
+ * Convert string to snake_case
32
+ */
33
+ export function snakecase(text) {
34
+ return snakeCase(text);
35
+ }
36
+ /**
37
+ * Convert string to SCREAMING_SNAKE_CASE
38
+ */
39
+ export function screamingSnakecase(text) {
40
+ return snakeCase(text).toUpperCase();
41
+ }
42
+ /**
43
+ * Convert string to kebab-case
44
+ */
45
+ export function kebabcase(text) {
46
+ return kebabCase(text);
47
+ }
48
+ /**
49
+ * Convert string to Title Case
50
+ */
51
+ export function titlecase(text) {
52
+ return startCase(text);
53
+ }
54
+ /**
55
+ * Capitalize first letter
56
+ */
57
+ export function capitalizeFirst(text) {
58
+ return capitalize(text);
59
+ }
60
+ /**
61
+ * Lowercase first letter
62
+ */
63
+ export function lowercaseFirst(text) {
64
+ if (text.length === 0)
65
+ return text;
66
+ return text.charAt(0).toLowerCase() + text.slice(1);
67
+ }
68
+ /**
69
+ * Convert camelCase to words separated by spaces
70
+ * e.g., "camelCaseText" -> "camel Case Text"
71
+ */
72
+ export function uncamelize(text) {
73
+ return text.replace(/([a-z])([A-Z])/g, "$1 $2");
74
+ }
75
+ /**
76
+ * Remove specific characters from text
77
+ */
78
+ export function removeSpecialChars(text) {
79
+ return text.replace(/[^a-zA-Z0-9_]/g, "");
80
+ }
81
+ /**
82
+ * Double quote the text
83
+ */
84
+ export function doublequote(text) {
85
+ return `"${text}"`;
86
+ }
87
+ /**
88
+ * Single quote the text
89
+ */
90
+ export function singlequote(text) {
91
+ return `'${text}'`;
92
+ }
93
+ /**
94
+ * Escape double quotes in text
95
+ */
96
+ export function escapeDoubleQuotes(text) {
97
+ return text.replace(/"/g, '\\"');
98
+ }
99
+ /**
100
+ * Escape single quotes in text
101
+ */
102
+ export function escapeSingleQuotes(text) {
103
+ return text.replace(/'/g, "\\'");
104
+ }
105
+ /**
106
+ * Replace backslashes with forward slashes
107
+ */
108
+ export function forwardslash(text) {
109
+ return text.replace(/\\/g, "/");
110
+ }
111
+ /**
112
+ * Replace forward slashes with backslashes
113
+ */
114
+ export function backslash(text) {
115
+ return text.replace(/\//g, "\\");
116
+ }
117
+ /**
118
+ * Create all string lambdas
119
+ */
120
+ export function createStringLambdas() {
121
+ return {
122
+ lowercase,
123
+ uppercase,
124
+ camelcase,
125
+ camelCase: camelcase,
126
+ pascalcase,
127
+ pascalCase: pascalcase,
128
+ snakecase,
129
+ snake_case: snakecase,
130
+ screamingSnakecase,
131
+ screaming_snake_case: screamingSnakecase,
132
+ kebabcase,
133
+ "kebab-case": kebabcase,
134
+ titlecase,
135
+ titleCase: titlecase,
136
+ capitalizeFirst,
137
+ lowercaseFirst,
138
+ uncamelize,
139
+ removeSpecialChars,
140
+ doublequote,
141
+ singlequote,
142
+ escapeDoubleQuotes,
143
+ escapeSingleQuotes,
144
+ forwardslash,
145
+ backslash,
146
+ };
147
+ }
148
+ //# sourceMappingURL=string-lambdas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-lambdas.js","sourceRoot":"","sources":["../../../src/template/lambdas/string-lambdas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * String lambda tests
3
+ * Tests for string transformation functions
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=string-lambdas.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-lambdas.test.d.ts","sourceRoot":"","sources":["../../../src/template/lambdas/string-lambdas.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * String lambda tests
3
+ * Tests for string transformation functions
4
+ */
5
+ import assert from "node:assert";
6
+ import { describe, it } from "node:test";
7
+ import { backslash, camelcase, capitalizeFirst, createStringLambdas, doublequote, escapeDoubleQuotes, escapeSingleQuotes, forwardslash, kebabcase, lowercase, lowercaseFirst, pascalcase, removeSpecialChars, screamingSnakecase, singlequote, snakecase, titlecase, uncamelize, uppercase, } from "./string-lambdas.js";
8
+ describe("String Lambdas", () => {
9
+ describe("lowercase", () => {
10
+ it("should convert to lowercase", () => {
11
+ assert.strictEqual(lowercase("HELLO"), "hello");
12
+ assert.strictEqual(lowercase("Hello World"), "hello world");
13
+ assert.strictEqual(lowercase("already lowercase"), "already lowercase");
14
+ });
15
+ });
16
+ describe("uppercase", () => {
17
+ it("should convert to uppercase", () => {
18
+ assert.strictEqual(uppercase("hello"), "HELLO");
19
+ assert.strictEqual(uppercase("Hello World"), "HELLO WORLD");
20
+ assert.strictEqual(uppercase("ALREADY UPPERCASE"), "ALREADY UPPERCASE");
21
+ });
22
+ });
23
+ describe("camelcase", () => {
24
+ it("should convert to camelCase", () => {
25
+ assert.strictEqual(camelcase("hello_world"), "helloWorld");
26
+ assert.strictEqual(camelcase("hello-world"), "helloWorld");
27
+ assert.strictEqual(camelcase("HelloWorld"), "helloWorld");
28
+ assert.strictEqual(camelcase("HELLO_WORLD"), "helloWorld");
29
+ });
30
+ });
31
+ describe("pascalcase", () => {
32
+ it("should convert to PascalCase", () => {
33
+ assert.strictEqual(pascalcase("hello_world"), "HelloWorld");
34
+ assert.strictEqual(pascalcase("hello-world"), "HelloWorld");
35
+ assert.strictEqual(pascalcase("helloWorld"), "HelloWorld");
36
+ assert.strictEqual(pascalcase("HELLO_WORLD"), "HelloWorld");
37
+ });
38
+ });
39
+ describe("snakecase", () => {
40
+ it("should convert to snake_case", () => {
41
+ assert.strictEqual(snakecase("helloWorld"), "hello_world");
42
+ assert.strictEqual(snakecase("HelloWorld"), "hello_world");
43
+ assert.strictEqual(snakecase("hello-world"), "hello_world");
44
+ assert.strictEqual(snakecase("HELLO_WORLD"), "hello_world");
45
+ });
46
+ });
47
+ describe("screamingSnakecase", () => {
48
+ it("should convert to SCREAMING_SNAKE_CASE", () => {
49
+ assert.strictEqual(screamingSnakecase("helloWorld"), "HELLO_WORLD");
50
+ assert.strictEqual(screamingSnakecase("HelloWorld"), "HELLO_WORLD");
51
+ assert.strictEqual(screamingSnakecase("hello-world"), "HELLO_WORLD");
52
+ assert.strictEqual(screamingSnakecase("hello_world"), "HELLO_WORLD");
53
+ });
54
+ });
55
+ describe("kebabcase", () => {
56
+ it("should convert to kebab-case", () => {
57
+ assert.strictEqual(kebabcase("helloWorld"), "hello-world");
58
+ assert.strictEqual(kebabcase("HelloWorld"), "hello-world");
59
+ assert.strictEqual(kebabcase("hello_world"), "hello-world");
60
+ assert.strictEqual(kebabcase("HELLO_WORLD"), "hello-world");
61
+ });
62
+ });
63
+ describe("titlecase", () => {
64
+ it("should convert to Title Case", () => {
65
+ assert.strictEqual(titlecase("helloWorld"), "Hello World");
66
+ assert.strictEqual(titlecase("hello_world"), "Hello World");
67
+ });
68
+ });
69
+ describe("capitalizeFirst", () => {
70
+ it("should capitalize first letter", () => {
71
+ assert.strictEqual(capitalizeFirst("hello"), "Hello");
72
+ assert.strictEqual(capitalizeFirst("HELLO"), "Hello");
73
+ assert.strictEqual(capitalizeFirst("hello world"), "Hello world");
74
+ });
75
+ });
76
+ describe("lowercaseFirst", () => {
77
+ it("should lowercase first letter", () => {
78
+ assert.strictEqual(lowercaseFirst("Hello"), "hello");
79
+ assert.strictEqual(lowercaseFirst("HELLO"), "hELLO");
80
+ assert.strictEqual(lowercaseFirst("Hello World"), "hello World");
81
+ });
82
+ it("should handle empty string", () => {
83
+ assert.strictEqual(lowercaseFirst(""), "");
84
+ });
85
+ });
86
+ describe("uncamelize", () => {
87
+ it("should separate camelCase words with spaces", () => {
88
+ assert.strictEqual(uncamelize("camelCaseText"), "camel Case Text");
89
+ assert.strictEqual(uncamelize("HelloWorld"), "Hello World");
90
+ });
91
+ });
92
+ describe("removeSpecialChars", () => {
93
+ it("should remove special characters", () => {
94
+ assert.strictEqual(removeSpecialChars("hello-world"), "helloworld");
95
+ assert.strictEqual(removeSpecialChars("hello@world!"), "helloworld");
96
+ assert.strictEqual(removeSpecialChars("hello_world123"), "hello_world123");
97
+ });
98
+ });
99
+ describe("doublequote", () => {
100
+ it("should wrap text in double quotes", () => {
101
+ assert.strictEqual(doublequote("hello"), '"hello"');
102
+ assert.strictEqual(doublequote("hello world"), '"hello world"');
103
+ });
104
+ });
105
+ describe("singlequote", () => {
106
+ it("should wrap text in single quotes", () => {
107
+ assert.strictEqual(singlequote("hello"), "'hello'");
108
+ assert.strictEqual(singlequote("hello world"), "'hello world'");
109
+ });
110
+ });
111
+ describe("escapeDoubleQuotes", () => {
112
+ it("should escape double quotes", () => {
113
+ assert.strictEqual(escapeDoubleQuotes('say "hello"'), 'say \\"hello\\"');
114
+ assert.strictEqual(escapeDoubleQuotes("no quotes"), "no quotes");
115
+ });
116
+ });
117
+ describe("escapeSingleQuotes", () => {
118
+ it("should escape single quotes", () => {
119
+ assert.strictEqual(escapeSingleQuotes("it's"), "it\\'s");
120
+ assert.strictEqual(escapeSingleQuotes("no quotes"), "no quotes");
121
+ });
122
+ });
123
+ describe("forwardslash", () => {
124
+ it("should replace backslashes with forward slashes", () => {
125
+ assert.strictEqual(forwardslash("path\\to\\file"), "path/to/file");
126
+ assert.strictEqual(forwardslash("no/backslashes"), "no/backslashes");
127
+ });
128
+ });
129
+ describe("backslash", () => {
130
+ it("should replace forward slashes with backslashes", () => {
131
+ assert.strictEqual(backslash("path/to/file"), "path\\to\\file");
132
+ assert.strictEqual(backslash("no\\forward\\slashes"), "no\\forward\\slashes");
133
+ });
134
+ });
135
+ describe("createStringLambdas", () => {
136
+ it("should return all lambda functions", () => {
137
+ const lambdas = createStringLambdas();
138
+ assert.ok(typeof lambdas.lowercase === "function");
139
+ assert.ok(typeof lambdas.uppercase === "function");
140
+ assert.ok(typeof lambdas.camelcase === "function");
141
+ assert.ok(typeof lambdas.camelCase === "function");
142
+ assert.ok(typeof lambdas.pascalcase === "function");
143
+ assert.ok(typeof lambdas.pascalCase === "function");
144
+ assert.ok(typeof lambdas.snakecase === "function");
145
+ assert.ok(typeof lambdas.snake_case === "function");
146
+ assert.ok(typeof lambdas.kebabcase === "function");
147
+ assert.ok(typeof lambdas["kebab-case"] === "function");
148
+ });
149
+ it("should have alias functions that work correctly", () => {
150
+ const lambdas = createStringLambdas();
151
+ // Test that aliases work the same as originals
152
+ assert.strictEqual(lambdas.camelcase("hello_world"), lambdas.camelCase("hello_world"));
153
+ assert.strictEqual(lambdas.pascalcase("hello_world"), lambdas.pascalCase("hello_world"));
154
+ assert.strictEqual(lambdas.snakecase("helloWorld"), lambdas.snake_case("helloWorld"));
155
+ });
156
+ });
157
+ });
158
+ //# sourceMappingURL=string-lambdas.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-lambdas.test.js","sourceRoot":"","sources":["../../../src/template/lambdas/string-lambdas.test.ts"],"names":[],"mappings":"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"}