Socket
Socket
Sign inDemoInstall

@graphql-tools/delegate

Package Overview
Dependencies
Maintainers
3
Versions
1495
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@graphql-tools/delegate - npm Package Compare versions

Comparing version 10.0.19-alpha-20240813170106-2c6fb0fc8fa322bcea8c10c35972ba621a04c4a4 to 10.0.19-alpha-20240814090031-2717386fb192872550f63351dc3007754cb68b87

2

cjs/defaultMergedResolver.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc