import { legacyOverlayDefinitions } from './src/components/overlays/overlay-definitions'; let filters: any[] = ['any']; Object.keys(legacyOverlayDefinitions).forEach((key) => { const definition = legacyOverlayDefinitions[key]; let filter: any[] = ['in', key]; Object.keys(definition).forEach((subKey) => { filter = [...filter, subKey]; }); filters = [...filters, filter]; }); // One timer const categories = ['hiking', 'cycling', 'vanlife']; let overlays = {}; for (const category of categories) { console.log({ caller: 'onetimer / category', category }); overlays[category] = {}; for (const tag of Object.keys(legacyOverlayDefinitions)) { overlays[category][tag] = {}; for (const tagValue of Object.keys(legacyOverlayDefinitions[tag] || {})) { const def = legacyOverlayDefinitions[tag][tagValue]; if (!!def[category]) { overlays[category][tag][tagValue] = def[category]; } } } } console.log({ caller: 'onetimer / result', overlays: JSON.stringify(overlays), }); // End of one timer console.log({ legacyOverlayDefinitions, filters, json: JSON.stringify(filters), overlays: JSON.stringify(overlays), });