mirror of
https://github.com/BradNut/graphbrainz
synced 2025-09-08 17:40:32 +00:00
22 lines
543 B
JavaScript
22 lines
543 B
JavaScript
|
|
import { nodeDefinitions, fromGlobalId } from 'graphql-relay'
|
||
|
|
import { lookupLoader } from '../loaders'
|
||
|
|
import { toEntityType } from './helpers'
|
||
|
|
|
||
|
|
const { nodeInterface, nodeField } = nodeDefinitions(
|
||
|
|
(globalID) => {
|
||
|
|
const { type, id } = fromGlobalId(globalID)
|
||
|
|
const entityType = toEntityType(type)
|
||
|
|
return lookupLoader.load([entityType, id])
|
||
|
|
},
|
||
|
|
(obj) => {
|
||
|
|
try {
|
||
|
|
return require(`./${obj.entityType}`)
|
||
|
|
} catch (err) {
|
||
|
|
return null
|
||
|
|
}
|
||
|
|
}
|
||
|
|
)
|
||
|
|
|
||
|
|
export default nodeInterface
|
||
|
|
export { nodeInterface, nodeField }
|