diff --git a/packages/plugins/on-resolve/src/index.ts b/packages/plugins/on-resolve/src/index.ts index 1487b7ce1d..6143f9af98 100644 --- a/packages/plugins/on-resolve/src/index.ts +++ b/packages/plugins/on-resolve/src/index.ts @@ -39,6 +39,12 @@ export type UseOnResolveOptions = { * @default true */ skipIntrospection?: boolean; + /** + * Skip wrapping fields that have the default resolver (no custom resolver). + * + * @default false + */ + skipDefaultResolvers?: boolean; }; /** @@ -59,6 +65,7 @@ export function useOnResolve = {}>( for (const type of Object.values(schema.getTypeMap())) { if ((!opts.skipIntrospection || !isIntrospectionType(type)) && isObjectType(type)) { for (const field of Object.values(type.getFields())) { + if (opts.skipDefaultResolvers && (!field.resolve || field.resolve === defaultFieldResolver)) continue; if (field[hasWrappedResolveSymbol]) continue; let resolver = (field.resolve || defaultFieldResolver) as Resolver;