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.
- package/dist/benchmark/transform.benchmark.d.ts +2 -0
- package/dist/benchmark/transform.benchmark.d.ts.map +1 -0
- package/dist/constants/formatterMap.d.ts +22 -0
- package/dist/constants/formatterMap.d.ts.map +1 -0
- package/dist/constants/regex.d.ts +10 -0
- package/dist/constants/regex.d.ts.map +1 -0
- package/dist/dataTransformers/primitiveTransformer.d.ts +8 -0
- package/dist/dataTransformers/primitiveTransformer.d.ts.map +1 -0
- package/dist/dataTransformers/primitiveTransformer.test.d.ts +2 -0
- package/dist/dataTransformers/primitiveTransformer.test.d.ts.map +1 -0
- package/dist/dataTransformers/transformArray.d.ts +20 -0
- package/dist/dataTransformers/transformArray.d.ts.map +1 -0
- package/dist/dataTransformers/transformArray.test.d.ts +2 -0
- package/dist/dataTransformers/transformArray.test.d.ts.map +1 -0
- package/dist/dataTransformers/transformMap.d.ts +19 -0
- package/dist/dataTransformers/transformMap.d.ts.map +1 -0
- package/dist/dataTransformers/transformMap.test.d.ts +2 -0
- package/dist/dataTransformers/transformMap.test.d.ts.map +1 -0
- package/dist/dataTransformers/transformObject.d.ts +22 -0
- package/dist/dataTransformers/transformObject.d.ts.map +1 -0
- package/dist/dataTransformers/transformObject.test.d.ts +2 -0
- package/dist/dataTransformers/transformObject.test.d.ts.map +1 -0
- package/dist/dataTransformers/transformSingleWord.d.ts +9 -0
- package/dist/dataTransformers/transformSingleWord.d.ts.map +1 -0
- package/dist/dataTransformers/transformSingleWord.test.d.ts +2 -0
- package/dist/dataTransformers/transformSingleWord.test.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/transform/internalTransform.d.ts +16 -0
- package/dist/transform/internalTransform.d.ts.map +1 -0
- package/dist/transform/internalTransform.test.d.ts +2 -0
- package/dist/transform/internalTransform.test.d.ts.map +1 -0
- package/dist/transform/transform.d.ts +13 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/transform/transform.test.d.ts +2 -0
- package/dist/transform/transform.test.d.ts.map +1 -0
- package/dist/transform/transformCase.d.ts +24 -0
- package/dist/transform/transformCase.d.ts.map +1 -0
- package/dist/transform/transformCase.test.d.ts +2 -0
- package/dist/transform/transformCase.test.d.ts.map +1 -0
- package/dist/types/helperTypes.d.ts +4 -0
- package/dist/types/helperTypes.d.ts.map +1 -0
- package/dist/types/stringCaseTypes.d.ts +5 -0
- package/dist/types/stringCaseTypes.d.ts.map +1 -0
- package/dist/types/transformOptionTypes.d.ts +42 -0
- package/dist/types/transformOptionTypes.d.ts.map +1 -0
- package/dist/types/transformTypes.d.ts +280 -0
- package/dist/types/transformTypes.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isCamelCase.d.ts +14 -0
- package/dist/utils/caseDetectors/isCamelCase.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isCamelCase.test.d.ts +2 -0
- package/dist/utils/caseDetectors/isCamelCase.test.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isKebabCase.d.ts +14 -0
- package/dist/utils/caseDetectors/isKebabCase.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isKebabCase.test.d.ts +2 -0
- package/dist/utils/caseDetectors/isKebabCase.test.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isPascalCase.d.ts +15 -0
- package/dist/utils/caseDetectors/isPascalCase.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isPascalCase.test.d.ts +2 -0
- package/dist/utils/caseDetectors/isPascalCase.test.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isSnakeCase.d.ts +15 -0
- package/dist/utils/caseDetectors/isSnakeCase.d.ts.map +1 -0
- package/dist/utils/caseDetectors/isSnakeCase.test.d.ts +2 -0
- package/dist/utils/caseDetectors/isSnakeCase.test.d.ts.map +1 -0
- package/dist/utils/detectSingleWord.d.ts +38 -0
- package/dist/utils/detectSingleWord.d.ts.map +1 -0
- package/dist/utils/detectSingleWord.test.d.ts +2 -0
- package/dist/utils/detectSingleWord.test.d.ts.map +1 -0
- package/dist/utils/detectStringCase.d.ts +18 -0
- package/dist/utils/detectStringCase.d.ts.map +1 -0
- package/dist/utils/detectStringCase.test.d.ts +2 -0
- package/dist/utils/detectStringCase.test.d.ts.map +1 -0
- package/dist/utils/prepareStringTransformation.d.ts +21 -0
- package/dist/utils/prepareStringTransformation.d.ts.map +1 -0
- package/dist/utils/prepareStringTransformation.test.d.ts +2 -0
- package/dist/utils/prepareStringTransformation.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToKebabCase.d.ts +15 -0
- package/dist/utils/stringFormatters/camelToKebabCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToPascalCase.d.ts +15 -0
- package/dist/utils/stringFormatters/camelToPascalCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToSnakeCase.d.ts +15 -0
- package/dist/utils/stringFormatters/camelToSnakeCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToCamelCase.d.ts +15 -0
- package/dist/utils/stringFormatters/kebabToCamelCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToPascalCase.d.ts +15 -0
- package/dist/utils/stringFormatters/kebabToPascalCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts +15 -0
- package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToCamelCase.d.ts +15 -0
- package/dist/utils/stringFormatters/pascalToCamelCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToKebabCase.d.ts +16 -0
- package/dist/utils/stringFormatters/pascalToKebabCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts +16 -0
- package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToCamelCase.d.ts +15 -0
- package/dist/utils/stringFormatters/snakeToCamelCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToKebabCase.d.ts +15 -0
- package/dist/utils/stringFormatters/snakeToKebabCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToPascalCase.d.ts +15 -0
- package/dist/utils/stringFormatters/snakeToPascalCase.d.ts.map +1 -0
- package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts +2 -0
- package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts.map +1 -0
- package/package.json +62 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|