Mark Duppenthaler
Add audio examples, wip
eb27538
raw
history blame
1.08 kB
// 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
}