diff --git a/config/config.go b/config/config.go index 1e96df0..67f7a42 100644 --- a/config/config.go +++ b/config/config.go @@ -201,6 +201,11 @@ func LoadConfig(filename string) (*Config, error) { sources = append(sources, &ast.Source{Name: filename, Input: string(schemaRaw)}) } + structFieldsAlwaysPointers := true + if cfg.Generate != nil && cfg.Generate.StructFieldsAlwaysPointers != nil { + structFieldsAlwaysPointers = *cfg.Generate.StructFieldsAlwaysPointers + } + cfg.GQLConfig = &config.Config{ Model: cfg.Model, Models: models, @@ -209,7 +214,7 @@ func LoadConfig(filename string) (*Config, error) { Exec: config.ExecConfig{Filename: "generated.go"}, Directives: map[string]config.DirectiveConfig{}, Sources: sources, - StructFieldsAlwaysPointers: true, + StructFieldsAlwaysPointers: structFieldsAlwaysPointers, ReturnPointersInUmarshalInput: false, ResolversAlwaysReturnPointers: true, NullableInputOmittable: false, diff --git a/config/generate_config.go b/config/generate_config.go index bf7441f..2544e73 100644 --- a/config/generate_config.go +++ b/config/generate_config.go @@ -13,7 +13,8 @@ type GenerateConfig struct { OmitEmptyTypes *bool `yaml:"omitEmptyTypes,omitempty"` // Deprecated: not working because v1 is deleted. Must use ClientV2 // if true, used client v2 in generate code - ClientV2 bool `yaml:"clientV2,omitempty"` + ClientV2 bool `yaml:"clientV2,omitempty"` + StructFieldsAlwaysPointers *bool `yaml:"struct_fields_always_pointers,omitempty"` } func (c *GenerateConfig) ShouldGenerateClient() bool {