UNPKG

join-monster

Version:

A GraphQL to SQL query execution layer for batch data fetching.

23 lines (22 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAliasKey = getAliasKey; exports.hasConflictingSiblings = hasConflictingSiblings; exports.resolveAliasValue = resolveAliasValue; var _lodash = require("lodash"); const aliasSeparator = '$'; function getAliasKey(fieldName, alias) { return fieldName + aliasSeparator + (alias || ''); } const neverConflictingTypes = ['noop', 'column', 'sqlDeps']; const alwaysConflictingTypes = ['table', 'union']; function hasConflictingSiblings(node, siblings) { return !neverConflictingTypes.includes(node.type) && siblings.some(sibling => sibling !== node && sibling.fieldName === node.fieldName && sibling.alias !== node.alias && !neverConflictingTypes.includes(sibling.type) && (alwaysConflictingTypes.includes(sibling.type) || !(0, _lodash.isEqual)(node.args || {}, sibling.args || {}))); } function resolveAliasValue(args, context, info) { if (!info.fieldNodes || !info.fieldNodes[0]) return null; const alias = info.fieldNodes[0].alias && info.fieldNodes[0].alias.value; return this[getAliasKey(info.fieldName, alias)]; }