1- import { inflektTree , camelize , underscore } from '../src' ;
1+ import { inflektTree , toCamelCase , underscore } from '../src' ;
22
33describe ( 'inflektTree' , ( ) => {
44 describe ( 'basic key transformation' , ( ) => {
55 it ( 'should transform flat object keys from snake_case to camelCase' , ( ) => {
66 const input = { user_name : 'John' , user_age : 30 } ;
7- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
7+ const result = inflektTree ( input , toCamelCase ) ;
88 expect ( result ) . toEqual ( { userName : 'John' , userAge : 30 } ) ;
99 } ) ;
1010
@@ -15,7 +15,7 @@ describe('inflektTree', () => {
1515 } ) ;
1616
1717 it ( 'should handle empty objects' , ( ) => {
18- const result = inflektTree ( { } , ( key ) => camelize ( key , true ) ) ;
18+ const result = inflektTree ( { } , toCamelCase ) ;
1919 expect ( result ) . toEqual ( { } ) ;
2020 } ) ;
2121 } ) ;
@@ -29,7 +29,7 @@ describe('inflektTree', () => {
2929 profile_bio : 'bio text' ,
3030 } ,
3131 } ;
32- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
32+ const result = inflektTree ( input , toCamelCase ) ;
3333 expect ( result ) . toEqual ( {
3434 userName : 'John' ,
3535 userProfile : {
@@ -49,7 +49,7 @@ describe('inflektTree', () => {
4949 } ,
5050 } ,
5151 } ;
52- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
52+ const result = inflektTree ( input , toCamelCase ) ;
5353 expect ( result ) . toEqual ( {
5454 levelOne : {
5555 levelTwo : {
@@ -70,7 +70,7 @@ describe('inflektTree', () => {
7070 { item_id : 2 , item_name : 'Product B' } ,
7171 ] ,
7272 } ;
73- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
73+ const result = inflektTree ( input , toCamelCase ) ;
7474 expect ( result ) . toEqual ( {
7575 orderItems : [
7676 { itemId : 1 , itemName : 'Product A' } ,
@@ -81,7 +81,7 @@ describe('inflektTree', () => {
8181
8282 it ( 'should handle arrays of primitives' , ( ) => {
8383 const input = { user_tags : [ 'tag1' , 'tag2' , 'tag3' ] } ;
84- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
84+ const result = inflektTree ( input , toCamelCase ) ;
8585 expect ( result ) . toEqual ( { userTags : [ 'tag1' , 'tag2' , 'tag3' ] } ) ;
8686 } ) ;
8787
@@ -92,7 +92,7 @@ describe('inflektTree', () => {
9292 [ { cell_value : 3 } , { cell_value : 4 } ] ,
9393 ] ,
9494 } ;
95- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
95+ const result = inflektTree ( input , toCamelCase ) ;
9696 expect ( result ) . toEqual ( {
9797 dataMatrix : [
9898 [ { cellValue : 1 } , { cellValue : 2 } ] ,
@@ -120,7 +120,7 @@ describe('inflektTree', () => {
120120 updated_at : '2024-01-02' ,
121121 } ,
122122 } ;
123- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
123+ const result = inflektTree ( input , toCamelCase ) ;
124124 expect ( result ) . toEqual ( {
125125 userName : 'John' ,
126126 orderItems : [
@@ -144,7 +144,7 @@ describe('inflektTree', () => {
144144 it ( 'should preserve Date objects' , ( ) => {
145145 const date = new Date ( '2024-01-15T12:00:00Z' ) ;
146146 const input = { created_at : date } ;
147- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
147+ const result = inflektTree ( input , toCamelCase ) ;
148148
149149 expect ( result . createdAt ) . toBeInstanceOf ( Date ) ;
150150 expect ( result . createdAt . getTime ( ) ) . toBe ( date . getTime ( ) ) ;
@@ -158,7 +158,7 @@ describe('inflektTree', () => {
158158 last_login : date ,
159159 } ,
160160 } ;
161- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
161+ const result = inflektTree ( input , toCamelCase ) ;
162162
163163 expect ( result . userData . lastLogin ) . toBeInstanceOf ( Date ) ;
164164 expect ( result . userData . lastLogin . getTime ( ) ) . toBe ( date . getTime ( ) ) ;
@@ -167,35 +167,35 @@ describe('inflektTree', () => {
167167
168168 describe ( 'null and undefined handling' , ( ) => {
169169 it ( 'should return null for null input' , ( ) => {
170- const result = inflektTree ( null , ( key ) => camelize ( key , true ) ) ;
170+ const result = inflektTree ( null , toCamelCase ) ;
171171 expect ( result ) . toBeNull ( ) ;
172172 } ) ;
173173
174174 it ( 'should return undefined for undefined input' , ( ) => {
175- const result = inflektTree ( undefined , ( key ) => camelize ( key , true ) ) ;
175+ const result = inflektTree ( undefined , toCamelCase ) ;
176176 expect ( result ) . toBeUndefined ( ) ;
177177 } ) ;
178178
179179 it ( 'should preserve null values in objects' , ( ) => {
180180 const input = { user_name : null as null , user_age : 30 } ;
181- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
181+ const result = inflektTree ( input , toCamelCase ) ;
182182 expect ( result ) . toEqual ( { userName : null , userAge : 30 } ) ;
183183 } ) ;
184184
185185 it ( 'should preserve undefined values in objects' , ( ) => {
186186 const input = { user_name : undefined as undefined , user_age : 30 } ;
187- const result = inflektTree ( input , ( key ) => camelize ( key , true ) ) ;
187+ const result = inflektTree ( input , toCamelCase ) ;
188188 expect ( result ) . toEqual ( { userName : undefined , userAge : 30 } ) ;
189189 } ) ;
190190 } ) ;
191191
192192 describe ( 'primitive inputs' , ( ) => {
193193 it ( 'should return primitives as-is' , ( ) => {
194- expect ( inflektTree ( 'string' , ( key ) => camelize ( key , true ) ) ) . toBe (
194+ expect ( inflektTree ( 'string' , toCamelCase ) ) . toBe (
195195 'string'
196196 ) ;
197- expect ( inflektTree ( 123 , ( key ) => camelize ( key , true ) ) ) . toBe ( 123 ) ;
198- expect ( inflektTree ( true , ( key ) => camelize ( key , true ) ) ) . toBe ( true ) ;
197+ expect ( inflektTree ( 123 , toCamelCase ) ) . toBe ( 123 ) ;
198+ expect ( inflektTree ( true , toCamelCase ) ) . toBe ( true ) ;
199199 } ) ;
200200 } ) ;
201201
@@ -206,7 +206,7 @@ describe('inflektTree', () => {
206206 _private_field : 'secret' ,
207207 _another_private : 'data' ,
208208 } ;
209- const result = inflektTree ( input , ( key ) => camelize ( key , true ) , {
209+ const result = inflektTree ( input , toCamelCase , {
210210 skip : ( key ) => key . startsWith ( '_' ) ,
211211 } ) ;
212212 expect ( result ) . toEqual ( {
@@ -226,7 +226,7 @@ describe('inflektTree', () => {
226226 } ,
227227 } ,
228228 } ;
229- const result = inflektTree ( input , ( key ) => camelize ( key , true ) , {
229+ const result = inflektTree ( input , toCamelCase , {
230230 skip : ( key , path ) => path . length > 1 , // only transform top 2 levels
231231 } ) ;
232232 expect ( result ) . toEqual ( {
@@ -269,7 +269,7 @@ describe('inflektTree', () => {
269269 created_at : '2024-01-01' ,
270270 updated_at : '2024-01-02' ,
271271 } ;
272- const result = inflektTree ( input , ( key ) => camelize ( key , true ) , {
272+ const result = inflektTree ( input , toCamelCase , {
273273 skip : ( key ) => key === 'created_at' || key === 'updated_at' ,
274274 } ) ;
275275 expect ( result ) . toEqual ( {
@@ -283,7 +283,7 @@ describe('inflektTree', () => {
283283 const input = {
284284 items : [ { item_id : 1 , _meta : 'data' } ] ,
285285 } ;
286- const result = inflektTree ( input , ( key ) => camelize ( key , true ) , {
286+ const result = inflektTree ( input , toCamelCase , {
287287 skip : ( key ) => key . startsWith ( '_' ) ,
288288 } ) ;
289289 expect ( result ) . toEqual ( {
@@ -296,7 +296,7 @@ describe('inflektTree', () => {
296296 it ( 'should be able to convert to snake_case and back to camelCase' , ( ) => {
297297 const original = { userName : 'John' , orderItems : [ { itemId : 1 } ] } ;
298298 const snakeCase = inflektTree ( original , underscore ) ;
299- const backToCamel = inflektTree ( snakeCase , ( key ) => camelize ( key , true ) ) ;
299+ const backToCamel = inflektTree ( snakeCase , toCamelCase ) ;
300300 expect ( backToCamel ) . toEqual ( original ) ;
301301 } ) ;
302302 } ) ;
0 commit comments