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,42 @@
1
+ import { StringCase } from './stringCaseTypes';
2
+ /**
3
+ * Options for the transform function
4
+ */
5
+ export interface TransformOptions {
6
+ /**
7
+ * The target casing format to transform to
8
+ * @default 'camel'
9
+ */
10
+ targetCase?: StringCase;
11
+ /**
12
+ * The source casing format to transform from
13
+ *
14
+ * When specified:
15
+ * - Provides precise TypeScript type transformations
16
+ * - Bypasses runtime case detection (more efficient)
17
+ * - Ensures consistent results if input has mixed casing
18
+ *
19
+ * When omitted:
20
+ * - Automatic case detection is used at runtime
21
+ * - TypeScript types will be less precise (string keys)
22
+ * - Works with mixed case inputs (each key detected separately)
23
+ *
24
+ * @example
25
+ * // With source specified - precise types
26
+ * const result = transform(data, { targetCase: 'camel', sourceCase: 'snake' });
27
+ * // result has exact transformed types
28
+ *
29
+ * // Without source - flexible runtime behavior
30
+ * const result = transform(data, { targetCase: 'camel' });
31
+ * // TypeScript types are more general
32
+ *
33
+ * @default undefined (automatic detection)
34
+ */
35
+ sourceCase?: StringCase;
36
+ }
37
+ /**
38
+ * Internal options for transformation (used within the package).
39
+ * Ensures required fields are set after defaults are applied.
40
+ */
41
+ export type TransformOptionsInternal = Required<Pick<TransformOptions, 'targetCase'>> & Omit<TransformOptions, 'targetCase'>;
42
+ //# sourceMappingURL=transformOptionTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformOptionTypes.d.ts","sourceRoot":"","sources":["../../src/types/transformOptionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CACrC,GACC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC"}
@@ -0,0 +1,280 @@
1
+ import { Expand } from './helperTypes';
2
+ import { StringCase } from './stringCaseTypes';
3
+ import { TransformOptions } from './transformOptionTypes';
4
+ /**
5
+ * Type utility that transforms a snake_case string to camelCase
6
+ * Example: 'hello_world' -> 'helloWorld'
7
+ */
8
+ export type SnakeToCamel<S extends string> = S extends `${infer P}_${infer C}${infer R}` ? `${P}${Uppercase<C>}${SnakeToCamel<R>}` : S;
9
+ /**
10
+ * Type utility that transforms a snake_case string to PascalCase
11
+ * Example: 'hello_world' -> 'HelloWorld'
12
+ */
13
+ type SnakeWordsToPascal<Parts extends string[]> = Parts extends [
14
+ infer First extends string,
15
+ ...infer Rest extends string[]
16
+ ] ? `${Capitalize<First>}${SnakeWordsToPascal<Rest>}` : '';
17
+ type SnakeToWords<S extends string> = S extends `${infer P}_${infer R}` ? [P, ...SnakeToWords<R>] : [S];
18
+ export type SnakeToPascal<S extends string> = S extends `${infer P}_${infer R}` ? SnakeWordsToPascal<[P, ...SnakeToWords<R>]> : Capitalize<S>;
19
+ /**
20
+ * Type utility that transforms a snake_case string to kebab-case
21
+ * Example: 'hello_world' -> 'hello-world'
22
+ */
23
+ export type SnakeToKebab<S extends string> = S extends `${infer P}_${infer R}` ? `${P}-${SnakeToKebab<R>}` : S;
24
+ /**
25
+ * Type utility that transforms a camelCase string to snake_case
26
+ * Example: 'helloWorld' -> 'hello_world'
27
+ */
28
+ export type CamelToSnake<S extends string> = S extends `${infer C}${infer R}` ? C extends Uppercase<C> ? `_${Lowercase<C>}${CamelToSnake<R>}` : `${C}${CamelToSnake<R>}` : S;
29
+ /**
30
+ * Type utility that transforms a camelCase string to PascalCase
31
+ * Example: 'helloWorld' -> 'HelloWorld'
32
+ */
33
+ export type CamelToPascal<S extends string> = Capitalize<S>;
34
+ /**
35
+ * Type utility that transforms a camelCase string to kebab-case
36
+ * Example: 'helloWorld' -> 'hello-world'
37
+ */
38
+ export type CamelToKebab<S extends string> = S extends `${infer C}${infer R}` ? C extends Uppercase<C> ? `-${Lowercase<C>}${CamelToKebab<R>}` : `${C}${CamelToKebab<R>}` : S;
39
+ /**
40
+ * Type utility that transforms a PascalCase string to camelCase
41
+ * Example: 'HelloWorld' -> 'helloWorld'
42
+ */
43
+ export type PascalToCamel<S extends string> = S extends `${infer F}${infer R}` ? `${Lowercase<F>}${R}` : S;
44
+ /**
45
+ * Type utility that transforms a PascalCase string to snake_case
46
+ * Example: 'HelloWorld' -> 'hello_world'
47
+ */
48
+ export type PascalToSnake<S extends string> = S extends `${infer F}${infer R}` ? R extends `` ? Lowercase<F> : `${Lowercase<F>}${PascalToSnakeInner<R>}` : S;
49
+ type PascalToSnakeInner<S extends string> = S extends `${infer C}${infer R}` ? C extends Uppercase<C> ? `_${Lowercase<C>}${PascalToSnakeInner<R>}` : `${C}${PascalToSnakeInner<R>}` : S;
50
+ /**
51
+ * Type utility that transforms a PascalCase string to kebab-case
52
+ * Example: 'HelloWorld' -> 'hello-world'
53
+ */
54
+ export type PascalToKebab<S extends string> = S extends `${infer F}${infer R}` ? R extends `` ? Lowercase<F> : `${Lowercase<F>}${PascalToKebabInner<R>}` : S;
55
+ type PascalToKebabInner<S extends string> = S extends `${infer C}${infer R}` ? C extends Uppercase<C> ? `-${Lowercase<C>}${PascalToKebabInner<R>}` : `${C}${PascalToKebabInner<R>}` : S;
56
+ /**
57
+ * Type utility that transforms a kebab-case string to camelCase
58
+ * Example: 'hello-world' -> 'helloWorld'
59
+ */
60
+ export type KebabToCamel<S extends string> = S extends `${infer P}-${infer C}${infer R}` ? `${P}${Uppercase<C>}${KebabToCamel<R>}` : S;
61
+ /**
62
+ * Type utility that transforms a kebab-case string to PascalCase
63
+ * Example: 'hello-world' -> 'HelloWorld'
64
+ */
65
+ type KebabWordsToPascal<Parts extends string[]> = Parts extends [
66
+ infer First extends string,
67
+ ...infer Rest extends string[]
68
+ ] ? `${Capitalize<First>}${KebabWordsToPascal<Rest>}` : '';
69
+ type KebabToWords<S extends string> = S extends `${infer P}-${infer R}` ? [P, ...KebabToWords<R>] : [S];
70
+ /**
71
+ * Type utility that transforms a kebab-case string to PascalCase
72
+ * Example: 'hello-world' -> 'HelloWorld'
73
+ */
74
+ export type KebabToPascal<S extends string> = S extends `${infer P}-${infer R}` ? KebabWordsToPascal<[P, ...KebabToWords<R>]> : Capitalize<S>;
75
+ /**
76
+ * Type utility that transforms a kebab-case string to snake_case
77
+ * Example: 'hello-world' -> 'hello_world'
78
+ */
79
+ export type KebabToSnake<S extends string> = S extends `${infer P}-${infer R}` ? `${P}_${KebabToSnake<R>}` : S;
80
+ /**
81
+ * Utility type to detect preserved keys that shouldn't be transformed.
82
+ * Preserved keys include those with leading/trailing special characters,
83
+ * unsupported patterns, or invalid starting/ending characters.
84
+ */
85
+ type ForbiddenStartChars = '_' | '-' | '$' | '&' | '%' | '#' | '@' | '!' | '*' | '+' | '=' | '~' | '`' | '^' | '(' | ')' | '[' | ']' | '{' | '}' | '|' | '\\' | ':' | ';' | '"' | "'" | '<' | '>' | ',' | '.' | '?' | '/';
86
+ type ForbiddenEndChars = '_' | '-' | '$' | '&' | '%' | '#' | '@' | '!' | '*' | '+' | '=' | '~' | '`' | '^' | '(' | ')' | '[' | ']' | '{' | '}' | '|' | '\\' | ':' | ';' | '"' | "'" | '<' | '>' | ',' | '.' | '?' | '/' | `${number}`;
87
+ type PreservedKey<K extends string> = K extends `${infer First}${string}` ? First extends ForbiddenStartChars ? true : K extends `${string}${infer Last}` ? Last extends ForbiddenEndChars ? true : K extends `${string}__${string}` | `${string}--${string}` ? true : false : false : false;
88
+ /**
89
+ * Type utility that selects the correct string transformation based on source and target casing
90
+ */
91
+ export type TransformKey<K extends string, O extends TransformOptions> = PreservedKey<K> extends true ? K : undefined extends O['sourceCase'] ? string : O['sourceCase'] extends 'snake' ? undefined extends O['targetCase'] ? SnakeToCamel<K> : O['targetCase'] extends 'camel' ? SnakeToCamel<K> : O['targetCase'] extends 'pascal' ? SnakeToPascal<K> : O['targetCase'] extends 'kebab' ? SnakeToKebab<K> : K : O['sourceCase'] extends 'camel' ? undefined extends O['targetCase'] ? K : O['targetCase'] extends 'snake' ? CamelToSnake<K> : O['targetCase'] extends 'pascal' ? CamelToPascal<K> : O['targetCase'] extends 'kebab' ? CamelToKebab<K> : K : O['sourceCase'] extends 'pascal' ? undefined extends O['targetCase'] ? PascalToCamel<K> : O['targetCase'] extends 'camel' ? PascalToCamel<K> : O['targetCase'] extends 'snake' ? PascalToSnake<K> : O['targetCase'] extends 'kebab' ? PascalToKebab<K> : K : O['sourceCase'] extends 'kebab' ? undefined extends O['targetCase'] ? KebabToCamel<K> : O['targetCase'] extends 'camel' ? KebabToCamel<K> : O['targetCase'] extends 'pascal' ? KebabToPascal<K> : O['targetCase'] extends 'snake' ? KebabToSnake<K> : K : K;
92
+ /**
93
+ * Type utility that transforms all keys in an object from the source case to the target case
94
+ */
95
+ export type TransformObjectKeys<T, O extends TransformOptions = {
96
+ targetCase: 'camel';
97
+ }> = {
98
+ [K in keyof T as TransformKey<K & string, O>]: T[K];
99
+ };
100
+ /**
101
+ * Helper type to determine the return type of transformObject based on options
102
+ */
103
+ export type TransformObjectReturn<T, O> = O extends {
104
+ sourceCase: StringCase;
105
+ } ? Expand<TransformObjectKeys<T, O>> : Record<string | number | symbol, unknown>;
106
+ /**
107
+ * Helper type to determine the return type of transformMap based on options
108
+ */
109
+ export type TransformMapReturn<K, V, O> = O extends {
110
+ sourceCase: StringCase;
111
+ } ? Map<K extends string ? TransformKey<K & string, O> : K, V> : Map<string | Exclude<K, string>, V>;
112
+ /**
113
+ * Object transformation type aliases
114
+ * These provide more readable type names for common transformations
115
+ */
116
+ export type SnakeToCamelObject<T> = TransformObjectKeys<T, {
117
+ sourceCase: 'snake';
118
+ targetCase: 'camel';
119
+ }>;
120
+ export type SnakeToPascalObject<T> = TransformObjectKeys<T, {
121
+ sourceCase: 'snake';
122
+ targetCase: 'pascal';
123
+ }>;
124
+ export type SnakeToKebabObject<T> = TransformObjectKeys<T, {
125
+ sourceCase: 'snake';
126
+ targetCase: 'kebab';
127
+ }>;
128
+ export type CamelToSnakeObject<T> = TransformObjectKeys<T, {
129
+ sourceCase: 'camel';
130
+ targetCase: 'snake';
131
+ }>;
132
+ export type CamelToPascalObject<T> = TransformObjectKeys<T, {
133
+ sourceCase: 'camel';
134
+ targetCase: 'pascal';
135
+ }>;
136
+ export type CamelToKebabObject<T> = TransformObjectKeys<T, {
137
+ sourceCase: 'camel';
138
+ targetCase: 'kebab';
139
+ }>;
140
+ export type PascalToCamelObject<T> = TransformObjectKeys<T, {
141
+ sourceCase: 'pascal';
142
+ targetCase: 'camel';
143
+ }>;
144
+ export type PascalToSnakeObject<T> = TransformObjectKeys<T, {
145
+ sourceCase: 'pascal';
146
+ targetCase: 'snake';
147
+ }>;
148
+ export type PascalToKebabObject<T> = TransformObjectKeys<T, {
149
+ sourceCase: 'pascal';
150
+ targetCase: 'kebab';
151
+ }>;
152
+ export type KebabToCamelObject<T> = TransformObjectKeys<T, {
153
+ sourceCase: 'kebab';
154
+ targetCase: 'camel';
155
+ }>;
156
+ export type KebabToPascalObject<T> = TransformObjectKeys<T, {
157
+ sourceCase: 'kebab';
158
+ targetCase: 'pascal';
159
+ }>;
160
+ export type KebabToSnakeObject<T> = TransformObjectKeys<T, {
161
+ sourceCase: 'kebab';
162
+ targetCase: 'snake';
163
+ }>;
164
+ /**
165
+ * Array transformation type aliases
166
+ */
167
+ export type SnakeToCamelArray<T> = Array<SnakeToCamelObject<T>>;
168
+ export type SnakeToPascalArray<T> = Array<SnakeToPascalObject<T>>;
169
+ export type SnakeToKebabArray<T> = Array<SnakeToKebabObject<T>>;
170
+ export type CamelToSnakeArray<T> = Array<CamelToSnakeObject<T>>;
171
+ export type CamelToPascalArray<T> = Array<CamelToPascalObject<T>>;
172
+ export type CamelToKebabArray<T> = Array<CamelToKebabObject<T>>;
173
+ export type PascalToCamelArray<T> = Array<PascalToCamelObject<T>>;
174
+ export type PascalToSnakeArray<T> = Array<PascalToSnakeObject<T>>;
175
+ export type PascalToKebabArray<T> = Array<PascalToKebabObject<T>>;
176
+ export type KebabToCamelArray<T> = Array<KebabToCamelObject<T>>;
177
+ export type KebabToPascalArray<T> = Array<KebabToPascalObject<T>>;
178
+ export type KebabToSnakeArray<T> = Array<KebabToSnakeObject<T>>;
179
+ /**
180
+ * Generic transformation utility for objects
181
+ */
182
+ export type TransformObject<T, From extends StringCase, To extends StringCase> = TransformObjectKeys<T, {
183
+ sourceCase: From;
184
+ targetCase: To;
185
+ }>;
186
+ /**
187
+ * Generic transformation utility for arrays
188
+ */
189
+ export type TransformArray<T, From extends StringCase, To extends StringCase> = Array<TransformObject<T, From, To>>;
190
+ /**
191
+ * Helper type to determine array return type based on options
192
+ */
193
+ export type TransformArrayReturn<T extends unknown[], O> = O extends {
194
+ sourceCase: StringCase;
195
+ } ? {
196
+ [K in keyof T]: T[K] extends object ? TransformObjectKeys<T[K], O> : T[K] extends Map<infer KT, infer VT> ? Map<KT extends string ? string : KT, VT> : T[K];
197
+ } : unknown[];
198
+ /**
199
+ * Recursive type transformations
200
+ * These types handle nested structures like arrays, objects, Maps, and Sets
201
+ */
202
+ export type SnakeToCamelRecursive<T> = T extends Array<infer U> ? Array<SnakeToCamelRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? SnakeToCamel<K> : K, SnakeToCamelRecursive<V>> : T extends Set<infer V> ? Set<SnakeToCamelRecursive<V>> : T extends object ? {
203
+ [K in keyof T as TransformKey<K & string, {
204
+ sourceCase: 'snake';
205
+ targetCase: 'camel';
206
+ }>]: SnakeToCamelRecursive<T[K]>;
207
+ } : T;
208
+ export type SnakeToPascalRecursive<T> = T extends Array<infer U> ? Array<SnakeToPascalRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? SnakeToPascal<K> : K, SnakeToPascalRecursive<V>> : T extends Set<infer V> ? Set<SnakeToPascalRecursive<V>> : T extends object ? {
209
+ [K in keyof T as TransformKey<K & string, {
210
+ sourceCase: 'snake';
211
+ targetCase: 'pascal';
212
+ }>]: SnakeToPascalRecursive<T[K]>;
213
+ } : T;
214
+ export type SnakeToKebabRecursive<T> = T extends Array<infer U> ? Array<SnakeToKebabRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? SnakeToKebab<K> : K, SnakeToKebabRecursive<V>> : T extends Set<infer V> ? Set<SnakeToKebabRecursive<V>> : T extends object ? {
215
+ [K in keyof T as TransformKey<K & string, {
216
+ sourceCase: 'snake';
217
+ targetCase: 'kebab';
218
+ }>]: SnakeToKebabRecursive<T[K]>;
219
+ } : T;
220
+ export type CamelToSnakeRecursive<T> = T extends Array<infer U> ? Array<CamelToSnakeRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? CamelToSnake<K> : K, CamelToSnakeRecursive<V>> : T extends Set<infer V> ? Set<CamelToSnakeRecursive<V>> : T extends object ? {
221
+ [K in keyof T as TransformKey<K & string, {
222
+ sourceCase: 'camel';
223
+ targetCase: 'snake';
224
+ }>]: CamelToSnakeRecursive<T[K]>;
225
+ } : T;
226
+ export type CamelToPascalRecursive<T> = T extends Array<infer U> ? Array<CamelToPascalRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? CamelToPascal<K> : K, CamelToPascalRecursive<V>> : T extends Set<infer V> ? Set<CamelToPascalRecursive<V>> : T extends object ? {
227
+ [K in keyof T as TransformKey<K & string, {
228
+ sourceCase: 'camel';
229
+ targetCase: 'pascal';
230
+ }>]: CamelToPascalRecursive<T[K]>;
231
+ } : T;
232
+ export type CamelToKebabRecursive<T> = T extends Array<infer U> ? Array<CamelToKebabRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? CamelToKebab<K> : K, CamelToKebabRecursive<V>> : T extends Set<infer V> ? Set<CamelToKebabRecursive<V>> : T extends object ? {
233
+ [K in keyof T as TransformKey<K & string, {
234
+ sourceCase: 'camel';
235
+ targetCase: 'kebab';
236
+ }>]: CamelToKebabRecursive<T[K]>;
237
+ } : T;
238
+ export type PascalToCamelRecursive<T> = T extends Array<infer U> ? Array<PascalToCamelRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? PascalToCamel<K> : K, PascalToCamelRecursive<V>> : T extends Set<infer V> ? Set<PascalToCamelRecursive<V>> : T extends object ? {
239
+ [K in keyof T as TransformKey<K & string, {
240
+ sourceCase: 'pascal';
241
+ targetCase: 'camel';
242
+ }>]: PascalToCamelRecursive<T[K]>;
243
+ } : T;
244
+ export type PascalToSnakeRecursive<T> = T extends Array<infer U> ? Array<PascalToSnakeRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? PascalToSnake<K> : K, PascalToSnakeRecursive<V>> : T extends Set<infer V> ? Set<PascalToSnakeRecursive<V>> : T extends object ? {
245
+ [K in keyof T as TransformKey<K & string, {
246
+ sourceCase: 'pascal';
247
+ targetCase: 'snake';
248
+ }>]: PascalToSnakeRecursive<T[K]>;
249
+ } : T;
250
+ export type PascalToKebabRecursive<T> = T extends Array<infer U> ? Array<PascalToKebabRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? PascalToKebab<K> : K, PascalToKebabRecursive<V>> : T extends Set<infer V> ? Set<PascalToKebabRecursive<V>> : T extends object ? {
251
+ [K in keyof T as TransformKey<K & string, {
252
+ sourceCase: 'pascal';
253
+ targetCase: 'kebab';
254
+ }>]: PascalToKebabRecursive<T[K]>;
255
+ } : T;
256
+ export type KebabToCamelRecursive<T> = T extends Array<infer U> ? Array<KebabToCamelRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? KebabToCamel<K> : K, KebabToCamelRecursive<V>> : T extends Set<infer V> ? Set<KebabToCamelRecursive<V>> : T extends object ? {
257
+ [K in keyof T as TransformKey<K & string, {
258
+ sourceCase: 'kebab';
259
+ targetCase: 'camel';
260
+ }>]: KebabToCamelRecursive<T[K]>;
261
+ } : T;
262
+ export type KebabToPascalRecursive<T> = T extends Array<infer U> ? Array<KebabToPascalRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? KebabToPascal<K> : K, KebabToPascalRecursive<V>> : T extends Set<infer V> ? Set<KebabToPascalRecursive<V>> : T extends object ? {
263
+ [K in keyof T as TransformKey<K & string, {
264
+ sourceCase: 'kebab';
265
+ targetCase: 'pascal';
266
+ }>]: KebabToPascalRecursive<T[K]>;
267
+ } : T;
268
+ export type KebabToSnakeRecursive<T> = T extends Array<infer U> ? Array<KebabToSnakeRecursive<U>> : T extends Map<infer K, infer V> ? Map<K extends string ? KebabToSnake<K> : K, KebabToSnakeRecursive<V>> : T extends Set<infer V> ? Set<KebabToSnakeRecursive<V>> : T extends object ? {
269
+ [K in keyof T as TransformKey<K & string, {
270
+ sourceCase: 'kebab';
271
+ targetCase: 'snake';
272
+ }>]: KebabToSnakeRecursive<T[K]>;
273
+ } : T;
274
+ /**
275
+ * Generic recursive transformation type
276
+ * Allows dynamically selecting the transformation based on source and target cases
277
+ */
278
+ export type TransformRecursive<T, FromCase extends StringCase, ToCase extends StringCase> = FromCase extends 'snake' ? ToCase extends 'camel' ? SnakeToCamelRecursive<T> : ToCase extends 'pascal' ? SnakeToPascalRecursive<T> : ToCase extends 'kebab' ? SnakeToKebabRecursive<T> : T : FromCase extends 'camel' ? ToCase extends 'snake' ? CamelToSnakeRecursive<T> : ToCase extends 'pascal' ? CamelToPascalRecursive<T> : ToCase extends 'kebab' ? CamelToKebabRecursive<T> : T : FromCase extends 'pascal' ? ToCase extends 'snake' ? PascalToSnakeRecursive<T> : ToCase extends 'camel' ? PascalToCamelRecursive<T> : ToCase extends 'kebab' ? PascalToKebabRecursive<T> : T : FromCase extends 'kebab' ? ToCase extends 'snake' ? KebabToSnakeRecursive<T> : ToCase extends 'camel' ? KebabToCamelRecursive<T> : ToCase extends 'pascal' ? KebabToPascalRecursive<T> : T : T;
279
+ export {};
280
+ //# sourceMappingURL=transformTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformTypes.d.ts","sourceRoot":"","sources":["../../src/types/transformTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Checks if a string is in camelCase format
3
+ * @param str - The string to check
4
+ * @returns boolean indicating if the string is in camelCase
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * isCamelCase('helloWorld') // => true
9
+ * isCamelCase('hello_world') // => false
10
+ * ```
11
+ * @internal This function is for internal use by the library
12
+ */
13
+ export default function isCamelCase(str: string): boolean;
14
+ //# sourceMappingURL=isCamelCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isCamelCase.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isCamelCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isCamelCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Checks if a string is in kebab-case format
3
+ * @param str - The string to check
4
+ * @returns boolean indicating if the string is in kebab-case
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * isKebabCase('hello-world') // => true
9
+ * isKebabCase('helloWorld') // => false
10
+ * ```
11
+ * @internal This function is for internal use by the library
12
+ */
13
+ export declare function isKebabCase(str: string): boolean;
14
+ //# sourceMappingURL=isKebabCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isKebabCase.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQhD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isKebabCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isKebabCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Checks if a string is in PascalCase format
3
+ * @param str - The string to check
4
+ * @returns boolean indicating if the string is in PascalCase
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * isPascalCase('HelloWorld') // => true
9
+ * isPascalCase('helloWorld') // => false
10
+ * ```
11
+ *
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function isPascalCase(str: string): boolean;
15
+ //# sourceMappingURL=isPascalCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isPascalCase.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isPascalCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isPascalCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Checks if a string is in snake_case format
3
+ * @param str - The string to check
4
+ * @returns boolean indicating if the string is in snake_case
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * isSnakeCase('hello_world') // => true
9
+ * isSnakeCase('helloWorld') // => false
10
+ * ```
11
+ *
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function isSnakeCase(str: string): boolean;
15
+ //# sourceMappingURL=isSnakeCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isSnakeCase.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQxD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isSnakeCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Determines whether the given string qualifies as a single word.
3
+ *
4
+ * A string is considered a "single word" if:
5
+ * - It does not contain any delimiters such as underscores (`_`), hyphens (`-`), or spaces.
6
+ * - It contains only alphanumeric characters (letters and digits). Any other character (e.g., punctuation) will cause it to be considered as not a single word.
7
+ * - For strings longer than one character:
8
+ * - If the entire string is lowercase, it's considered a single word.
9
+ * - If the string starts with an uppercase letter and the rest are lowercase, it's considered a single word.
10
+ * - Single-character strings and empty strings are treated as a single word.
11
+ *
12
+ * @param {string} str - The string to check.
13
+ * @returns {boolean} Returns `true` if the input string qualifies as a single word, otherwise returns `false`.
14
+ *
15
+ * @example
16
+ * // Returns true because "hello" is a single word (all lowercase).
17
+ * detectSingleWord("hello");
18
+ *
19
+ * @example
20
+ * // Returns true because "Hello" is considered a single word (capitalized first letter only).
21
+ * detectSingleWord("Hello");
22
+ *
23
+ * @example
24
+ * // Returns false because "hello_world" contains an underscore.
25
+ * detectSingleWord("hello_world");
26
+ *
27
+ * @example
28
+ * // Returns false because "hello world" contains a space.
29
+ * detectSingleWord("hello world");
30
+ *
31
+ * @example
32
+ * // Returns false because "hello@world" contains a special character.
33
+ * detectSingleWord("hello@world");
34
+ *
35
+ * @internal This function is for internal use by the library
36
+ */
37
+ export default function detectSingleWord(str: string): boolean;
38
+ //# sourceMappingURL=detectSingleWord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectSingleWord.d.ts","sourceRoot":"","sources":["../../src/utils/detectSingleWord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAkB7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=detectSingleWord.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectSingleWord.test.d.ts","sourceRoot":"","sources":["../../src/utils/detectSingleWord.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { StringCase } from '../types/stringCaseTypes';
2
+ /**
3
+ * Detects the case format of a string
4
+ * @param str - The string to analyze
5
+ * @returns The detected case format, 'single' for single words, or null if format cannot be determined
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * detectStringCase('hello_world') // => 'snake'
10
+ * detectStringCase('helloWorld') // => 'camel'
11
+ * detectStringCase('HelloWorld') // => 'pascal'
12
+ * detectStringCase('hello-world') // => 'kebab'
13
+ * detectStringCase('hello') // => 'single'
14
+ * ```
15
+ * @internal This function is for internal use by the library
16
+ */
17
+ export default function detectStringCase(str: string): StringCase | 'single' | null;
18
+ //# sourceMappingURL=detectStringCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectStringCase.d.ts","sourceRoot":"","sources":["../../src/utils/detectStringCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAOtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,QAAQ,GAAG,IAAI,CAa9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=detectStringCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectStringCase.test.d.ts","sourceRoot":"","sources":["../../src/utils/detectStringCase.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { StringCase } from '../types/stringCaseTypes';
2
+ /**
3
+ * Internal type used by string preparation utility
4
+ * Not exported as it's an implementation detail
5
+ */
6
+ interface StringPreparationResult {
7
+ string: string;
8
+ shouldTransform: boolean;
9
+ sourceCase: StringCase | null;
10
+ singleWord: boolean;
11
+ }
12
+ /**
13
+ * Prepares a string for case transformation by validating input
14
+ * @param str - The input string to prepare
15
+ * @returns StringPreparationResult object containing the processed parts
16
+ * @throws {Error} If the input is not a string
17
+ * @internal This function is for internal use by the library
18
+ */
19
+ export declare function prepareStringTransformation(str: string): StringPreparationResult;
20
+ export {};
21
+ //# sourceMappingURL=prepareStringTransformation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareStringTransformation.d.ts","sourceRoot":"","sources":["../../src/utils/prepareStringTransformation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GACV,uBAAuB,CAuDzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareStringTransformation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareStringTransformation.test.d.ts","sourceRoot":"","sources":["../../src/utils/prepareStringTransformation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts a camelCase string to kebab-case
3
+ * Core transformation function without special character handling
4
+ *
5
+ * @param str - The camelCase string to convert
6
+ * @returns The kebab-case transformed string
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * camelToKebabCase('helloWorld') // => 'hello-world'
11
+ * ```
12
+ * @internal This function is for internal use by the library
13
+ */
14
+ export default function camelToKebabCase(str: string): string;
15
+ //# sourceMappingURL=camelToKebabCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToKebabCase.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=camelToKebabCase.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToKebabCase.test.ts"],"names":[],"mappings":""}