relay-utils
Version:
Utilities for working with Relay (modern) in general, and the Relay store in particular.
41 lines (31 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createAndAddEdgeToLinkedRecords = createAndAddEdgeToLinkedRecords;
var _relayRuntime = require("relay-runtime");
function createAndAddEdgeToLinkedRecords(store, config) {
var node = config.node;
config.linkedRecords.forEach(function (linkedRecordConfig) {
var linkedRecordOwner = store.get(linkedRecordConfig.parentID);
if (!node || !linkedRecordOwner) {
if (__DEV__) {
console.warn('Could not find node to create edge from or linked record owner to create edge on.');
}
return;
}
var linkedRecord = linkedRecordOwner.getLinkedRecord(linkedRecordConfig.key, linkedRecordConfig.filters);
if (!linkedRecord) {
if (__DEV__) {
console.warn('Could not find linked record.');
}
return;
}
var edge = _relayRuntime.ConnectionHandler.createEdge(store, linkedRecord, node, config.edgeName);
if (config.insertAt === 'START') {
_relayRuntime.ConnectionHandler.insertEdgeBefore(linkedRecord, edge);
} else {
_relayRuntime.ConnectionHandler.insertEdgeAfter(linkedRecord, edge);
}
});
}