Files
node-factorio-recipes/src/hooks/useFactories.ts
2022-08-14 10:49:11 +02:00

24 lines
648 B
TypeScript

import {EnrichedEntity, Entity} from "../types";
import details from "../../res/details.json";
import manual from "../../res/manual.json";
const joined = [...details, ...manual] as Entity[]
const factories = joined.map((detail: EnrichedEntity) => {
detail.usedBy = joined
.filter(f => Object
.keys(f.recipe?.prerequisites ?? {})
.includes(detail.href)
)
return detail;
})
const detailsMap = Object.fromEntries(factories.map((detail: EnrichedEntity) => [detail.href, detail]))
export const useFactories = () => ({
factories,
findFactory: (uid: string): EnrichedEntity|undefined => {
return detailsMap[uid]
}
})