20 lines
737 B
TypeScript
20 lines
737 B
TypeScript
import { EnrichedEntity, Entity } from '../../../src/types'
|
|
import details from '../../../res/details.json'
|
|
import manual from '../../../res/manual.json'
|
|
import exclude from '../../../res/exclude.json'
|
|
|
|
const manualEntities = manual as Entity[]
|
|
const manualKeys = new Set(manualEntities.map(entity => entity.href))
|
|
const detailEntities = (details as Entity[]).filter(detail => !manualKeys.has(detail.href))
|
|
|
|
const joined = [...detailEntities, ...manualEntities]
|
|
|
|
export const factories = joined
|
|
.map((detail: EnrichedEntity) => {
|
|
detail.usedBy = joined.filter(f =>
|
|
Object.keys(f.recipe?.prerequisites ?? {}).includes(detail.href)
|
|
)
|
|
return detail
|
|
})
|
|
.filter(detail => !(exclude as string[]).includes(detail.href))
|