Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| // Common parsing and grouping utilities for galleries | |
| import { ExamplesData } from './Examples' | |
| export const VARIANT_PREFIX_MAP: { [variant: string]: string } = { | |
| attacked_wmd: 'attacked_wmd_', | |
| attacked: 'attacked_', | |
| wmd: 'wmd_', | |
| } | |
| export const VARIANT_NAME_MAP: { [variant: string]: string } = { | |
| attacked_wmd: 'Attacked + Watermarked', | |
| attacked: 'Attacked', | |
| wmd: 'Watermarked', | |
| original: 'Original', | |
| } | |
| export function getVariant(name: string): string { | |
| return ( | |
| Object.entries(VARIANT_PREFIX_MAP).find(([, prefix]) => name.startsWith(prefix))?.[0] || | |
| 'original' | |
| ) | |
| } | |
| export function getExampleName(name: string, variant: string): string { | |
| if (variant in VARIANT_PREFIX_MAP) { | |
| return name.replace(VARIANT_PREFIX_MAP[variant], '') | |
| } | |
| return name | |
| } | |
| export function groupByNameAndVariant(examples: ExamplesData[]): { | |
| [name: string]: { [variant: string]: ExamplesData } | |
| } { | |
| const grouped: { [name: string]: { [variant: string]: ExamplesData } } = {} | |
| examples.forEach((example) => { | |
| const variant = getVariant(example.name) | |
| const imageName = getExampleName(example.name, variant) | |
| if (!grouped[imageName]) { | |
| grouped[imageName] = {} | |
| } | |
| grouped[imageName][variant] = example | |
| }) | |
| return grouped | |
| } | |