File tree Expand file tree Collapse file tree 3 files changed +49
-3
lines changed Expand file tree Collapse file tree 3 files changed +49
-3
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ const formatTokens = (
40
40
const result = { }
41
41
Object . keys ( allTokenObj ) . forEach ( ( key ) => {
42
42
const keys = key . split ( '.' ) . filter ( ( k ) => k !== type )
43
- makeSdObject ( result , keys , allTokenObj [ key ] )
43
+ makeSdObject ( result , keys , allTokenObj [ key ] , keys [ 0 ] !== 'typography' )
44
44
} )
45
45
46
46
return JSON . stringify ( result , null , 2 )
Original file line number Diff line number Diff line change @@ -75,4 +75,40 @@ describe('makeSdObject function', () => {
75
75
}
76
76
} )
77
77
} )
78
+
79
+ it ( 'should camelCase values when setCasing is not given' , ( ) => {
80
+ const obj : { [ key : string ] : string } = {
81
+ 'foo.foo-bar' : 'bar' ,
82
+ }
83
+
84
+ const result = { }
85
+ Object . keys ( obj ) . forEach ( ( key ) => {
86
+ const keys = key . split ( '.' ) . filter ( ( k ) => k !== 'colors' )
87
+ makeSdObject ( result , keys , obj [ key ] )
88
+ } )
89
+
90
+ expect ( result ) . toEqual ( {
91
+ foo : {
92
+ fooBar : 'bar'
93
+ }
94
+ } )
95
+ } )
96
+
97
+ it ( 'should not camelCase when setCasing is set to false' , ( ) => {
98
+ const obj : { [ key : string ] : string } = {
99
+ 'typography.foo-bar' : 'bar' ,
100
+ }
101
+
102
+ const result = { }
103
+ Object . keys ( obj ) . forEach ( ( key ) => {
104
+ const keys = key . split ( '.' ) . filter ( ( k ) => k !== 'colors' )
105
+ makeSdObject ( result , keys , obj [ key ] , false )
106
+ } )
107
+
108
+ expect ( result ) . toEqual ( {
109
+ typography : {
110
+ 'foo-bar' : 'bar'
111
+ }
112
+ } )
113
+ } )
78
114
} )
Original file line number Diff line number Diff line change @@ -8,11 +8,17 @@ export const addHyphen = (str: string) => {
8
8
export const makeSdObject = < T extends readonly string [ ] > (
9
9
obj : SdObjType < { [ key : string ] : any } > ,
10
10
keys : T ,
11
- value : string
11
+ value : string ,
12
+ setCasing = true
12
13
) : void => {
13
14
const lastIndex = keys . length - 1
14
15
for ( let i = 0 ; i < lastIndex ; ++ i ) {
15
- const key = camelCase ( keys [ i ] )
16
+ let key = keys [ i ] ;
17
+
18
+ if ( setCasing ) {
19
+ key = camelCase ( keys [ i ] ) ;
20
+ }
21
+
16
22
if ( ! ( key in obj ) ) {
17
23
obj [ key ] = { }
18
24
}
@@ -21,6 +27,10 @@ export const makeSdObject = <T extends readonly string[]>(
21
27
22
28
// https://v2.tailwindcss.com/docs/upgrading-to-v2#update-default-theme-keys-to-default
23
29
if ( keys [ lastIndex ] === 'DEFAULT' ) {
30
+ setCasing = false ;
31
+ }
32
+
33
+ if ( ! setCasing ) {
24
34
obj [ keys [ lastIndex ] ] = value
25
35
} else {
26
36
obj [ camelCase ( keys [ lastIndex ] ) ] = value
You can’t perform that action at this time.
0 commit comments