compare

package
v0.0.0-...-9d5d7a6 Latest Latest
Warning

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

Go to latest
Published: May 15, 2019 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Breaking causes existing clients to error
	Breaking = ChangeSeverityLevel("BREAKING")

	// Dangerous may in some cases cause existing clients to error
	Dangerous = ChangeSeverityLevel("DANGEROUS")

	// NonBreaking keeps schema backward compatible
	NonBreaking = ChangeSeverityLevel("NON_BREAKING")
)
View Source
const (
	DirectiveAdded                       = ChangeType("DIRECTIVE_ADDED")
	DirectiveRemoved                     = ChangeType("DIRECTIVE_REMOVED")
	DirectiveDescriptionChanged          = ChangeType("DIRECTIVE_DESCRIPTION_CHANGED")
	DirectiveLocationAdded               = ChangeType("DIRECTIVE_LOCATION_ADDED")
	DirectiveLocationRemoved             = ChangeType("DIRECTIVE_LOCATION_REMOVED")
	DirectiveArgumentAdded               = ChangeType("DIRECTIVE_ARGUMENT_ADDED")
	DirectiveArgumentRemoved             = ChangeType("DIRECTIVE_ARGUMENT_REMOVED")
	DirectiveArgumentDescriptionChanged  = ChangeType("DIRECTIVE_ARGUMENT_DESCRIPTION_CHANGED")
	DirectiveArgumentDefaultValueChanged = ChangeType("DIRECTIVE_ARGUMENT_DEFAULT_VALUE_CHANGED")
	DirectiveArgumentTypeChanged         = ChangeType("DIRECTIVE_ARGUMENT_TYPE_CHANGED")
)
View Source
const (
	EnumValueAdded   = ChangeType("ENUM_VALUE_ADDED")
	EnumValueRemoved = ChangeType("ENUM_VALUE_REMOVED")
)
View Source
const (
	InputFieldAdded               = ChangeType("INPUT_FIELD_ADDED")
	InputFieldRemoved             = ChangeType("INPUT_FIELD_REMOVED")
	InputFieldDescriptionChanged  = ChangeType("INPUT_FIELD_DESCRIPTION_CHANGED")
	InputFieldDefaultValueChanged = ChangeType("INPUT_FIELD_DEFAULT_VALUE_CHANGED")
	InputFieldTypeChanged         = ChangeType("INPUT_FIELD_TYPE_CHANGED")
)
View Source
const (
	InterfaceTypeFieldAdded                       = ChangeType("INTERFACE_TYPE_FIELD_ADDED")
	InterfaceTypeFieldRemoved                     = ChangeType("INTERFACE_TYPE_FIELD_REMOVED")
	InterfaceTypeFieldDescriptionChanged          = ChangeType("INTERFACE_TYPE_FIELD_DESCRIPTION_CHANGED")
	InterfaceTypeFieldTypeChanged                 = ChangeType("INTERFACE_TYPE_FIELD_TYPE_CHANGED")
	InterfaceTypeFieldArgumentAdded               = ChangeType("INTERFACE_TYPE_FIELD_ARGUMENT_ADDED")
	InterfaceTypeFieldArgumentRemoved             = ChangeType("INTERFACE_TYPE_FIELD_ARGUMENT_REMOVED")
	InterfaceTypeFieldArgumentDescriptionChanged  = ChangeType("INTERFACE_TYPE_FIELD_ARGUMENT_DESCRIPTION_CHANGED")
	InterfaceTypeFieldArgumentDefaultValueChanged = ChangeType("INTERFACE_TYPE_FIELD_ARGUMENT_DEFAULT_VALUE_CHANGED")
	InterfaceTypeFieldArgumentTypeChanged         = ChangeType("INTERFACE_TYPE_FIELD_ARGUMENT_TYPE_CHANGED")
)
View Source
const (
	ObjectTypeInterfaceAdded                   = ChangeType("OBJECT_TYPE_INTERFACE_ADDED")
	ObjectTypeInterfaceRemoved                 = ChangeType("OBJECT_TYPE_INTERFACE_REMOVED")
	ObjectTypeFieldAdded                       = ChangeType("OBJECT_TYPE_FIELD_ADDED")
	ObjectTypeFieldRemoved                     = ChangeType("OBJECT_TYPE_FIELD_REMOVED")
	ObjectTypeFieldDescriptionChanged          = ChangeType("OBJECT_TYPE_FIELD_DESCRIPTION_CHANGED")
	ObjectTypeFieldTypeChanged                 = ChangeType("OBJECT_TYPE_FIELD_TYPE_CHANGED")
	ObjectTypeFieldArgumentAdded               = ChangeType("OBJECT_TYPE_FIELD_ARGUMENT_ADDED")
	ObjectTypeFieldArgumentRemoved             = ChangeType("OBJECT_TYPE_FIELD_ARGUMENT_REMOVED")
	ObjectTypeFieldArgumentDescriptionChanged  = ChangeType("OBJECT_TYPE_FIELD_ARGUMENT_DESCRIPTION_CHANGED")
	ObjectTypeFieldArgumentDefaultValueChanged = ChangeType("OBJECT_TYPE_FIELD_ARGUMENT_DEFAULT_VALUE_CHANGED")
	ObjectTypeFieldArgumentTypeChanged         = ChangeType("OBJECT_TYPE_FIELD_ARGUMENT_TYPE_CHANGED")
)
View Source
const (
	SchemaQueryTypeChanged        = ChangeType("SCHEMA_QUERY_TYPE_CHANGED")
	SchemaMutationTypeChanged     = ChangeType("SCHEMA_MUTATION_TYPE_CHANGED")
	SchemaMutationTypeRemoved     = ChangeType("SCHEMA_MUTATION_TYPE_REMOVED")
	SchemaSubscriptionTypeChanged = ChangeType("SCHEMA_SUBSCRIPTION_TYPE_CHANGED")
	SchemaSubscriptionTypeRemoved = ChangeType("SCHEMA_SUBSCRIPTION_TYPE_REMOVED")
)
View Source
const (
	TypeAdded              = ChangeType("TYPE_ADDED")
	TypeRemoved            = ChangeType("TYPE_REMOVED")
	TypeKindChanged        = ChangeType("TYPE_KIND_CHANGED")
	TypeDescriptionChanged = ChangeType("TYPE_DESCRIPTION_CHANGED")
)
View Source
const (
	UnionMemberRemoved = ChangeType("UNION_MEMBER_REMOVED")
	UnionMemberAdded   = ChangeType("UNION_MEMBER_ADDED")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Change

type Change struct {

	// Severity of the change
	Severity ChangeSeverity

	// Type of the change
	Type ChangeType

	// Message provides human-readable explanation of the change
	Message string

	// Path to the changed item
	Path string
}

Change materialize a schema modification.

type ChangeSeverity

type ChangeSeverity struct {

	// Level indicates backward compatibility
	Level ChangeSeverityLevel

	// Reason provides human-readable explanation of why the severity is chosen
	Reason string
}

ChangeSeverity defined how serious a change is.

type ChangeSeverityLevel

type ChangeSeverityLevel string

Level indicates backward compatibility.

type ChangeType

type ChangeType string

ChangeType allows categorization of changes.

type Result

type Result struct {
	// contains filtered or unexported fields
}

Result stores the detected changes.

func Schema

func Schema(x, y io.Reader) (*Result, error)

Compare compares two GraphQL schemas and returns a set of detected changes. Each change has a severity and reason assigned to be able to further evaluate its impact. Schemas must be encoded using SDL, no other form is accepted.

func (Result) Breaking

func (r Result) Breaking() []Change

Breaking returns list of changes which are not backward compatible.

func (Result) Changes

func (r Result) Changes() []Change

Changes returns list of all changes.

func (Result) Dangerous

func (r Result) Dangerous() []Change

Dangerous returns list of changes which in some cases may be considered breaking.

func (Result) NonBreaking

func (r Result) NonBreaking() []Change

NonBreaking returns list of changes which are backward compatible.

Jump to

Keyboard shortcuts

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