( nav: INavProps[], settings: ISettings, tags: ITagPropValues[] = [], )
| 189 | } |
| 190 | |
| 191 | export function setWebs( |
| 192 | nav: INavProps[], |
| 193 | settings: ISettings, |
| 194 | tags: ITagPropValues[] = [], |
| 195 | ): INavProps[] { |
| 196 | if (!Array.isArray(nav)) return [] |
| 197 | |
| 198 | const tagMap = new Map<number, ITagPropValues>() |
| 199 | for (const tag of tags) { |
| 200 | if (tag.id) { |
| 201 | tagMap.set(tag.id, tag) |
| 202 | } |
| 203 | } |
| 204 | |
| 205 | function handleAdapter(item: any): void { |
| 206 | delete item.collapsed |
| 207 | delete item.createdAt |
| 208 | if (!item.ownVisible) { |
| 209 | delete item.ownVisible |
| 210 | } |
| 211 | item.id = incrementClassId(item.id) |
| 212 | if (item.rId < 0) { |
| 213 | item.rId = incrementWebRId(item.rId) |
| 214 | } |
| 215 | item.icon = replaceJsdelivrCDN(item.icon, settings) |
| 216 | item.nav ||= [] |
| 217 | } |
| 218 | |
| 219 | getMaxWebId(nav) |
| 220 | |
| 221 | for (let i = 0; i < nav.length; i++) { |
| 222 | const item = nav[i] |
| 223 | handleAdapter(item) |
| 224 | if (item.nav) { |
| 225 | for (let j = 0; j < item.nav.length; j++) { |
| 226 | const navItem = item.nav[j] |
| 227 | handleAdapter(navItem) |
| 228 | if (navItem.nav) { |
| 229 | for (let k = 0; k < navItem.nav.length; k++) { |
| 230 | const navItemItem = navItem.nav[k] |
| 231 | handleAdapter(navItemItem) |
| 232 | |
| 233 | if (navItemItem.nav) { |
| 234 | for (let l = 0; l < navItemItem.nav.length; l++) { |
| 235 | const webItem = navItemItem.nav[l] as IWebProps |
| 236 | webItem.id = incrementWebId(webItem.id) |
| 237 | if (webItem.rId) { |
| 238 | webItem.rId = incrementWebRId(webItem.rId) |
| 239 | } |
| 240 | webItem.tags ||= [] |
| 241 | webItem.rate ??= 5 |
| 242 | webItem.top ??= false |
| 243 | webItem.ownVisible ??= false |
| 244 | webItem.url ||= '' |
| 245 | webItem.name ||= '' |
| 246 | webItem.desc ||= '' |
| 247 | webItem.icon ||= '' |
| 248 | webItem.icon = replaceJsdelivrCDN(webItem.icon, settings) |
no test coverage detected