@graphql-tools/delegate
Advanced tools
Comparing version 10.0.19-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4 to 10.0.19-alpha-20240814090031-2717386fb192872550f63351dc3007754cb68b87
@@ -42,3 +42,3 @@ "use strict"; | ||
} | ||
const deferred = (0, utils_1.createDeferred)(); | ||
const deferred = (0, leftOver_js_1.createDeferred)(); | ||
missingDeferredFields.set(responseKey, deferred); | ||
@@ -45,0 +45,0 @@ return deferred.promise; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getPlanLeftOverFromParent = exports.PLAN_LEFT_OVER = exports.leftOverByDelegationPlan = void 0; | ||
exports.getPlanLeftOverFromParent = exports.PLAN_LEFT_OVER = exports.leftOverByDelegationPlan = exports.createDeferred = void 0; | ||
// TODO: Remove this after Node 22 | ||
function createDeferred() { | ||
if (Promise.withResolvers) { | ||
return Promise.withResolvers(); | ||
} | ||
let resolve; | ||
let reject; | ||
const promise = new Promise((_resolve, _reject) => { | ||
resolve = _resolve; | ||
reject = _reject; | ||
}); | ||
return { promise, resolve: resolve, reject: reject }; | ||
} | ||
exports.createDeferred = createDeferred; | ||
exports.leftOverByDelegationPlan = new WeakMap(); | ||
@@ -5,0 +19,0 @@ exports.PLAN_LEFT_OVER = Symbol('PLAN_LEFT_OVER'); |
@@ -197,7 +197,5 @@ "use strict"; | ||
if (!skipAddingDependencyNodes) { | ||
const fieldNodes = fieldNodesByField[parentTypeName]?.[fieldName]; | ||
if (fieldNodes != null) { | ||
for (const fieldNode of fieldNodes) { | ||
newSelections.add(fieldNode); | ||
} | ||
const fieldNodesMapForType = fieldNodesByField[parentTypeName]; | ||
if (fieldNodesMapForType) { | ||
addDependenciesNestedly(selection, new Set(), fieldNodesMapForType, newSelections); | ||
} | ||
@@ -251,2 +249,15 @@ const dynamicSelectionSets = dynamicSelectionSetsByField[parentTypeName]?.[fieldName]; | ||
} | ||
function addDependenciesNestedly(fieldNode, seenFieldNames, fieldNodesByField, newSelections) { | ||
if (seenFieldNames.has(fieldNode.name.value)) { | ||
return; | ||
} | ||
seenFieldNames.add(fieldNode.name.value); | ||
const fieldNodes = fieldNodesByField[fieldNode.name.value]; | ||
if (fieldNodes != null) { | ||
for (const nestedFieldNode of fieldNodes) { | ||
newSelections.add(nestedFieldNode); | ||
addDependenciesNestedly(nestedFieldNode, seenFieldNames, fieldNodesByField, newSelections); | ||
} | ||
} | ||
} | ||
function generateInlineFragment(typeName, selectionSet) { | ||
@@ -253,0 +264,0 @@ return { |
import { defaultFieldResolver, Kind, responsePathAsArray, } from 'graphql'; | ||
import { createDeferred, getResponseKeyFromInfo, isPromise } from '@graphql-tools/utils'; | ||
import { getPlanLeftOverFromParent } from './leftOver.js'; | ||
import { getResponseKeyFromInfo, isPromise } from '@graphql-tools/utils'; | ||
import { createDeferred, getPlanLeftOverFromParent } from './leftOver.js'; | ||
import { getSubschema, getUnpathedErrors, handleResolverResult, isExternalObject, } from './mergeFields.js'; | ||
@@ -5,0 +5,0 @@ import { resolveExternalValue } from './resolveExternalValue.js'; |
@@ -0,1 +1,14 @@ | ||
// TODO: Remove this after Node 22 | ||
export function createDeferred() { | ||
if (Promise.withResolvers) { | ||
return Promise.withResolvers(); | ||
} | ||
let resolve; | ||
let reject; | ||
const promise = new Promise((_resolve, _reject) => { | ||
resolve = _resolve; | ||
reject = _reject; | ||
}); | ||
return { promise, resolve: resolve, reject: reject }; | ||
} | ||
export const leftOverByDelegationPlan = new WeakMap(); | ||
@@ -2,0 +15,0 @@ export const PLAN_LEFT_OVER = Symbol('PLAN_LEFT_OVER'); |
@@ -193,7 +193,5 @@ import { getNamedType, isAbstractType, isInterfaceType, isLeafType, isObjectType, Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql'; | ||
if (!skipAddingDependencyNodes) { | ||
const fieldNodes = fieldNodesByField[parentTypeName]?.[fieldName]; | ||
if (fieldNodes != null) { | ||
for (const fieldNode of fieldNodes) { | ||
newSelections.add(fieldNode); | ||
} | ||
const fieldNodesMapForType = fieldNodesByField[parentTypeName]; | ||
if (fieldNodesMapForType) { | ||
addDependenciesNestedly(selection, new Set(), fieldNodesMapForType, newSelections); | ||
} | ||
@@ -247,2 +245,15 @@ const dynamicSelectionSets = dynamicSelectionSetsByField[parentTypeName]?.[fieldName]; | ||
} | ||
function addDependenciesNestedly(fieldNode, seenFieldNames, fieldNodesByField, newSelections) { | ||
if (seenFieldNames.has(fieldNode.name.value)) { | ||
return; | ||
} | ||
seenFieldNames.add(fieldNode.name.value); | ||
const fieldNodes = fieldNodesByField[fieldNode.name.value]; | ||
if (fieldNodes != null) { | ||
for (const nestedFieldNode of fieldNodes) { | ||
newSelections.add(nestedFieldNode); | ||
addDependenciesNestedly(nestedFieldNode, seenFieldNames, fieldNodesByField, newSelections); | ||
} | ||
} | ||
} | ||
function generateInlineFragment(typeName, selectionSet) { | ||
@@ -249,0 +260,0 @@ return { |
{ | ||
"name": "@graphql-tools/delegate", | ||
"version": "10.0.19-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4", | ||
"version": "10.0.19-alpha-20240814090031-2717386fb192872550f63351dc3007754cb68b87", | ||
"description": "A set of utils for faster development of GraphQL tools", | ||
@@ -11,5 +11,5 @@ "sideEffects": false, | ||
"@graphql-tools/batch-execute": "^9.0.4", | ||
"@graphql-tools/executor": "2.0.0-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4", | ||
"@graphql-tools/executor": "^1.3.1", | ||
"@graphql-tools/schema": "^10.0.4", | ||
"@graphql-tools/utils": "10.6.0-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4", | ||
"@graphql-tools/utils": "^10.3.4", | ||
"@repeaterjs/repeater": "^3.0.6", | ||
@@ -16,0 +16,0 @@ "dataloader": "^2.2.2", |
import { FieldNode } from 'graphql'; | ||
import { Deferred } from '@graphql-tools/utils'; | ||
import { Subschema } from './Subschema.js'; | ||
import { ExternalObject } from './types.js'; | ||
export type Deferred<T = unknown> = PromiseWithResolvers<T>; | ||
export declare function createDeferred<T>(): Deferred<T>; | ||
export interface DelegationPlanLeftOver { | ||
@@ -6,0 +7,0 @@ unproxiableFieldNodes: Array<FieldNode>; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
232932
4609
+ Added@graphql-tools/executor@1.3.1(transitive)
- Removed@graphql-tools/executor@2.0.0-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4(transitive)
- Removed@graphql-tools/utils@10.6.0-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4(transitive)
- Removeddlv@1.1.3(transitive)
Updated@graphql-tools/utils@^10.3.4