deep-case-crafter 0.0.2

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 (132) hide show
  1. package/dist/benchmark/transform.benchmark.d.ts +2 -0
  2. package/dist/benchmark/transform.benchmark.d.ts.map +1 -0
  3. package/dist/constants/formatterMap.d.ts +22 -0
  4. package/dist/constants/formatterMap.d.ts.map +1 -0
  5. package/dist/constants/regex.d.ts +10 -0
  6. package/dist/constants/regex.d.ts.map +1 -0
  7. package/dist/dataTransformers/primitiveTransformer.d.ts +8 -0
  8. package/dist/dataTransformers/primitiveTransformer.d.ts.map +1 -0
  9. package/dist/dataTransformers/primitiveTransformer.test.d.ts +2 -0
  10. package/dist/dataTransformers/primitiveTransformer.test.d.ts.map +1 -0
  11. package/dist/dataTransformers/transformArray.d.ts +20 -0
  12. package/dist/dataTransformers/transformArray.d.ts.map +1 -0
  13. package/dist/dataTransformers/transformArray.test.d.ts +2 -0
  14. package/dist/dataTransformers/transformArray.test.d.ts.map +1 -0
  15. package/dist/dataTransformers/transformMap.d.ts +19 -0
  16. package/dist/dataTransformers/transformMap.d.ts.map +1 -0
  17. package/dist/dataTransformers/transformMap.test.d.ts +2 -0
  18. package/dist/dataTransformers/transformMap.test.d.ts.map +1 -0
  19. package/dist/dataTransformers/transformObject.d.ts +22 -0
  20. package/dist/dataTransformers/transformObject.d.ts.map +1 -0
  21. package/dist/dataTransformers/transformObject.test.d.ts +2 -0
  22. package/dist/dataTransformers/transformObject.test.d.ts.map +1 -0
  23. package/dist/dataTransformers/transformSingleWord.d.ts +9 -0
  24. package/dist/dataTransformers/transformSingleWord.d.ts.map +1 -0
  25. package/dist/dataTransformers/transformSingleWord.test.d.ts +2 -0
  26. package/dist/dataTransformers/transformSingleWord.test.d.ts.map +1 -0
  27. package/dist/index.d.ts +6 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.esm.js +2 -0
  30. package/dist/index.esm.js.map +1 -0
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/index.test.d.ts +2 -0
  34. package/dist/index.test.d.ts.map +1 -0
  35. package/dist/transform/internalTransform.d.ts +16 -0
  36. package/dist/transform/internalTransform.d.ts.map +1 -0
  37. package/dist/transform/internalTransform.test.d.ts +2 -0
  38. package/dist/transform/internalTransform.test.d.ts.map +1 -0
  39. package/dist/transform/transform.d.ts +13 -0
  40. package/dist/transform/transform.d.ts.map +1 -0
  41. package/dist/transform/transform.test.d.ts +2 -0
  42. package/dist/transform/transform.test.d.ts.map +1 -0
  43. package/dist/transform/transformCase.d.ts +24 -0
  44. package/dist/transform/transformCase.d.ts.map +1 -0
  45. package/dist/transform/transformCase.test.d.ts +2 -0
  46. package/dist/transform/transformCase.test.d.ts.map +1 -0
  47. package/dist/types/helperTypes.d.ts +4 -0
  48. package/dist/types/helperTypes.d.ts.map +1 -0
  49. package/dist/types/stringCaseTypes.d.ts +5 -0
  50. package/dist/types/stringCaseTypes.d.ts.map +1 -0
  51. package/dist/types/transformOptionTypes.d.ts +42 -0
  52. package/dist/types/transformOptionTypes.d.ts.map +1 -0
  53. package/dist/types/transformTypes.d.ts +280 -0
  54. package/dist/types/transformTypes.d.ts.map +1 -0
  55. package/dist/utils/caseDetectors/isCamelCase.d.ts +14 -0
  56. package/dist/utils/caseDetectors/isCamelCase.d.ts.map +1 -0
  57. package/dist/utils/caseDetectors/isCamelCase.test.d.ts +2 -0
  58. package/dist/utils/caseDetectors/isCamelCase.test.d.ts.map +1 -0
  59. package/dist/utils/caseDetectors/isKebabCase.d.ts +14 -0
  60. package/dist/utils/caseDetectors/isKebabCase.d.ts.map +1 -0
  61. package/dist/utils/caseDetectors/isKebabCase.test.d.ts +2 -0
  62. package/dist/utils/caseDetectors/isKebabCase.test.d.ts.map +1 -0
  63. package/dist/utils/caseDetectors/isPascalCase.d.ts +15 -0
  64. package/dist/utils/caseDetectors/isPascalCase.d.ts.map +1 -0
  65. package/dist/utils/caseDetectors/isPascalCase.test.d.ts +2 -0
  66. package/dist/utils/caseDetectors/isPascalCase.test.d.ts.map +1 -0
  67. package/dist/utils/caseDetectors/isSnakeCase.d.ts +15 -0
  68. package/dist/utils/caseDetectors/isSnakeCase.d.ts.map +1 -0
  69. package/dist/utils/caseDetectors/isSnakeCase.test.d.ts +2 -0
  70. package/dist/utils/caseDetectors/isSnakeCase.test.d.ts.map +1 -0
  71. package/dist/utils/detectSingleWord.d.ts +38 -0
  72. package/dist/utils/detectSingleWord.d.ts.map +1 -0
  73. package/dist/utils/detectSingleWord.test.d.ts +2 -0
  74. package/dist/utils/detectSingleWord.test.d.ts.map +1 -0
  75. package/dist/utils/detectStringCase.d.ts +18 -0
  76. package/dist/utils/detectStringCase.d.ts.map +1 -0
  77. package/dist/utils/detectStringCase.test.d.ts +2 -0
  78. package/dist/utils/detectStringCase.test.d.ts.map +1 -0
  79. package/dist/utils/prepareStringTransformation.d.ts +21 -0
  80. package/dist/utils/prepareStringTransformation.d.ts.map +1 -0
  81. package/dist/utils/prepareStringTransformation.test.d.ts +2 -0
  82. package/dist/utils/prepareStringTransformation.test.d.ts.map +1 -0
  83. package/dist/utils/stringFormatters/camelToKebabCase.d.ts +15 -0
  84. package/dist/utils/stringFormatters/camelToKebabCase.d.ts.map +1 -0
  85. package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts +2 -0
  86. package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts.map +1 -0
  87. package/dist/utils/stringFormatters/camelToPascalCase.d.ts +15 -0
  88. package/dist/utils/stringFormatters/camelToPascalCase.d.ts.map +1 -0
  89. package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts +2 -0
  90. package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts.map +1 -0
  91. package/dist/utils/stringFormatters/camelToSnakeCase.d.ts +15 -0
  92. package/dist/utils/stringFormatters/camelToSnakeCase.d.ts.map +1 -0
  93. package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts +2 -0
  94. package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts.map +1 -0
  95. package/dist/utils/stringFormatters/kebabToCamelCase.d.ts +15 -0
  96. package/dist/utils/stringFormatters/kebabToCamelCase.d.ts.map +1 -0
  97. package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts +2 -0
  98. package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts.map +1 -0
  99. package/dist/utils/stringFormatters/kebabToPascalCase.d.ts +15 -0
  100. package/dist/utils/stringFormatters/kebabToPascalCase.d.ts.map +1 -0
  101. package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts +2 -0
  102. package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts.map +1 -0
  103. package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts +15 -0
  104. package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts.map +1 -0
  105. package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts +2 -0
  106. package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts.map +1 -0
  107. package/dist/utils/stringFormatters/pascalToCamelCase.d.ts +15 -0
  108. package/dist/utils/stringFormatters/pascalToCamelCase.d.ts.map +1 -0
  109. package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts +2 -0
  110. package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts.map +1 -0
  111. package/dist/utils/stringFormatters/pascalToKebabCase.d.ts +16 -0
  112. package/dist/utils/stringFormatters/pascalToKebabCase.d.ts.map +1 -0
  113. package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts +2 -0
  114. package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts.map +1 -0
  115. package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts +16 -0
  116. package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts.map +1 -0
  117. package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts +2 -0
  118. package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts.map +1 -0
  119. package/dist/utils/stringFormatters/snakeToCamelCase.d.ts +15 -0
  120. package/dist/utils/stringFormatters/snakeToCamelCase.d.ts.map +1 -0
  121. package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts +2 -0
  122. package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts.map +1 -0
  123. package/dist/utils/stringFormatters/snakeToKebabCase.d.ts +15 -0
  124. package/dist/utils/stringFormatters/snakeToKebabCase.d.ts.map +1 -0
  125. package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts +2 -0
  126. package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts.map +1 -0
  127. package/dist/utils/stringFormatters/snakeToPascalCase.d.ts +15 -0
  128. package/dist/utils/stringFormatters/snakeToPascalCase.d.ts.map +1 -0
  129. package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts +2 -0
  130. package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts.map +1 -0
  131. package/package.json +62 -0
  132. package/readme.md +121 -0
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a camelCase string to PascalCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The camelCase string to convert
6
+ * @returns The PascalCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * camelToPascalCase('helloWorld') // => 'HelloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function camelToPascalCase(str: string): string;
15
+ //# sourceMappingURL=camelToPascalCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=camelToPascalCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToPascalCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a camelCase string to snake_case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The camelCase string to convert
6
+ * @returns The snake_case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * camelToSnakeCase('helloWorld') // => 'hello_world'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function camelToSnakeCase(str: string): string;
15
+ //# sourceMappingURL=camelToSnakeCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=camelToSnakeCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a kebab-case string to camelCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The kebab-case string to convert
6
+ * @returns The camelCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * kebabToCamelCase('hello-world') // => 'helloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function kebabToCamelCase(str: string): string;
15
+ //# sourceMappingURL=kebabToCamelCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kebabToCamelCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a kebab-case string to PascalCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The kebab-case string to convert
6
+ * @returns The PascalCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * kebabToPascalCase('hello-world') // => 'HelloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function kebabToPascalCase(str: string): string;
15
+ //# sourceMappingURL=kebabToPascalCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kebabToPascalCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToPascalCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a kebab-case string to snake_case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The kebab-case string to convert
6
+ * @returns The snake_case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * kebabToSnakeCase('hello-world') // => 'hello_world'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function kebabToSnakeCase(str: string): string;
15
+ //# sourceMappingURL=kebabToSnakeCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kebabToSnakeCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kebabToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a PascalCase string to camelCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The PascalCase string to convert
6
+ * @returns The camelCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * pascalToCamelCase('HelloWorld') // => 'helloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function pascalToCamelCase(str: string): string;
15
+ //# sourceMappingURL=pascalToCamelCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pascalToCamelCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Converts a PascalCase string to kebab-case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The PascalCase string to convert
6
+ * @returns The kebab-case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * pascalToKebabCase('HelloWorld') // => 'hello-world'
11
+ * pascalToKebabCase('HTTPResponse') // => 'http-response'
12
+ * ```
13
+ * @internal This function is for internal use by the library
14
+ */
15
+ export default function pascalToKebabCase(str: string): string;
16
+ //# sourceMappingURL=pascalToKebabCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToKebabCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pascalToKebabCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToKebabCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Converts a PascalCase string to snake_case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The PascalCase string to convert
6
+ * @returns The snake_case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * pascalToSnakeCase('HelloWorld') // => 'hello_world'
11
+ * pascalToSnakeCase('HTTPResponse') // => 'http_response'
12
+ * ```
13
+ * @internal This function is for internal use by the library
14
+ */
15
+ export default function pascalToSnakeCase(str: string): string;
16
+ //# sourceMappingURL=pascalToSnakeCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pascalToSnakeCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascalToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a snake_case string to camelCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The snake_case string to convert
6
+ * @returns The camelCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * snakeToCamelCase('hello_world') // => 'helloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function snakeToCamelCase(str: string): string;
15
+ //# sourceMappingURL=snakeToCamelCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snakeToCamelCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a snake_case string to kebab-case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The snake_case string to convert
6
+ * @returns The kebab-case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * snakeToKebabCase('hello_world') // => 'hello-world'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function snakeToKebabCase(str: string): string;
15
+ //# sourceMappingURL=snakeToKebabCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToKebabCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snakeToKebabCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToKebabCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a snake_case string to PascalCase
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The snake_case string to convert
6
+ * @returns The PascalCase transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * snakeToPascalCase('hello_world') // => 'HelloWorld'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function snakeToPascalCase(str: string): string;
15
+ //# sourceMappingURL=snakeToPascalCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snakeToPascalCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snakeToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToPascalCase.test.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "deep-case-crafter",
3
+ "version": "0.0.2",
4
+ "description": "Transform deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ "import": "./dist/index.esm.js",
10
+ "require": "./dist/index.js"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/gyrgy/deep-case-crafter.git"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/gyrgy/deep-case-crafter/issues"
21
+ },
22
+ "homepage": "https://github.com/gyrgy/deep-case-crafter#readme",
23
+ "author": "gyrgy",
24
+ "license": "MIT",
25
+ "private": false,
26
+ "scripts": {
27
+ "build": "rollup -c",
28
+ "prepare": "husky",
29
+ "test": "jest",
30
+ "test-coverage": "npm test -- --coverage",
31
+ "tsc": "tsc --noEmit",
32
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx src/ --fix --max-warnings=0 --no-cache",
33
+ "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,md}\"",
34
+ "benchmark": "tsx benchmark/*.benchmark.ts"
35
+ },
36
+ "devDependencies": {
37
+ "@types/benchmark": "2.1.5",
38
+ "benchmark": "2.1.4",
39
+ "@eslint/js": "9.21.0",
40
+ "@rollup/plugin-commonjs": "28.0.2",
41
+ "@rollup/plugin-node-resolve": "16.0.0",
42
+ "@rollup/plugin-terser": "0.4.4",
43
+ "@rollup/plugin-typescript": "12.1.2",
44
+ "@types/jest": "29.5.12",
45
+ "@types/node": "20.14.11",
46
+ "eslint": "9.21.0",
47
+ "eslint-config-prettier": "10.0.1",
48
+ "eslint-plugin-prettier": "5.2.3",
49
+ "globals": "16.0.0",
50
+ "husky": "9.1.7",
51
+ "lint-staged": "15.4.3",
52
+ "jest": "29.7.0",
53
+ "rollup": "4.28.1",
54
+ "rollup-plugin-peer-deps-external": "2.2.4",
55
+ "rollup-plugin-visualizer": "5.12.0",
56
+ "ts-jest": "29.2.3",
57
+ "tslib": "2.8.1",
58
+ "typescript": "5.7.2",
59
+ "typescript-eslint": "8.24.1",
60
+ "tsx": "4.19.3"
61
+ }
62
+ }
package/readme.md ADDED
@@ -0,0 +1,121 @@
1
+ # DeepCaseCrafter
2
+
3
+ Transform deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety.
4
+
5
+ ## Features
6
+
7
+ - 🚀 Supports transformations between `snake_case`, `camelCase`, `PascalCase`, and `kebab-case`.
8
+ - 🔄 Recursively transforms deeply nested objects, arrays, Maps, and Sets.
9
+ - ✅ Preserves TypeScript type inference for precise auto-completion.
10
+ - 🔍 Detects preserved keys (those starting with special characters or numbers, containing `--` or `__`).
11
+ - ⚡ Customizable recursion depth (defaults to 3).
12
+ - 🔥 Optimized for performance with minimal overhead.
13
+ - 📦 Lightweight bundle size (~27.33 KB).
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install deep-case-crafter
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ### Transforming an Object
24
+
25
+ ```typescript
26
+ import transform from 'deep-case-crafter';
27
+
28
+ const input = { user_id: 1, first_name: 'John' };
29
+ const result = transform(input, { targetCase: 'camel', sourceCase: 'snake' });
30
+
31
+ console.log(result);
32
+ // Output: { userId: 1, firstName: 'John' }
33
+ ```
34
+
35
+ ### Transforming Deeply Nested Data
36
+
37
+ ```typescript
38
+ const nestedInput = {
39
+ user_info: { first_name: 'John', last_name: 'Doe' },
40
+ posts: [{ post_id: 1, post_title: 'Hello' }],
41
+ };
42
+
43
+ const transformed = transform(nestedInput, { targetCase: 'camel' });
44
+
45
+ // Output:
46
+ // {
47
+ // userInfo: { firstName: 'John', lastName: 'Doe' },
48
+ // posts: [{ postId: 1, postTitle: 'Hello' }]
49
+ // }
50
+ ```
51
+
52
+ ### Transforming a Map
53
+
54
+ ```typescript
55
+ const mapInput = new Map([
56
+ ['user_id', 1],
57
+ ['first_name', 'John'],
58
+ ]);
59
+
60
+ const result = transform(mapInput, {
61
+ targetCase: 'camel',
62
+ sourceCase: 'snake',
63
+ });
64
+
65
+ console.log(result.get('userId')); // 1
66
+ console.log(result.get('firstName')); // 'John'
67
+ ```
68
+
69
+ ### Transforming a Set
70
+
71
+ ```typescript
72
+ const setInput = new Set(['user_id', 'first_name']);
73
+ const result = transform(setInput, {
74
+ targetCase: 'camel',
75
+ sourceCase: 'snake',
76
+ });
77
+
78
+ console.log(result); // Set { 'userId', 'firstName' }
79
+ ```
80
+
81
+ ## API
82
+
83
+ ### `transform(data, options)`
84
+
85
+ - **data**: The data structure to transform (`object`, `array`, `Map`, or `Set`).
86
+ - **options**:
87
+ - `targetCase` (optional): `'camel' | 'snake' | 'pascal' | 'kebab'` **defaults** to `'camel'`
88
+ - `sourceCase` (optional): Specify the source case for better type inference.
89
+ - `depth` (optional): Specify recursion depth (default is 3).
90
+
91
+ ### Preserved Keys
92
+
93
+ Keys are automatically preserved (not transformed) if:
94
+
95
+ - They start with a special character or number.
96
+ - They contain `__` or `--`.
97
+ - Numbers at the end are allowed.
98
+
99
+ ### Case Detection
100
+
101
+ - Runtime case detection is **always** performed for each key.
102
+ - Specifying `sourceCase` enhances TypeScript type inference but does not influence runtime detection.
103
+
104
+ ## Performance Considerations
105
+
106
+ - **Default Depth**: 3 levels deep to avoid unnecessary processing.
107
+ - **Custom Depth**: Set `depth` to control recursion. Use `Infinity` for full recursion.
108
+ - **Lightweight**: The bundle size is approximately **27.33 KB**.
109
+ - **Benchmarks**: Transform Deep Object (Depth 5, Width 10) x 361,538 ops/sec ±0.12% (91 runs sampled)
110
+ Fastest is Transform Deep Object (Depth 5, Width 10)
111
+
112
+ ## Contribution
113
+
114
+ 1. Fork the repository.
115
+ 2. Create a new branch.
116
+ 3. Commit your changes.
117
+ 4. Submit a pull request.
118
+
119
+ ## License
120
+
121
+ MIT