// 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 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 }