github.com/geneva/gqlgen@v0.17.7-0.20230801155730-7b9317164836/plugin/federation/testdata/entityresolver/generated/federation.go (about)

     1  // Code generated by github.com/geneva/gqlgen, DO NOT EDIT.
     2  
     3  package generated
     4  
     5  import (
     6  	"context"
     7  	"errors"
     8  	"fmt"
     9  	"strings"
    10  	"sync"
    11  
    12  	"github.com/geneva/gqlgen/plugin/federation/fedruntime"
    13  	"github.com/geneva/gqlgen/plugin/federation/testdata/entityresolver/generated/model"
    14  )
    15  
    16  var (
    17  	ErrUnknownType  = errors.New("unknown type")
    18  	ErrTypeNotFound = errors.New("type not found")
    19  )
    20  
    21  func (ec *executionContext) __resolve__service(ctx context.Context) (fedruntime.Service, error) {
    22  	if ec.DisableIntrospection {
    23  		return fedruntime.Service{}, errors.New("federated introspection disabled")
    24  	}
    25  
    26  	var sdl []string
    27  
    28  	for _, src := range sources {
    29  		if src.BuiltIn {
    30  			continue
    31  		}
    32  		sdl = append(sdl, src.Input)
    33  	}
    34  
    35  	return fedruntime.Service{
    36  		SDL: strings.Join(sdl, "\n"),
    37  	}, nil
    38  }
    39  
    40  func (ec *executionContext) __resolve_entities(ctx context.Context, representations []map[string]interface{}) []fedruntime.Entity {
    41  	list := make([]fedruntime.Entity, len(representations))
    42  
    43  	repsMap := map[string]struct {
    44  		i []int
    45  		r []map[string]interface{}
    46  	}{}
    47  
    48  	// We group entities by typename so that we can parallelize their resolution.
    49  	// This is particularly helpful when there are entity groups in multi mode.
    50  	buildRepresentationGroups := func(reps []map[string]interface{}) {
    51  		for i, rep := range reps {
    52  			typeName, ok := rep["__typename"].(string)
    53  			if !ok {
    54  				// If there is no __typename, we just skip the representation;
    55  				// we just won't be resolving these unknown types.
    56  				ec.Error(ctx, errors.New("__typename must be an existing string"))
    57  				continue
    58  			}
    59  
    60  			_r := repsMap[typeName]
    61  			_r.i = append(_r.i, i)
    62  			_r.r = append(_r.r, rep)
    63  			repsMap[typeName] = _r
    64  		}
    65  	}
    66  
    67  	isMulti := func(typeName string) bool {
    68  		switch typeName {
    69  		case "MultiHello":
    70  			return true
    71  		case "MultiHelloMultipleRequires":
    72  			return true
    73  		case "MultiHelloRequires":
    74  			return true
    75  		case "MultiHelloWithError":
    76  			return true
    77  		case "MultiPlanetRequiresNested":
    78  			return true
    79  		default:
    80  			return false
    81  		}
    82  	}
    83  
    84  	resolveEntity := func(ctx context.Context, typeName string, rep map[string]interface{}, idx []int, i int) (err error) {
    85  		// we need to do our own panic handling, because we may be called in a
    86  		// goroutine, where the usual panic handling can't catch us
    87  		defer func() {
    88  			if r := recover(); r != nil {
    89  				err = ec.Recover(ctx, r)
    90  			}
    91  		}()
    92  
    93  		switch typeName {
    94  		case "Hello":
    95  			resolverName, err := entityResolverNameForHello(ctx, rep)
    96  			if err != nil {
    97  				return fmt.Errorf(`finding resolver for Entity "Hello": %w`, err)
    98  			}
    99  			switch resolverName {
   100  
   101  			case "findHelloByName":
   102  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   103  				if err != nil {
   104  					return fmt.Errorf(`unmarshalling param 0 for findHelloByName(): %w`, err)
   105  				}
   106  				entity, err := ec.resolvers.Entity().FindHelloByName(ctx, id0)
   107  				if err != nil {
   108  					return fmt.Errorf(`resolving Entity "Hello": %w`, err)
   109  				}
   110  
   111  				list[idx[i]] = entity
   112  				return nil
   113  			}
   114  		case "HelloMultiSingleKeys":
   115  			resolverName, err := entityResolverNameForHelloMultiSingleKeys(ctx, rep)
   116  			if err != nil {
   117  				return fmt.Errorf(`finding resolver for Entity "HelloMultiSingleKeys": %w`, err)
   118  			}
   119  			switch resolverName {
   120  
   121  			case "findHelloMultiSingleKeysByKey1AndKey2":
   122  				id0, err := ec.unmarshalNString2string(ctx, rep["key1"])
   123  				if err != nil {
   124  					return fmt.Errorf(`unmarshalling param 0 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)
   125  				}
   126  				id1, err := ec.unmarshalNString2string(ctx, rep["key2"])
   127  				if err != nil {
   128  					return fmt.Errorf(`unmarshalling param 1 for findHelloMultiSingleKeysByKey1AndKey2(): %w`, err)
   129  				}
   130  				entity, err := ec.resolvers.Entity().FindHelloMultiSingleKeysByKey1AndKey2(ctx, id0, id1)
   131  				if err != nil {
   132  					return fmt.Errorf(`resolving Entity "HelloMultiSingleKeys": %w`, err)
   133  				}
   134  
   135  				list[idx[i]] = entity
   136  				return nil
   137  			}
   138  		case "HelloWithErrors":
   139  			resolverName, err := entityResolverNameForHelloWithErrors(ctx, rep)
   140  			if err != nil {
   141  				return fmt.Errorf(`finding resolver for Entity "HelloWithErrors": %w`, err)
   142  			}
   143  			switch resolverName {
   144  
   145  			case "findHelloWithErrorsByName":
   146  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   147  				if err != nil {
   148  					return fmt.Errorf(`unmarshalling param 0 for findHelloWithErrorsByName(): %w`, err)
   149  				}
   150  				entity, err := ec.resolvers.Entity().FindHelloWithErrorsByName(ctx, id0)
   151  				if err != nil {
   152  					return fmt.Errorf(`resolving Entity "HelloWithErrors": %w`, err)
   153  				}
   154  
   155  				list[idx[i]] = entity
   156  				return nil
   157  			}
   158  		case "PlanetMultipleRequires":
   159  			resolverName, err := entityResolverNameForPlanetMultipleRequires(ctx, rep)
   160  			if err != nil {
   161  				return fmt.Errorf(`finding resolver for Entity "PlanetMultipleRequires": %w`, err)
   162  			}
   163  			switch resolverName {
   164  
   165  			case "findPlanetMultipleRequiresByName":
   166  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   167  				if err != nil {
   168  					return fmt.Errorf(`unmarshalling param 0 for findPlanetMultipleRequiresByName(): %w`, err)
   169  				}
   170  				entity, err := ec.resolvers.Entity().FindPlanetMultipleRequiresByName(ctx, id0)
   171  				if err != nil {
   172  					return fmt.Errorf(`resolving Entity "PlanetMultipleRequires": %w`, err)
   173  				}
   174  
   175  				entity.Diameter, err = ec.unmarshalNInt2int(ctx, rep["diameter"])
   176  				if err != nil {
   177  					return err
   178  				}
   179  				entity.Density, err = ec.unmarshalNInt2int(ctx, rep["density"])
   180  				if err != nil {
   181  					return err
   182  				}
   183  				list[idx[i]] = entity
   184  				return nil
   185  			}
   186  		case "PlanetRequires":
   187  			resolverName, err := entityResolverNameForPlanetRequires(ctx, rep)
   188  			if err != nil {
   189  				return fmt.Errorf(`finding resolver for Entity "PlanetRequires": %w`, err)
   190  			}
   191  			switch resolverName {
   192  
   193  			case "findPlanetRequiresByName":
   194  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   195  				if err != nil {
   196  					return fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresByName(): %w`, err)
   197  				}
   198  				entity, err := ec.resolvers.Entity().FindPlanetRequiresByName(ctx, id0)
   199  				if err != nil {
   200  					return fmt.Errorf(`resolving Entity "PlanetRequires": %w`, err)
   201  				}
   202  
   203  				entity.Diameter, err = ec.unmarshalNInt2int(ctx, rep["diameter"])
   204  				if err != nil {
   205  					return err
   206  				}
   207  				list[idx[i]] = entity
   208  				return nil
   209  			}
   210  		case "PlanetRequiresNested":
   211  			resolverName, err := entityResolverNameForPlanetRequiresNested(ctx, rep)
   212  			if err != nil {
   213  				return fmt.Errorf(`finding resolver for Entity "PlanetRequiresNested": %w`, err)
   214  			}
   215  			switch resolverName {
   216  
   217  			case "findPlanetRequiresNestedByName":
   218  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   219  				if err != nil {
   220  					return fmt.Errorf(`unmarshalling param 0 for findPlanetRequiresNestedByName(): %w`, err)
   221  				}
   222  				entity, err := ec.resolvers.Entity().FindPlanetRequiresNestedByName(ctx, id0)
   223  				if err != nil {
   224  					return fmt.Errorf(`resolving Entity "PlanetRequiresNested": %w`, err)
   225  				}
   226  
   227  				entity.World.Foo, err = ec.unmarshalNString2string(ctx, rep["world"].(map[string]interface{})["foo"])
   228  				if err != nil {
   229  					return err
   230  				}
   231  				list[idx[i]] = entity
   232  				return nil
   233  			}
   234  		case "World":
   235  			resolverName, err := entityResolverNameForWorld(ctx, rep)
   236  			if err != nil {
   237  				return fmt.Errorf(`finding resolver for Entity "World": %w`, err)
   238  			}
   239  			switch resolverName {
   240  
   241  			case "findWorldByHelloNameAndFoo":
   242  				id0, err := ec.unmarshalNString2string(ctx, rep["hello"].(map[string]interface{})["name"])
   243  				if err != nil {
   244  					return fmt.Errorf(`unmarshalling param 0 for findWorldByHelloNameAndFoo(): %w`, err)
   245  				}
   246  				id1, err := ec.unmarshalNString2string(ctx, rep["foo"])
   247  				if err != nil {
   248  					return fmt.Errorf(`unmarshalling param 1 for findWorldByHelloNameAndFoo(): %w`, err)
   249  				}
   250  				entity, err := ec.resolvers.Entity().FindWorldByHelloNameAndFoo(ctx, id0, id1)
   251  				if err != nil {
   252  					return fmt.Errorf(`resolving Entity "World": %w`, err)
   253  				}
   254  
   255  				list[idx[i]] = entity
   256  				return nil
   257  			}
   258  		case "WorldName":
   259  			resolverName, err := entityResolverNameForWorldName(ctx, rep)
   260  			if err != nil {
   261  				return fmt.Errorf(`finding resolver for Entity "WorldName": %w`, err)
   262  			}
   263  			switch resolverName {
   264  
   265  			case "findWorldNameByName":
   266  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   267  				if err != nil {
   268  					return fmt.Errorf(`unmarshalling param 0 for findWorldNameByName(): %w`, err)
   269  				}
   270  				entity, err := ec.resolvers.Entity().FindWorldNameByName(ctx, id0)
   271  				if err != nil {
   272  					return fmt.Errorf(`resolving Entity "WorldName": %w`, err)
   273  				}
   274  
   275  				list[idx[i]] = entity
   276  				return nil
   277  			}
   278  		case "WorldWithMultipleKeys":
   279  			resolverName, err := entityResolverNameForWorldWithMultipleKeys(ctx, rep)
   280  			if err != nil {
   281  				return fmt.Errorf(`finding resolver for Entity "WorldWithMultipleKeys": %w`, err)
   282  			}
   283  			switch resolverName {
   284  
   285  			case "findWorldWithMultipleKeysByHelloNameAndFoo":
   286  				id0, err := ec.unmarshalNString2string(ctx, rep["hello"].(map[string]interface{})["name"])
   287  				if err != nil {
   288  					return fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)
   289  				}
   290  				id1, err := ec.unmarshalNString2string(ctx, rep["foo"])
   291  				if err != nil {
   292  					return fmt.Errorf(`unmarshalling param 1 for findWorldWithMultipleKeysByHelloNameAndFoo(): %w`, err)
   293  				}
   294  				entity, err := ec.resolvers.Entity().FindWorldWithMultipleKeysByHelloNameAndFoo(ctx, id0, id1)
   295  				if err != nil {
   296  					return fmt.Errorf(`resolving Entity "WorldWithMultipleKeys": %w`, err)
   297  				}
   298  
   299  				list[idx[i]] = entity
   300  				return nil
   301  			case "findWorldWithMultipleKeysByBar":
   302  				id0, err := ec.unmarshalNInt2int(ctx, rep["bar"])
   303  				if err != nil {
   304  					return fmt.Errorf(`unmarshalling param 0 for findWorldWithMultipleKeysByBar(): %w`, err)
   305  				}
   306  				entity, err := ec.resolvers.Entity().FindWorldWithMultipleKeysByBar(ctx, id0)
   307  				if err != nil {
   308  					return fmt.Errorf(`resolving Entity "WorldWithMultipleKeys": %w`, err)
   309  				}
   310  
   311  				list[idx[i]] = entity
   312  				return nil
   313  			}
   314  
   315  		}
   316  		return fmt.Errorf("%w: %s", ErrUnknownType, typeName)
   317  	}
   318  
   319  	resolveManyEntities := func(ctx context.Context, typeName string, reps []map[string]interface{}, idx []int) (err error) {
   320  		// we need to do our own panic handling, because we may be called in a
   321  		// goroutine, where the usual panic handling can't catch us
   322  		defer func() {
   323  			if r := recover(); r != nil {
   324  				err = ec.Recover(ctx, r)
   325  			}
   326  		}()
   327  
   328  		switch typeName {
   329  
   330  		case "MultiHello":
   331  			_reps := make([]*model.MultiHelloByNamesInput, len(reps))
   332  
   333  			for i, rep := range reps {
   334  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   335  				if err != nil {
   336  					return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name"))
   337  				}
   338  
   339  				_reps[i] = &model.MultiHelloByNamesInput{
   340  					Name: id0,
   341  				}
   342  			}
   343  
   344  			entities, err := ec.resolvers.Entity().FindManyMultiHelloByNames(ctx, _reps)
   345  			if err != nil {
   346  				return err
   347  			}
   348  
   349  			for i, entity := range entities {
   350  				list[idx[i]] = entity
   351  			}
   352  			return nil
   353  
   354  		case "MultiHelloMultipleRequires":
   355  			_reps := make([]*model.MultiHelloMultipleRequiresByNamesInput, len(reps))
   356  
   357  			for i, rep := range reps {
   358  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   359  				if err != nil {
   360  					return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name"))
   361  				}
   362  
   363  				_reps[i] = &model.MultiHelloMultipleRequiresByNamesInput{
   364  					Name: id0,
   365  				}
   366  			}
   367  
   368  			entities, err := ec.resolvers.Entity().FindManyMultiHelloMultipleRequiresByNames(ctx, _reps)
   369  			if err != nil {
   370  				return err
   371  			}
   372  
   373  			for i, entity := range entities {
   374  				entity.Key1, err = ec.unmarshalNString2string(ctx, reps[i]["key1"])
   375  				if err != nil {
   376  					return err
   377  				}
   378  				entity.Key2, err = ec.unmarshalNString2string(ctx, reps[i]["key2"])
   379  				if err != nil {
   380  					return err
   381  				}
   382  				list[idx[i]] = entity
   383  			}
   384  			return nil
   385  
   386  		case "MultiHelloRequires":
   387  			_reps := make([]*model.MultiHelloRequiresByNamesInput, len(reps))
   388  
   389  			for i, rep := range reps {
   390  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   391  				if err != nil {
   392  					return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name"))
   393  				}
   394  
   395  				_reps[i] = &model.MultiHelloRequiresByNamesInput{
   396  					Name: id0,
   397  				}
   398  			}
   399  
   400  			entities, err := ec.resolvers.Entity().FindManyMultiHelloRequiresByNames(ctx, _reps)
   401  			if err != nil {
   402  				return err
   403  			}
   404  
   405  			for i, entity := range entities {
   406  				entity.Key1, err = ec.unmarshalNString2string(ctx, reps[i]["key1"])
   407  				if err != nil {
   408  					return err
   409  				}
   410  				list[idx[i]] = entity
   411  			}
   412  			return nil
   413  
   414  		case "MultiHelloWithError":
   415  			_reps := make([]*model.MultiHelloWithErrorByNamesInput, len(reps))
   416  
   417  			for i, rep := range reps {
   418  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   419  				if err != nil {
   420  					return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name"))
   421  				}
   422  
   423  				_reps[i] = &model.MultiHelloWithErrorByNamesInput{
   424  					Name: id0,
   425  				}
   426  			}
   427  
   428  			entities, err := ec.resolvers.Entity().FindManyMultiHelloWithErrorByNames(ctx, _reps)
   429  			if err != nil {
   430  				return err
   431  			}
   432  
   433  			for i, entity := range entities {
   434  				list[idx[i]] = entity
   435  			}
   436  			return nil
   437  
   438  		case "MultiPlanetRequiresNested":
   439  			_reps := make([]*model.MultiPlanetRequiresNestedByNamesInput, len(reps))
   440  
   441  			for i, rep := range reps {
   442  				id0, err := ec.unmarshalNString2string(ctx, rep["name"])
   443  				if err != nil {
   444  					return errors.New(fmt.Sprintf("Field %s undefined in schema.", "name"))
   445  				}
   446  
   447  				_reps[i] = &model.MultiPlanetRequiresNestedByNamesInput{
   448  					Name: id0,
   449  				}
   450  			}
   451  
   452  			entities, err := ec.resolvers.Entity().FindManyMultiPlanetRequiresNestedByNames(ctx, _reps)
   453  			if err != nil {
   454  				return err
   455  			}
   456  
   457  			for i, entity := range entities {
   458  				entity.World.Foo, err = ec.unmarshalNString2string(ctx, reps[i]["world"].(map[string]interface{})["foo"])
   459  				if err != nil {
   460  					return err
   461  				}
   462  				list[idx[i]] = entity
   463  			}
   464  			return nil
   465  
   466  		default:
   467  			return errors.New("unknown type: " + typeName)
   468  		}
   469  	}
   470  
   471  	resolveEntityGroup := func(typeName string, reps []map[string]interface{}, idx []int) {
   472  		if isMulti(typeName) {
   473  			err := resolveManyEntities(ctx, typeName, reps, idx)
   474  			if err != nil {
   475  				ec.Error(ctx, err)
   476  			}
   477  		} else {
   478  			// if there are multiple entities to resolve, parallelize (similar to
   479  			// graphql.FieldSet.Dispatch)
   480  			var e sync.WaitGroup
   481  			e.Add(len(reps))
   482  			for i, rep := range reps {
   483  				i, rep := i, rep
   484  				go func(i int, rep map[string]interface{}) {
   485  					err := resolveEntity(ctx, typeName, rep, idx, i)
   486  					if err != nil {
   487  						ec.Error(ctx, err)
   488  					}
   489  					e.Done()
   490  				}(i, rep)
   491  			}
   492  			e.Wait()
   493  		}
   494  	}
   495  	buildRepresentationGroups(representations)
   496  
   497  	switch len(repsMap) {
   498  	case 0:
   499  		return list
   500  	case 1:
   501  		for typeName, reps := range repsMap {
   502  			resolveEntityGroup(typeName, reps.r, reps.i)
   503  		}
   504  		return list
   505  	default:
   506  		var g sync.WaitGroup
   507  		g.Add(len(repsMap))
   508  		for typeName, reps := range repsMap {
   509  			go func(typeName string, reps []map[string]interface{}, idx []int) {
   510  				resolveEntityGroup(typeName, reps, idx)
   511  				g.Done()
   512  			}(typeName, reps.r, reps.i)
   513  		}
   514  		g.Wait()
   515  		return list
   516  	}
   517  }
   518  
   519  func entityResolverNameForHello(ctx context.Context, rep map[string]interface{}) (string, error) {
   520  	for {
   521  		var (
   522  			m   map[string]interface{}
   523  			val interface{}
   524  			ok  bool
   525  		)
   526  		_ = val
   527  		m = rep
   528  		if _, ok = m["name"]; !ok {
   529  			break
   530  		}
   531  		return "findHelloByName", nil
   532  	}
   533  	return "", fmt.Errorf("%w for Hello", ErrTypeNotFound)
   534  }
   535  
   536  func entityResolverNameForHelloMultiSingleKeys(ctx context.Context, rep map[string]interface{}) (string, error) {
   537  	for {
   538  		var (
   539  			m   map[string]interface{}
   540  			val interface{}
   541  			ok  bool
   542  		)
   543  		_ = val
   544  		m = rep
   545  		if _, ok = m["key1"]; !ok {
   546  			break
   547  		}
   548  		m = rep
   549  		if _, ok = m["key2"]; !ok {
   550  			break
   551  		}
   552  		return "findHelloMultiSingleKeysByKey1AndKey2", nil
   553  	}
   554  	return "", fmt.Errorf("%w for HelloMultiSingleKeys", ErrTypeNotFound)
   555  }
   556  
   557  func entityResolverNameForHelloWithErrors(ctx context.Context, rep map[string]interface{}) (string, error) {
   558  	for {
   559  		var (
   560  			m   map[string]interface{}
   561  			val interface{}
   562  			ok  bool
   563  		)
   564  		_ = val
   565  		m = rep
   566  		if _, ok = m["name"]; !ok {
   567  			break
   568  		}
   569  		return "findHelloWithErrorsByName", nil
   570  	}
   571  	return "", fmt.Errorf("%w for HelloWithErrors", ErrTypeNotFound)
   572  }
   573  
   574  func entityResolverNameForMultiHello(ctx context.Context, rep map[string]interface{}) (string, error) {
   575  	for {
   576  		var (
   577  			m   map[string]interface{}
   578  			val interface{}
   579  			ok  bool
   580  		)
   581  		_ = val
   582  		m = rep
   583  		if _, ok = m["name"]; !ok {
   584  			break
   585  		}
   586  		return "findManyMultiHelloByNames", nil
   587  	}
   588  	return "", fmt.Errorf("%w for MultiHello", ErrTypeNotFound)
   589  }
   590  
   591  func entityResolverNameForMultiHelloMultipleRequires(ctx context.Context, rep map[string]interface{}) (string, error) {
   592  	for {
   593  		var (
   594  			m   map[string]interface{}
   595  			val interface{}
   596  			ok  bool
   597  		)
   598  		_ = val
   599  		m = rep
   600  		if _, ok = m["name"]; !ok {
   601  			break
   602  		}
   603  		return "findManyMultiHelloMultipleRequiresByNames", nil
   604  	}
   605  	return "", fmt.Errorf("%w for MultiHelloMultipleRequires", ErrTypeNotFound)
   606  }
   607  
   608  func entityResolverNameForMultiHelloRequires(ctx context.Context, rep map[string]interface{}) (string, error) {
   609  	for {
   610  		var (
   611  			m   map[string]interface{}
   612  			val interface{}
   613  			ok  bool
   614  		)
   615  		_ = val
   616  		m = rep
   617  		if _, ok = m["name"]; !ok {
   618  			break
   619  		}
   620  		return "findManyMultiHelloRequiresByNames", nil
   621  	}
   622  	return "", fmt.Errorf("%w for MultiHelloRequires", ErrTypeNotFound)
   623  }
   624  
   625  func entityResolverNameForMultiHelloWithError(ctx context.Context, rep map[string]interface{}) (string, error) {
   626  	for {
   627  		var (
   628  			m   map[string]interface{}
   629  			val interface{}
   630  			ok  bool
   631  		)
   632  		_ = val
   633  		m = rep
   634  		if _, ok = m["name"]; !ok {
   635  			break
   636  		}
   637  		return "findManyMultiHelloWithErrorByNames", nil
   638  	}
   639  	return "", fmt.Errorf("%w for MultiHelloWithError", ErrTypeNotFound)
   640  }
   641  
   642  func entityResolverNameForMultiPlanetRequiresNested(ctx context.Context, rep map[string]interface{}) (string, error) {
   643  	for {
   644  		var (
   645  			m   map[string]interface{}
   646  			val interface{}
   647  			ok  bool
   648  		)
   649  		_ = val
   650  		m = rep
   651  		if _, ok = m["name"]; !ok {
   652  			break
   653  		}
   654  		return "findManyMultiPlanetRequiresNestedByNames", nil
   655  	}
   656  	return "", fmt.Errorf("%w for MultiPlanetRequiresNested", ErrTypeNotFound)
   657  }
   658  
   659  func entityResolverNameForPlanetMultipleRequires(ctx context.Context, rep map[string]interface{}) (string, error) {
   660  	for {
   661  		var (
   662  			m   map[string]interface{}
   663  			val interface{}
   664  			ok  bool
   665  		)
   666  		_ = val
   667  		m = rep
   668  		if _, ok = m["name"]; !ok {
   669  			break
   670  		}
   671  		return "findPlanetMultipleRequiresByName", nil
   672  	}
   673  	return "", fmt.Errorf("%w for PlanetMultipleRequires", ErrTypeNotFound)
   674  }
   675  
   676  func entityResolverNameForPlanetRequires(ctx context.Context, rep map[string]interface{}) (string, error) {
   677  	for {
   678  		var (
   679  			m   map[string]interface{}
   680  			val interface{}
   681  			ok  bool
   682  		)
   683  		_ = val
   684  		m = rep
   685  		if _, ok = m["name"]; !ok {
   686  			break
   687  		}
   688  		return "findPlanetRequiresByName", nil
   689  	}
   690  	return "", fmt.Errorf("%w for PlanetRequires", ErrTypeNotFound)
   691  }
   692  
   693  func entityResolverNameForPlanetRequiresNested(ctx context.Context, rep map[string]interface{}) (string, error) {
   694  	for {
   695  		var (
   696  			m   map[string]interface{}
   697  			val interface{}
   698  			ok  bool
   699  		)
   700  		_ = val
   701  		m = rep
   702  		if _, ok = m["name"]; !ok {
   703  			break
   704  		}
   705  		return "findPlanetRequiresNestedByName", nil
   706  	}
   707  	return "", fmt.Errorf("%w for PlanetRequiresNested", ErrTypeNotFound)
   708  }
   709  
   710  func entityResolverNameForWorld(ctx context.Context, rep map[string]interface{}) (string, error) {
   711  	for {
   712  		var (
   713  			m   map[string]interface{}
   714  			val interface{}
   715  			ok  bool
   716  		)
   717  		_ = val
   718  		m = rep
   719  		if val, ok = m["hello"]; !ok {
   720  			break
   721  		}
   722  		if m, ok = val.(map[string]interface{}); !ok {
   723  			break
   724  		}
   725  		if _, ok = m["name"]; !ok {
   726  			break
   727  		}
   728  		m = rep
   729  		if _, ok = m["foo"]; !ok {
   730  			break
   731  		}
   732  		return "findWorldByHelloNameAndFoo", nil
   733  	}
   734  	return "", fmt.Errorf("%w for World", ErrTypeNotFound)
   735  }
   736  
   737  func entityResolverNameForWorldName(ctx context.Context, rep map[string]interface{}) (string, error) {
   738  	for {
   739  		var (
   740  			m   map[string]interface{}
   741  			val interface{}
   742  			ok  bool
   743  		)
   744  		_ = val
   745  		m = rep
   746  		if _, ok = m["name"]; !ok {
   747  			break
   748  		}
   749  		return "findWorldNameByName", nil
   750  	}
   751  	return "", fmt.Errorf("%w for WorldName", ErrTypeNotFound)
   752  }
   753  
   754  func entityResolverNameForWorldWithMultipleKeys(ctx context.Context, rep map[string]interface{}) (string, error) {
   755  	for {
   756  		var (
   757  			m   map[string]interface{}
   758  			val interface{}
   759  			ok  bool
   760  		)
   761  		_ = val
   762  		m = rep
   763  		if val, ok = m["hello"]; !ok {
   764  			break
   765  		}
   766  		if m, ok = val.(map[string]interface{}); !ok {
   767  			break
   768  		}
   769  		if _, ok = m["name"]; !ok {
   770  			break
   771  		}
   772  		m = rep
   773  		if _, ok = m["foo"]; !ok {
   774  			break
   775  		}
   776  		return "findWorldWithMultipleKeysByHelloNameAndFoo", nil
   777  	}
   778  	for {
   779  		var (
   780  			m   map[string]interface{}
   781  			val interface{}
   782  			ok  bool
   783  		)
   784  		_ = val
   785  		m = rep
   786  		if _, ok = m["bar"]; !ok {
   787  			break
   788  		}
   789  		return "findWorldWithMultipleKeysByBar", nil
   790  	}
   791  	return "", fmt.Errorf("%w for WorldWithMultipleKeys", ErrTypeNotFound)
   792  }