@@ -67,6 +67,24 @@ def check_devicon_object(icon: dict):
6767 :return a string containing the error messages if any.
6868 """
6969 err_msgs = []
70+
71+ try :
72+ if type (icon ["name" ]) != str :
73+ err_msgs .append ("- Property \" name\" value must be type string." )
74+ except KeyError :
75+ err_msgs .append ("- Missing property key: \" name\" ." )
76+
77+ try :
78+ for altname in icon ["altnames" ]:
79+ if type (altname ) != str :
80+ raise TypeError ()
81+ if altname == icon ["name" ]:
82+ err_msgs .append (f"- \" altnames\" should not contain the same name as \" name\" property. Please remove \" { altname } \" from \" altnames\" " )
83+ except TypeError :
84+ err_msgs .append ("- \" altnames\" must be an array of strings, not: " + str (icon ["altnames" ]))
85+ except KeyError :
86+ err_msgs .append ("- Missing property key: \" altnames\" ." )
87+
7088 try :
7189 for tag in icon ["tags" ]:
7290 if type (tag ) != str :
@@ -110,12 +128,37 @@ def check_devicon_object(icon: dict):
110128
111129 try :
112130 if type (icon ["aliases" ]) != list :
113- err_msgs .append ("- ' aliases' must be an array." )
131+ err_msgs .append ("- \" aliases\" must be an array of objects ." )
114132 except KeyError :
115133 err_msgs .append ("- missing key: 'aliases'." )
116-
134+
135+ try :
136+ for alias_objects in icon ["aliases" ]:
137+ if type (alias_objects ) != dict :
138+ raise TypeError ()
139+ except TypeError :
140+ err_msgs .append ("- \" aliases\" must be an array of objects, not: " + str (icon ["aliases" ]))
141+
142+ try :
143+ for alias_objects in icon ["aliases" ]:
144+ if type (alias_objects ["base" ]) != str :
145+ err_msgs .append ("- must contain at least 1 base in aliases." )
146+ if not util .is_svg_version_valid (alias_objects ['base' ]):
147+ err_msgs .append (f"- Invalid base name in aliases[\" base\" ]: \" { alias_objects ['base' ]} \" . Must match regexp: (original|plain|line)(-wordmark)?" )
148+ except KeyError :
149+ err_msgs .append ("- missing key: \" base\" in \" aliases\" ." )
150+
151+ try :
152+ for alias_objects in icon ["aliases" ]:
153+ if type (alias_objects ["alias" ]) != str :
154+ err_msgs .append ("- must contain at least 1 alias in aliases." )
155+ if not util .is_svg_version_valid (alias_objects ['alias' ]):
156+ err_msgs .append (f"- Invalid alias name in aliases['alias']: \" { alias_objects ['alias' ]} \" . Must match regexp: (original|plain|line)(-wordmark)?" )
157+ except KeyError :
158+ err_msgs .append ("- missing key: \" alias\" in \" aliases\" ." )
159+
117160 if len (err_msgs ) > 0 :
118- message = "Error found in ' devicon.json' for '{}' entry: \n {}" .format (icon ["name" ], "\n " .join (err_msgs ))
161+ message = "Error found in \" devicon.json\" for \" {} \" entry: \n {}" .format (icon ["name" ], "\n " .join (err_msgs ))
119162 return message
120163 return ""
121164
0 commit comments