@graphitation/supermassive 3.4.2 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -536,13 +536,14 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
536
536
  typeNameFromReference(returnTypeRef),
537
537
  path
538
538
  );
539
- const isDefaultResolverUsed = resolveFn === exeContext.fieldResolver;
539
+ const isDefaultResolverUsed = resolveFn === exeContext.fieldResolver || fieldName === "__typename";
540
540
  const hooks = exeContext.fieldExecutionHooks;
541
+ let hookContext = void 0;
541
542
  try {
542
543
  const args = getArgumentValues(exeContext, fieldDefinition, fieldGroup[0]);
543
544
  const contextValue = exeContext.contextValue;
544
545
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.beforeFieldResolve)) {
545
- invokeBeforeFieldResolveHook(info, exeContext);
546
+ hookContext = invokeBeforeFieldResolveHook(info, exeContext);
546
547
  }
547
548
  const result = resolveFn(source, args, contextValue, info);
548
549
  let completed;
@@ -550,7 +551,12 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
550
551
  completed = result.then(
551
552
  (resolved) => {
552
553
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldResolve)) {
553
- invokeAfterFieldResolveHook(info, exeContext, resolved);
554
+ hookContext = invokeAfterFieldResolveHook(
555
+ info,
556
+ exeContext,
557
+ hookContext,
558
+ resolved
559
+ );
554
560
  }
555
561
  return completeValue(
556
562
  exeContext,
@@ -564,14 +570,25 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
564
570
  },
565
571
  (rawError) => {
566
572
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldResolve)) {
567
- invokeAfterFieldResolveHook(info, exeContext, void 0, rawError);
573
+ hookContext = invokeAfterFieldResolveHook(
574
+ info,
575
+ exeContext,
576
+ hookContext,
577
+ void 0,
578
+ rawError
579
+ );
568
580
  }
569
581
  throw rawError;
570
582
  }
571
583
  );
572
584
  } else {
573
585
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldResolve)) {
574
- invokeAfterFieldResolveHook(info, exeContext, result);
586
+ hookContext = invokeAfterFieldResolveHook(
587
+ info,
588
+ exeContext,
589
+ hookContext,
590
+ result
591
+ );
575
592
  }
576
593
  completed = completeValue(
577
594
  exeContext,
@@ -587,14 +604,25 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
587
604
  return completed.then(
588
605
  (resolved) => {
589
606
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldComplete)) {
590
- invokeAfterFieldCompleteHook(info, exeContext, resolved);
607
+ invokeAfterFieldCompleteHook(
608
+ info,
609
+ exeContext,
610
+ hookContext,
611
+ resolved
612
+ );
591
613
  }
592
614
  return resolved;
593
615
  },
594
616
  (rawError) => {
595
617
  const error = locatedError(rawError, fieldGroup, pathToArray(path));
596
618
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldComplete)) {
597
- invokeAfterFieldCompleteHook(info, exeContext, void 0, error);
619
+ invokeAfterFieldCompleteHook(
620
+ info,
621
+ exeContext,
622
+ hookContext,
623
+ void 0,
624
+ error
625
+ );
598
626
  }
599
627
  handleFieldError(
600
628
  rawError,
@@ -609,17 +637,29 @@ function resolveAndCompleteField(exeContext, parentTypeName, fieldDefinition, fi
609
637
  );
610
638
  }
611
639
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldComplete)) {
612
- invokeAfterFieldCompleteHook(info, exeContext, completed);
640
+ invokeAfterFieldCompleteHook(info, exeContext, hookContext, completed);
613
641
  }
614
642
  return completed;
615
643
  } catch (rawError) {
616
644
  const pathArray = pathToArray(path);
617
645
  const error = locatedError(rawError, fieldGroup, pathArray);
618
646
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldResolve) && error.path && arraysAreEqual(pathArray, error.path)) {
619
- invokeAfterFieldResolveHook(info, exeContext, void 0, error);
647
+ hookContext = invokeAfterFieldResolveHook(
648
+ info,
649
+ exeContext,
650
+ hookContext,
651
+ void 0,
652
+ error
653
+ );
620
654
  }
621
655
  if (!isDefaultResolverUsed && (hooks == null ? void 0 : hooks.afterFieldComplete)) {
622
- invokeAfterFieldCompleteHook(info, exeContext, void 0, error);
656
+ invokeAfterFieldCompleteHook(
657
+ info,
658
+ exeContext,
659
+ hookContext,
660
+ void 0,
661
+ error
662
+ );
623
663
  }
624
664
  handleFieldError(
625
665
  rawError,
@@ -1098,7 +1138,7 @@ function invokeBeforeFieldResolveHook(resolveInfo, exeContext) {
1098
1138
  if (!hook) {
1099
1139
  return;
1100
1140
  }
1101
- executeSafe(
1141
+ return executeSafe(
1102
1142
  () => hook({
1103
1143
  resolveInfo,
1104
1144
  context: exeContext.contextValue
@@ -1115,16 +1155,17 @@ function invokeBeforeFieldResolveHook(resolveInfo, exeContext) {
1115
1155
  }
1116
1156
  );
1117
1157
  }
1118
- function invokeAfterFieldResolveHook(resolveInfo, exeContext, result, error) {
1158
+ function invokeAfterFieldResolveHook(resolveInfo, exeContext, hookContext, result, error) {
1119
1159
  var _a;
1120
1160
  const hook = (_a = exeContext.fieldExecutionHooks) == null ? void 0 : _a.afterFieldResolve;
1121
1161
  if (!hook) {
1122
1162
  return;
1123
1163
  }
1124
- executeSafe(
1164
+ return executeSafe(
1125
1165
  () => hook({
1126
1166
  resolveInfo,
1127
1167
  context: exeContext.contextValue,
1168
+ hookContext,
1128
1169
  result,
1129
1170
  error
1130
1171
  }),
@@ -1140,7 +1181,7 @@ function invokeAfterFieldResolveHook(resolveInfo, exeContext, result, error) {
1140
1181
  }
1141
1182
  );
1142
1183
  }
1143
- function invokeAfterFieldCompleteHook(resolveInfo, exeContext, result, error) {
1184
+ function invokeAfterFieldCompleteHook(resolveInfo, exeContext, hookContext, result, error) {
1144
1185
  var _a;
1145
1186
  const hook = (_a = exeContext.fieldExecutionHooks) == null ? void 0 : _a.afterFieldComplete;
1146
1187
  if (!hook) {
@@ -1150,6 +1191,7 @@ function invokeAfterFieldCompleteHook(resolveInfo, exeContext, result, error) {
1150
1191
  () => hook({
1151
1192
  resolveInfo,
1152
1193
  context: exeContext.contextValue,
1194
+ hookContext,
1153
1195
  result,
1154
1196
  error
1155
1197
  }),