graphql

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2018 License: MIT Imports: 13 Imported by: 3,782

Documentation

Index

Constants

View Source
const Version = "v0.5.0"

Variables

View Source
var False = &lit{falseLit}
View Source
var Null = &lit{nullLit}
View Source
var True = &lit{trueLit}

Functions

func AddError

func AddError(ctx context.Context, err error)

AddError is a convenience method for adding an error to the current response

func AddErrorf

func AddErrorf(ctx context.Context, format string, args ...interface{})

AddErrorf is a convenience method for adding an error to the current response

func DefaultDirectiveMiddleware

func DefaultDirectiveMiddleware(ctx context.Context, next Resolver) (res interface{}, err error)

func DefaultErrorPresenter

func DefaultErrorPresenter(ctx context.Context, err error) *gqlerror.Error

func DefaultRecover

func DefaultRecover(ctx context.Context, err interface{}) error

func DefaultRequestMiddleware

func DefaultRequestMiddleware(ctx context.Context, next func(ctx context.Context) []byte) []byte

func DefaultResolverMiddleware

func DefaultResolverMiddleware(ctx context.Context, next Resolver) (res interface{}, err error)

func OneShot

func OneShot(resp *Response) func() *Response

func UnmarshalBoolean

func UnmarshalBoolean(v interface{}) (bool, error)

func UnmarshalFloat

func UnmarshalFloat(v interface{}) (float64, error)

func UnmarshalID

func UnmarshalID(v interface{}) (string, error)

func UnmarshalInt

func UnmarshalInt(v interface{}) (int, error)

func UnmarshalMap

func UnmarshalMap(v interface{}) (map[string]interface{}, error)

func UnmarshalString

func UnmarshalString(v interface{}) (string, error)

func UnmarshalTime

func UnmarshalTime(v interface{}) (time.Time, error)

func WithRequestContext

func WithRequestContext(ctx context.Context, rc *RequestContext) context.Context

func WithResolverContext

func WithResolverContext(ctx context.Context, rc *ResolverContext) context.Context

Types

type Array

type Array []Marshaler

func (Array) MarshalGQL

func (a Array) MarshalGQL(writer io.Writer)

type CollectedField

type CollectedField struct {
	*ast.Field

	Selections ast.SelectionSet
}

func CollectFields

func CollectFields(ctx context.Context, selSet ast.SelectionSet, satisfies []string) []CollectedField

func CollectFieldsCtx

func CollectFieldsCtx(ctx context.Context, satisfies []string) []CollectedField

This is just a convenient wrapper method for CollectFields

type ErrorPresenterFunc

type ErrorPresenterFunc func(context.Context, error) *gqlerror.Error

type ExecutableSchema

type ExecutableSchema interface {
	Schema() *ast.Schema

	Complexity(typeName, fieldName string, childComplexity int, args map[string]interface{}) (int, bool)
	Query(ctx context.Context, op *ast.OperationDefinition) *Response
	Mutation(ctx context.Context, op *ast.OperationDefinition) *Response
	Subscription(ctx context.Context, op *ast.OperationDefinition) func() *Response
}

type ExtendedError

type ExtendedError interface {
	Extensions() map[string]interface{}
}

type FieldMiddleware

type FieldMiddleware func(ctx context.Context, next Resolver) (res interface{}, err error)

type Marshaler

type Marshaler interface {
	MarshalGQL(w io.Writer)
}

func MarshalBoolean

func MarshalBoolean(b bool) Marshaler

func MarshalFloat

func MarshalFloat(f float64) Marshaler

func MarshalID

func MarshalID(s string) Marshaler

func MarshalInt

func MarshalInt(i int) Marshaler

func MarshalMap

func MarshalMap(val map[string]interface{}) Marshaler

func MarshalString

func MarshalString(s string) Marshaler

func MarshalTime

func MarshalTime(t time.Time) Marshaler

type OrderedMap

type OrderedMap struct {
	Keys   []string
	Values []Marshaler
}

func NewOrderedMap

func NewOrderedMap(len int) *OrderedMap

func (*OrderedMap) Add

func (m *OrderedMap) Add(key string, value Marshaler)

func (*OrderedMap) MarshalGQL

func (m *OrderedMap) MarshalGQL(writer io.Writer)

type RecoverFunc

type RecoverFunc func(ctx context.Context, err interface{}) (userMessage error)

type RequestContext

type RequestContext struct {
	RawQuery  string
	Variables map[string]interface{}
	Doc       *ast.QueryDocument
	// ErrorPresenter will be used to generate the error
	// message from errors given to Error().
	ErrorPresenter      ErrorPresenterFunc
	Recover             RecoverFunc
	ResolverMiddleware  FieldMiddleware
	DirectiveMiddleware FieldMiddleware
	RequestMiddleware   RequestMiddleware

	Errors gqlerror.List
	// contains filtered or unexported fields
}

func GetRequestContext

func GetRequestContext(ctx context.Context) *RequestContext

func NewRequestContext

func NewRequestContext(doc *ast.QueryDocument, query string, variables map[string]interface{}) *RequestContext

func (*RequestContext) Error

func (c *RequestContext) Error(ctx context.Context, err error)

Error sends an error to the client, passing it through the formatter.

func (*RequestContext) Errorf

func (c *RequestContext) Errorf(ctx context.Context, format string, args ...interface{})

Errorf sends an error string to the client, passing it through the formatter.

func (*RequestContext) HasError added in v0.5.0

func (c *RequestContext) HasError(rctx *ResolverContext) bool

HasError returns true if the current field has already errored

type RequestMiddleware

type RequestMiddleware func(ctx context.Context, next func(ctx context.Context) []byte) []byte

type Resolver

type Resolver func(ctx context.Context) (res interface{}, err error)

type ResolverContext

type ResolverContext struct {
	Parent *ResolverContext
	// The name of the type this field belongs to
	Object string
	// These are the args after processing, they can be mutated in middleware to change what the resolver will get.
	Args map[string]interface{}
	// The raw field
	Field CollectedField
	// The index of array in path.
	Index *int
	// The result object of resolver
	Result interface{}
}

func GetResolverContext

func GetResolverContext(ctx context.Context) *ResolverContext

func (*ResolverContext) Path

func (r *ResolverContext) Path() []interface{}

type Response

type Response struct {
	Data   json.RawMessage `json:"data"`
	Errors gqlerror.List   `json:"errors,omitempty"`
}

func ErrorResponse

func ErrorResponse(ctx context.Context, messagef string, args ...interface{}) *Response

type Unmarshaler

type Unmarshaler interface {
	UnmarshalGQL(v interface{}) error
}

type WriterFunc

type WriterFunc func(writer io.Writer)

func (WriterFunc) MarshalGQL

func (f WriterFunc) MarshalGQL(w io.Writer)

Directories

Path Synopsis
introspection implements the spec defined in https://github.com/facebook/graphql/blob/master/spec/Section%204%20--%20Introspection.md#schema-introspection
introspection implements the spec defined in https://github.com/facebook/graphql/blob/master/spec/Section%204%20--%20Introspection.md#schema-introspection

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL