gatsby-source-roamresearch
Version:
Source plugin for pulling data into Gatsby from Roam Research
49 lines (45 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSchemaCustomization = void 0;
const createSchemaCustomization = ({ actions, schema, getNode, }) => {
const resolve = (source, args, context, info) => {
const ids = source[`${info.fieldName}___NODE`];
if (!ids || !Array.isArray(ids)) {
return [];
}
return ids.map((id) => getNode(id));
};
actions.createTypes(schema.buildObjectType({
name: "RoamFields",
fields: {
inboundReferences: {
type: "[RoamPageOrBlock!]!",
resolve,
},
outboundReferences: {
type: "[RoamPageOrBlock!]!",
resolve,
},
allOutboundReferences: {
type: "[RoamPageOrBlock!]!",
resolve,
},
},
}));
actions.createTypes(`
type RoamPage implements Node {
fields: RoamFields
}
type RoamBlock implements Node {
fields: RoamFields
}
union RoamPageOrBlock = RoamBlock | RoamPage
type RoamFields {
inboundReferences: [RoamPageOrBlock!]!
outboundReferences: [RoamPageOrBlock!]!
allOutboundReferences: [RoamPageOrBlock!]!
slug: String
}
`);
};
exports.createSchemaCustomization = createSchemaCustomization;