@@ -15,7 +15,7 @@ export interface FlexCardDefinition {
15
15
Type ?: 'flex' | 'classic' ;
16
16
UniqueName ?: string ;
17
17
PropertySetConfig : string | object ;
18
- StylingConfiguration ?: any ;
18
+ StylingConfiguration ?: string | object ;
19
19
Attachments ?: any [ ] ;
20
20
Label ?: Record < string , string > ;
21
21
}
@@ -111,7 +111,7 @@ export namespace FlexCardDefinition {
111
111
Type : 'flex' ,
112
112
UniqueName : record . UniqueName ,
113
113
PropertySetConfig : asString ( record . PropertySetConfig ) ,
114
- StylingConfiguration : asString ( record . StylingConfiguration )
114
+ StylingConfiguration : parseAsJsonString ( record . StylingConfiguration ) ,
115
115
} ;
116
116
}
117
117
@@ -127,9 +127,28 @@ export namespace FlexCardDefinition {
127
127
IsChildCard : record . IsChildCard ,
128
128
Type : record . CardType ,
129
129
PropertySetConfig : asString ( record . Definition ) ,
130
- StylingConfiguration : asString ( record . Styles )
130
+ StylingConfiguration : parseAsJsonString ( record . Styles )
131
131
} ;
132
132
}
133
+
134
+ // eslint-disable-next-line
135
+ function parseAsJsonString ( data : string | object | undefined ) : string | undefined {
136
+ if ( typeof data === 'string' ) {
137
+ try {
138
+ const parsed = JSON . parse ( data ) ;
139
+ if ( typeof parsed === 'object' ) {
140
+ return JSON . stringify ( parsed ) ;
141
+ }
142
+ } catch {
143
+ // If parsing fails, return the original string if it is not empty
144
+ return undefined ;
145
+ }
146
+ }
147
+ if ( typeof data === 'object' && data ) {
148
+ return JSON . stringify ( data ) ;
149
+ }
150
+ return undefined ;
151
+ }
133
152
}
134
153
135
154
export type FlexCardIdentifier = string | { name : string , isChildCard ?: boolean , author ?: string , version ?: number , active ?: boolean } ;
0 commit comments