24 lines
648 B
TypeScript
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]
|
|
}
|
|
})
|