@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.
- package/LICENSE +21 -0
- package/README.md +189 -0
- package/dist/cli/commands/generate.d.ts +23 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +116 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +26 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +6 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +80 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/convert-template.d.ts +31 -0
- package/dist/cli/convert-template.d.ts.map +1 -0
- package/dist/cli/convert-template.js +204 -0
- package/dist/cli/convert-template.js.map +1 -0
- package/dist/cli/convert-template.test.d.ts +2 -0
- package/dist/cli/convert-template.test.d.ts.map +1 -0
- package/dist/cli/convert-template.test.js +74 -0
- package/dist/cli/convert-template.test.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +246 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/config.d.ts +252 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +31 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/generator.d.ts +99 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/generator.js +492 -0
- package/dist/core/generator.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +47 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/generators/generators.test.d.ts +6 -0
- package/dist/generators/generators.test.d.ts.map +1 -0
- package/dist/generators/generators.test.js +247 -0
- package/dist/generators/generators.test.js.map +1 -0
- package/dist/generators/go.d.ts +10 -0
- package/dist/generators/go.d.ts.map +1 -0
- package/dist/generators/go.js +327 -0
- package/dist/generators/go.js.map +1 -0
- package/dist/generators/index.d.ts +29 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +58 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/php.d.ts +14 -0
- package/dist/generators/php.d.ts.map +1 -0
- package/dist/generators/php.js +241 -0
- package/dist/generators/php.js.map +1 -0
- package/dist/generators/python.d.ts +10 -0
- package/dist/generators/python.d.ts.map +1 -0
- package/dist/generators/python.js +273 -0
- package/dist/generators/python.js.map +1 -0
- package/dist/generators/typescript-fetch.d.ts +14 -0
- package/dist/generators/typescript-fetch.d.ts.map +1 -0
- package/dist/generators/typescript-fetch.js +217 -0
- package/dist/generators/typescript-fetch.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/models/codegen-model.d.ts +123 -0
- package/dist/models/codegen-model.d.ts.map +1 -0
- package/dist/models/codegen-model.js +64 -0
- package/dist/models/codegen-model.js.map +1 -0
- package/dist/models/codegen-model.test.d.ts +6 -0
- package/dist/models/codegen-model.test.d.ts.map +1 -0
- package/dist/models/codegen-model.test.js +143 -0
- package/dist/models/codegen-model.test.js.map +1 -0
- package/dist/models/codegen-operation.d.ts +95 -0
- package/dist/models/codegen-operation.d.ts.map +1 -0
- package/dist/models/codegen-operation.js +54 -0
- package/dist/models/codegen-operation.js.map +1 -0
- package/dist/models/codegen-parameter.d.ts +86 -0
- package/dist/models/codegen-parameter.d.ts.map +1 -0
- package/dist/models/codegen-parameter.js +47 -0
- package/dist/models/codegen-parameter.js.map +1 -0
- package/dist/models/codegen-property.d.ts +95 -0
- package/dist/models/codegen-property.d.ts.map +1 -0
- package/dist/models/codegen-property.js +47 -0
- package/dist/models/codegen-property.js.map +1 -0
- package/dist/models/codegen-response.d.ts +64 -0
- package/dist/models/codegen-response.d.ts.map +1 -0
- package/dist/models/codegen-response.js +42 -0
- package/dist/models/codegen-response.js.map +1 -0
- package/dist/models/codegen-security.d.ts +34 -0
- package/dist/models/codegen-security.d.ts.map +1 -0
- package/dist/models/codegen-security.js +18 -0
- package/dist/models/codegen-security.js.map +1 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +7 -0
- package/dist/models/index.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +4 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/openapi-parser.d.ts +71 -0
- package/dist/parser/openapi-parser.d.ts.map +1 -0
- package/dist/parser/openapi-parser.js +195 -0
- package/dist/parser/openapi-parser.js.map +1 -0
- package/dist/parser/openapi-parser.test.d.ts +6 -0
- package/dist/parser/openapi-parser.test.d.ts.map +1 -0
- package/dist/parser/openapi-parser.test.js +238 -0
- package/dist/parser/openapi-parser.test.js.map +1 -0
- package/dist/parser/operation-transformer.d.ts +95 -0
- package/dist/parser/operation-transformer.d.ts.map +1 -0
- package/dist/parser/operation-transformer.js +634 -0
- package/dist/parser/operation-transformer.js.map +1 -0
- package/dist/parser/schema-transformer.d.ts +134 -0
- package/dist/parser/schema-transformer.d.ts.map +1 -0
- package/dist/parser/schema-transformer.js +557 -0
- package/dist/parser/schema-transformer.js.map +1 -0
- package/dist/template/engine-adapter.d.ts +55 -0
- package/dist/template/engine-adapter.d.ts.map +1 -0
- package/dist/template/engine-adapter.js +178 -0
- package/dist/template/engine-adapter.js.map +1 -0
- package/dist/template/engine-adapter.test.d.ts +6 -0
- package/dist/template/engine-adapter.test.d.ts.map +1 -0
- package/dist/template/engine-adapter.test.js +186 -0
- package/dist/template/engine-adapter.test.js.map +1 -0
- package/dist/template/index.d.ts +5 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js +5 -0
- package/dist/template/index.js.map +1 -0
- package/dist/template/lambdas/indent-lambdas.d.ts +40 -0
- package/dist/template/lambdas/indent-lambdas.d.ts.map +1 -0
- package/dist/template/lambdas/indent-lambdas.js +98 -0
- package/dist/template/lambdas/indent-lambdas.js.map +1 -0
- package/dist/template/lambdas/index.d.ts +44 -0
- package/dist/template/lambdas/index.d.ts.map +1 -0
- package/dist/template/lambdas/index.js +79 -0
- package/dist/template/lambdas/index.js.map +1 -0
- package/dist/template/lambdas/string-lambdas.d.ts +78 -0
- package/dist/template/lambdas/string-lambdas.d.ts.map +1 -0
- package/dist/template/lambdas/string-lambdas.js +148 -0
- package/dist/template/lambdas/string-lambdas.js.map +1 -0
- package/dist/template/lambdas/string-lambdas.test.d.ts +6 -0
- package/dist/template/lambdas/string-lambdas.test.d.ts.map +1 -0
- package/dist/template/lambdas/string-lambdas.test.js +158 -0
- package/dist/template/lambdas/string-lambdas.test.js.map +1 -0
- package/dist/template/template-locator.d.ts +72 -0
- package/dist/template/template-locator.d.ts.map +1 -0
- package/dist/template/template-locator.js +173 -0
- package/dist/template/template-locator.js.map +1 -0
- package/dist/template/template-manager.d.ts +65 -0
- package/dist/template/template-manager.d.ts.map +1 -0
- package/dist/template/template-manager.js +185 -0
- package/dist/template/template-manager.js.map +1 -0
- package/package.json +67 -0
- package/templates/go/.travis.yml +8 -0
- package/templates/go/README.mustache +236 -0
- package/templates/go/api.mustache +452 -0
- package/templates/go/api_doc.mustache +92 -0
- package/templates/go/api_test.mustache +59 -0
- package/templates/go/client.mustache +761 -0
- package/templates/go/configuration.mustache +332 -0
- package/templates/go/git_push.sh.mustache +57 -0
- package/templates/go/gitignore.mustache +24 -0
- package/templates/go/go.mod.mustache +16 -0
- package/templates/go/go.sum.mustache +19 -0
- package/templates/go/model.mustache +21 -0
- package/templates/go/model_anyof.mustache +93 -0
- package/templates/go/model_doc.mustache +97 -0
- package/templates/go/model_enum.mustache +101 -0
- package/templates/go/model_oneof.mustache +160 -0
- package/templates/go/model_simple.mustache +572 -0
- package/templates/go/nullable_model.mustache +35 -0
- package/templates/go/openapi.mustache +1 -0
- package/templates/go/partial_header.mustache +18 -0
- package/templates/go/response.mustache +38 -0
- package/templates/go/signing.mustache +453 -0
- package/templates/go/utils.mustache +352 -0
- package/templates/php/.php-cs-fixer.dist.php +29 -0
- package/templates/php/.travis.yml +8 -0
- package/templates/php/ApiException.mustache +111 -0
- package/templates/php/Configuration.mustache +606 -0
- package/templates/php/FormDataProcessor.mustache +238 -0
- package/templates/php/HeaderSelector.mustache +265 -0
- package/templates/php/ModelInterface.mustache +103 -0
- package/templates/php/ObjectSerializer.mustache +591 -0
- package/templates/php/README.mustache +151 -0
- package/templates/php/api.mustache +891 -0
- package/templates/php/api_doc.mustache +105 -0
- package/templates/php/api_test.mustache +80 -0
- package/templates/php/composer.mustache +44 -0
- package/templates/php/git_push.sh.mustache +57 -0
- package/templates/php/gitignore +15 -0
- package/templates/php/libraries/psr-18/ApiException.mustache +114 -0
- package/templates/php/libraries/psr-18/DebugPlugin.mustache +93 -0
- package/templates/php/libraries/psr-18/README.mustache +161 -0
- package/templates/php/libraries/psr-18/api.mustache +833 -0
- package/templates/php/libraries/psr-18/api_doc.mustache +79 -0
- package/templates/php/libraries/psr-18/composer.mustache +56 -0
- package/templates/php/model.mustache +47 -0
- package/templates/php/model_doc.mustache +10 -0
- package/templates/php/model_enum.mustache +33 -0
- package/templates/php/model_generic.mustache +565 -0
- package/templates/php/model_test.mustache +88 -0
- package/templates/php/partial_header.mustache +18 -0
- package/templates/php/php_doc_auth_partial.mustache +23 -0
- package/templates/php/phpunit.xml.mustache +18 -0
- package/templates/python/README.mustache +60 -0
- package/templates/python/README_onlypackage.mustache +50 -0
- package/templates/python/__init__.mustache +1 -0
- package/templates/python/__init__api.mustache +19 -0
- package/templates/python/__init__model.mustache +22 -0
- package/templates/python/__init__package.mustache +49 -0
- package/templates/python/api.mustache +244 -0
- package/templates/python/api_client.mustache +822 -0
- package/templates/python/api_doc.mustache +81 -0
- package/templates/python/api_doc_example.mustache +38 -0
- package/templates/python/api_response.mustache +21 -0
- package/templates/python/api_test.mustache +48 -0
- package/templates/python/asyncio/rest.mustache +209 -0
- package/templates/python/common_README.mustache +85 -0
- package/templates/python/configuration.mustache +806 -0
- package/templates/python/exceptions.mustache +210 -0
- package/templates/python/exports_api.mustache +3 -0
- package/templates/python/exports_model.mustache +3 -0
- package/templates/python/exports_package.mustache +20 -0
- package/templates/python/git_push.sh.mustache +57 -0
- package/templates/python/github-workflow.mustache +35 -0
- package/templates/python/gitignore.mustache +66 -0
- package/templates/python/gitlab-ci.mustache +31 -0
- package/templates/python/httpx/rest.mustache +190 -0
- package/templates/python/model.mustache +16 -0
- package/templates/python/model_anyof.mustache +182 -0
- package/templates/python/model_doc.mustache +40 -0
- package/templates/python/model_enum.mustache +36 -0
- package/templates/python/model_generic.mustache +403 -0
- package/templates/python/model_oneof.mustache +209 -0
- package/templates/python/model_test.mustache +60 -0
- package/templates/python/partial_api.mustache +52 -0
- package/templates/python/partial_api_args.mustache +18 -0
- package/templates/python/partial_header.mustache +19 -0
- package/templates/python/py.typed.mustache +1 -0
- package/templates/python/pyproject.mustache +172 -0
- package/templates/python/python_doc_auth_partial.mustache +108 -0
- package/templates/python/requirements.mustache +23 -0
- package/templates/python/rest.mustache +254 -0
- package/templates/python/setup.mustache +60 -0
- package/templates/python/setup_cfg.mustache +2 -0
- package/templates/python/signing.mustache +422 -0
- package/templates/python/test-requirements.mustache +6 -0
- package/templates/python/tornado/rest.mustache +148 -0
- package/templates/python/tox.mustache +9 -0
- package/templates/python/travis.mustache +17 -0
- package/templates/typescript-fetch/ApiEntitiesRecord.mustache +26 -0
- package/templates/typescript-fetch/ApiEntitiesReducer.mustache +21 -0
- package/templates/typescript-fetch/ApiEntitiesSelectors.mustache +5 -0
- package/templates/typescript-fetch/README.mustache +127 -0
- package/templates/typescript-fetch/allSagas.mustache +19 -0
- package/templates/typescript-fetch/api_doc.mustache +63 -0
- package/templates/typescript-fetch/api_example.mustache +44 -0
- package/templates/typescript-fetch/apis.index.mustache +16 -0
- package/templates/typescript-fetch/apis.mustache +483 -0
- package/templates/typescript-fetch/apisAssignQueryParam.mustache +12 -0
- package/templates/typescript-fetch/gitignore +4 -0
- package/templates/typescript-fetch/index.mustache +17 -0
- package/templates/typescript-fetch/licenseInfo.mustache +11 -0
- package/templates/typescript-fetch/modelEnum.mustache +28 -0
- package/templates/typescript-fetch/modelEnumInterfaces.mustache +37 -0
- package/templates/typescript-fetch/modelGeneric.mustache +261 -0
- package/templates/typescript-fetch/modelGenericInterfaces.mustache +50 -0
- package/templates/typescript-fetch/modelOneOf.mustache +255 -0
- package/templates/typescript-fetch/modelOneOfInterfaces.mustache +6 -0
- package/templates/typescript-fetch/model_doc.mustache +41 -0
- package/templates/typescript-fetch/models.index.mustache +32 -0
- package/templates/typescript-fetch/models.mustache +24 -0
- package/templates/typescript-fetch/npmignore.mustache +1 -0
- package/templates/typescript-fetch/package.mustache +43 -0
- package/templates/typescript-fetch/recordGeneric.mustache +295 -0
- package/templates/typescript-fetch/records.mustache +17 -0
- package/templates/typescript-fetch/runtime.mustache +424 -0
- package/templates/typescript-fetch/runtimeSagasAndRecords.mustache +120 -0
- package/templates/typescript-fetch/sagaApiManager.mustache +28 -0
- package/templates/typescript-fetch/sagas.mustache +245 -0
- package/templates/typescript-fetch/sourceLibraryIndex.mustache +1 -0
- package/templates/typescript-fetch/tsconfig.esm.mustache +7 -0
- 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 @@
|
|
|
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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"}
|