in src/NeptuneSchema.js [288:313]
async function checkEdgeDirectionCardinality(d) {
let queryFrom = `MATCH (from:${sanitize(d.from)})-[r:${sanitize(d.edge.label)}]->(to:${sanitize(d.to)}) WITH to, count(from) as rels WHERE rels > 1 RETURN rels LIMIT 1`;
loggerDebug(`Checking edge direction cardinality: ${queryFrom}`);
let responseFrom = await queryNeptune(queryFrom);
let resultFrom = responseFrom.results[0];
let queryTo = `MATCH (from:${sanitize(d.from)})-[r:${sanitize(d.edge.label)}]->(to:${sanitize(d.to)}) WITH from, count(to) as rels WHERE rels > 1 RETURN rels LIMIT 1`;
loggerDebug(`Checking edge direction cardinality: ${queryTo}`)
let responseTo = await queryNeptune(queryTo);
let resultTo = responseTo.results[0];
let c = '';
if (resultFrom !== undefined) {
c = 'MANY-'
} else {
c = 'ONE-'
}
if (resultTo !== undefined) {
c += 'MANY'
} else {
c += 'ONE'
}
Object.assign(d.direction, {relationship: c});
loggerDebug('Found edge: ' + yellow(d.edge.label) + ' direction: ' + yellow(d.from) + ' -> ' + yellow(d.to) + ' relationship: ' + yellow(c), {toConsole: true});
}