Documentation ¶
Index ¶
- Variables
- func GetBoilerModels(dir string) ([]*BoilerModel, []*BoilerEnum)
- func IsPlural(s string) bool
- func IsSingular(s string) bool
- func NewConvertPlugin(output, backend, frontend Config, pluginConfig ConvertPluginConfig) plugin.Plugin
- func NewResolverPlugin(output, backend, frontend Config, resolverPluginConfig ResolverPluginConfig) plugin.Plugin
- func Plural(s string) string
- func SchemaGet(config SchemaConfig) string
- func SchemaWrite(config SchemaConfig, outputFile string, generateOptions SchemaGenerateConfig) error
- func Singular(s string) string
- type AuthorizationScope
- type BoilerEnum
- type BoilerEnumValue
- type BoilerField
- type BoilerModel
- type BoilerType
- type ColumnSetting
- type Config
- type ConvertConfig
- type ConvertPlugin
- type ConvertPluginConfig
- type DatabaseDriver
- type Enum
- type EnumValue
- type Field
- type File
- type Import
- type Interface
- type Model
- type ModelBuild
- type ParentType
- type Preload
- type Resolver
- type ResolverBuild
- type ResolverPlugin
- type ResolverPluginConfig
- type SchemaConfig
- type SchemaField
- type SchemaGenerateConfig
- type SchemaModel
- type SimpleWriter
Constants ¶
This section is empty.
Variables ¶
View Source
var InputTypes = []string{"Create", "Update", "Delete"} //nolint:gochecknoglobals
Functions ¶
func GetBoilerModels ¶
func GetBoilerModels(dir string) ([]*BoilerModel, []*BoilerEnum)
parseModelsAndFieldsFromBoiler since these are like User.ID, User.Organization and we want them grouped by modelName and their belonging fields.
func IsSingular ¶
func NewConvertPlugin ¶
func NewConvertPlugin(output, backend, frontend Config, pluginConfig ConvertPluginConfig) plugin.Plugin
func NewResolverPlugin ¶
func NewResolverPlugin(output, backend, frontend Config, resolverPluginConfig ResolverPluginConfig) plugin.Plugin
func SchemaGet ¶
func SchemaGet( config SchemaConfig, ) string
func SchemaWrite ¶
func SchemaWrite(config SchemaConfig, outputFile string, generateOptions SchemaGenerateConfig) error
Types ¶
type AuthorizationScope ¶
type BoilerEnum ¶
type BoilerEnum struct { Name string ModelName string ModelFieldKey string Values []*BoilerEnumValue }
type BoilerEnumValue ¶
type BoilerEnumValue struct {
Name string
}
type BoilerField ¶
type BoilerModel ¶
type BoilerModel struct { Name string TableName string PluralName string Fields []*BoilerField Enums []*BoilerEnum HasPrimaryStringID bool HasDeletedAt bool }
func FindBoilerModel ¶
func FindBoilerModel(models []*BoilerModel, modelName string) *BoilerModel
type BoilerType ¶
type ColumnSetting ¶
type ConvertConfig ¶
type ConvertPlugin ¶
type ConvertPlugin struct { Output Config Backend Config Frontend Config PluginConfig ConvertPluginConfig // contains filtered or unexported fields }
func (*ConvertPlugin) MutateConfig ¶
func (m *ConvertPlugin) MutateConfig(originalCfg *config.Config) error
func (*ConvertPlugin) Name ¶
func (m *ConvertPlugin) Name() string
type ConvertPluginConfig ¶
type ConvertPluginConfig struct {
DatabaseDriver DatabaseDriver
}
type DatabaseDriver ¶
type DatabaseDriver string
DatabaseDriver defines which data syntax to use for some of the converts
const ( // MySQL is the default MySQL DatabaseDriver = "mysql" // PostgreSQL is the default PostgreSQL DatabaseDriver = "postgres" )
type EnumValue ¶
type EnumValue struct { Description string Name string NameLower string BoilerEnumValue *BoilerEnumValue }
type Field ¶
type Field struct { Name string JSONName string PluralName string Type string TypeWithoutPointer string IsNumberID bool IsPrimaryNumberID bool IsPrimaryStringID bool IsPrimaryID bool IsRequired bool IsPlural bool ConvertConfig ConvertConfig Enum *Enum // relation stuff IsRelation bool IsRelationAndNotForeignKey bool IsObject bool // boiler relation stuff is inside this field BoilerField BoilerField // graphql relation ship can be found here Relationship *Model IsOr bool IsAnd bool // Some stuff Description string OriginalType types.Type }
type File ¶
type File struct { // These are separated because the type definition of the resolver object may live in a different file from the // resolver method implementations, for example when extending a type in a different graphql schema file Objects []*codegen.Object Resolvers []*Resolver Imports []Import RemainingSource string }
type Model ¶
type Model struct { Name string PluralName string BoilerModel *BoilerModel PrimaryKeyType string Fields []*Field IsNormal bool IsInput bool IsCreateInput bool IsUpdateInput bool IsNormalInput bool IsPayload bool IsConnection bool IsEdge bool IsOrdering bool IsWhere bool IsFilter bool IsPreloadable bool PreloadArray []Preload HasDeletedAt bool HasPrimaryStringID bool // other stuff Description string PureFields []*ast.FieldDefinition Implements []string }
type ModelBuild ¶
type ModelBuild struct { Backend Config Frontend Config PluginConfig ConvertPluginConfig PackageName string Interfaces []*Interface Models []*Model Enums []*Enum Scalars []string }
func (ModelBuild) Imports ¶
func (t ModelBuild) Imports() []Import
type ParentType ¶
type ParentType string
const ( ParentTypeNormal ParentType = "Normal" ParentTypeWhere ParentType = "Where" ParentTypeCreate ParentType = "Create" ParentTypeUpdate ParentType = "Update" ParentTypeBatchUpdate ParentType = "BatchUpdate" ParentTypeBatchCreate ParentType = "BatchCreate" )
type Preload ¶
type Preload struct { Key string ColumnSetting ColumnSetting }
type Resolver ¶
type Resolver struct { Object *codegen.Object Field *codegen.Field Implementation string IsSingle bool IsList bool IsListForward bool IsListBackward bool IsCreate bool IsUpdate bool IsDelete bool IsBatchCreate bool IsBatchUpdate bool IsBatchDelete bool ResolveOrganizationID bool // TODO: something more pluggable ResolveUserOrganizationID bool // TODO: something more pluggable ResolveUserID bool // TODO: something more pluggable Model Model InputModel Model BoilerWhiteList string PublicErrorKey string PublicErrorMessage string SoftDeleteSuffix string }
type ResolverBuild ¶
type ResolverBuild struct { *File HasRoot bool PackageName string ResolverType string Models []*Model AuthorizationScopes []*AuthorizationScope TryHook func(string) bool }
func (*ResolverBuild) ShortResolverDeclaration ¶
func (rb *ResolverBuild) ShortResolverDeclaration(r *Resolver) string
type ResolverPlugin ¶
type ResolverPlugin struct {
// contains filtered or unexported fields
}
func (*ResolverPlugin) GenerateCode ¶
func (m *ResolverPlugin) GenerateCode(data *codegen.Data) error
func (*ResolverPlugin) Name ¶
func (m *ResolverPlugin) Name() string
type ResolverPluginConfig ¶
type ResolverPluginConfig struct { EnableSoftDeletes bool AuthorizationScopes []*AuthorizationScope }
type SchemaConfig ¶
type SchemaConfig struct { BoilerModelDirectory Config Directives []string SkipInputFields []string GenerateBatchCreate bool GenerateMutations bool GenerateBatchDelete bool GenerateBatchUpdate bool HookShouldAddModel func(model SchemaModel) bool HookShouldAddField func(model SchemaModel, field SchemaField) bool HookChangeField func(model *SchemaModel, field *SchemaField) HookChangeFields func(model *SchemaModel, fields []*SchemaField, parenType ParentType) []*SchemaField HookChangeModel func(model *SchemaModel) }
type SchemaField ¶
type SchemaField struct { Name string Type string // String, ID, Integer InputWhereType string InputCreateType string InputUpdateType string InputBatchUpdateType string InputBatchCreateType string BoilerField *BoilerField SkipInput bool SkipWhere bool SkipCreate bool SkipUpdate bool SkipBatchUpdate bool SkipBatchCreate bool InputDirectives []string Directives []string }
func NewSchemaField ¶
func NewSchemaField(name string, typ string, boilerField *BoilerField) *SchemaField
func (*SchemaField) SetInputTypeForAllInputs ¶
func (s *SchemaField) SetInputTypeForAllInputs(v string)
func (*SchemaField) SetSkipForAllInputs ¶
func (s *SchemaField) SetSkipForAllInputs(v bool)
type SchemaGenerateConfig ¶
type SchemaGenerateConfig struct {
MergeSchema bool
}
type SchemaModel ¶
type SchemaModel struct { Name string Fields []*SchemaField }
type SimpleWriter ¶
type SimpleWriter struct {
// contains filtered or unexported fields
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.