Skip to content

Commit

Permalink
Change 'original' to 'previous' to clarify behavior of multiple exten…
Browse files Browse the repository at this point in the history
…sions
  • Loading branch information
benjie committed Oct 31, 2024
1 parent 7073e3a commit 3a52ce2
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions spec/Section 3 -- Type System.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ TypeSystemExtension :
- TypeExtension

Type system extensions are used to represent a GraphQL type system which has
been extended from some original type system. For example, this might be used by
been extended from some previous type system. For example, this might be used by
a local service to represent data a GraphQL client only accesses locally, or by
a GraphQL service which is itself an extension of another GraphQL service.

Expand Down Expand Up @@ -266,8 +266,8 @@ SchemaExtension :
- extend schema Directives[Const]? { RootOperationTypeDefinition+ }
- extend schema Directives[Const] [lookahead != `{`]

Schema extensions are used to represent a schema which has been extended from an
original schema. For example, this might be used by a GraphQL service which adds
Schema extensions are used to represent a schema which has been extended from a
previous schema. For example, this might be used by a GraphQL service which adds
additional operation types, or additional directives to an existing schema.

Note: Schema extensions without additional operation type definitions must not
Expand All @@ -279,7 +279,7 @@ The same limitation applies to the type definitions and extensions below.
Schema extensions have the potential to be invalid if incorrectly defined.

1. The Schema must already be defined.
2. Any non-repeatable directives provided must not already apply to the original
2. Any non-repeatable directives provided must not already apply to the previous
Schema.

## Types
Expand Down Expand Up @@ -377,7 +377,7 @@ TypeExtension :
- InputObjectTypeExtension

Type extensions are used to represent a GraphQL type which has been extended
from some original type. For example, this might be used by a local service to
from some previous type. For example, this might be used by a local service to
represent additional fields a GraphQL client only accesses locally.

## Scalars
Expand Down Expand Up @@ -640,15 +640,15 @@ ScalarTypeExtension :
- extend scalar Name Directives[Const]

Scalar type extensions are used to represent a scalar type which has been
extended from some original scalar type. For example, this might be used by a
extended from some previous scalar type. For example, this might be used by a
GraphQL tool or service which adds directives to an existing scalar.

**Type Validation**

Scalar type extensions have the potential to be invalid if incorrectly defined.

1. The named type must already be defined and must be a Scalar type.
2. Any non-repeatable directives provided must not already apply to the original
2. Any non-repeatable directives provided must not already apply to the previous
Scalar type.

## Objects
Expand Down Expand Up @@ -1048,7 +1048,7 @@ ObjectTypeExtension :
- extend type Name ImplementsInterfaces [lookahead != `{`]

Object type extensions are used to represent a type which has been extended from
some original type. For example, this might be used to represent local data, or
some previous type. For example, this might be used to represent local data, or
by a GraphQL service which is itself an extension of another GraphQL service.

In this example, a local data field is added to a `Story` type:
Expand Down Expand Up @@ -1076,10 +1076,10 @@ Object type extensions have the potential to be invalid if incorrectly defined.
2. The fields of an Object type extension must have unique names; no two fields
may share the same name.
3. Any fields of an Object type extension must not be already defined on the
original Object type.
4. Any non-repeatable directives provided must not already apply to the original
previous Object type.
4. Any non-repeatable directives provided must not already apply to the previous
Object type.
5. Any interfaces provided must not be already implemented by the original
5. Any interfaces provided must not be already implemented by the previous
Object type.
6. The resulting extended object type must be a super-set of all interfaces it
implements.
Expand Down Expand Up @@ -1288,7 +1288,7 @@ InterfaceTypeExtension :
- extend interface Name ImplementsInterfaces [lookahead != `{`]

Interface type extensions are used to represent an interface which has been
extended from some original interface. For example, this might be used to
extended from some previous interface. For example, this might be used to
represent common local data on many types, or by a GraphQL service which is
itself an extension of another GraphQL service.

Expand Down Expand Up @@ -1328,11 +1328,11 @@ defined.
2. The fields of an Interface type extension must have unique names; no two
fields may share the same name.
3. Any fields of an Interface type extension must not be already defined on the
original Interface type.
4. Any Object or Interface type which implemented the original Interface type
previous Interface type.
4. Any Object or Interface type which implemented the previous Interface type
must also be a super-set of the fields of the Interface type extension (which
may be due to Object type extension).
5. Any non-repeatable directives provided must not already apply to the original
5. Any non-repeatable directives provided must not already apply to the previous
Interface type.
6. The resulting extended Interface type must be a super-set of all Interfaces
it implements.
Expand Down Expand Up @@ -1443,7 +1443,7 @@ UnionTypeExtension :
- extend union Name Directives[Const]

Union type extensions are used to represent a union type which has been extended
from some original union type. For example, this might be used to represent
from some previous union type. For example, this might be used to represent
additional local data, or by a GraphQL service which is itself an extension of
another GraphQL service.

Expand All @@ -1457,8 +1457,8 @@ Union type extensions have the potential to be invalid if incorrectly defined.
Similarly, wrapping types must not be member types of a Union.
3. All member types of a Union type extension must be unique.
4. All member types of a Union type extension must not already be a member of
the original Union type.
5. Any non-repeatable directives provided must not already apply to the original
the previous Union type.
5. Any non-repeatable directives provided must not already apply to the previous
Union type.

## Enums
Expand Down Expand Up @@ -1520,7 +1520,7 @@ EnumTypeExtension :
- extend enum Name Directives[Const] [lookahead != `{`]

Enum type extensions are used to represent an enum type which has been extended
from some original enum type. For example, this might be used to represent
from some previous enum type. For example, this might be used to represent
additional local data, or by a GraphQL service which is itself an extension of
another GraphQL service.

Expand All @@ -1531,8 +1531,8 @@ Enum type extensions have the potential to be invalid if incorrectly defined.
1. The named type must already be defined and must be an Enum type.
2. All values of an Enum type extension must be unique.
3. All values of an Enum type extension must not already be a value of the
original Enum.
4. Any non-repeatable directives provided must not already apply to the original
previous Enum.
4. Any non-repeatable directives provided must not already apply to the previous
Enum type.

## Input Objects
Expand Down Expand Up @@ -1712,7 +1712,7 @@ InputObjectTypeExtension :
- extend input Name Directives[Const] [lookahead != `{`]

Input object type extensions are used to represent an input object type which
has been extended from some original input object type. For example, this might
has been extended from some previous input object type. For example, this might
be used by a GraphQL service which is itself an extension of another GraphQL
service.

Expand All @@ -1724,8 +1724,8 @@ defined.
1. The named type must already be defined and must be a Input Object type.
2. All fields of an Input Object type extension must have unique names.
3. All fields of an Input Object type extension must not already be a field of
the original Input Object.
4. Any non-repeatable directives provided must not already apply to the original
the previous Input Object.
4. Any non-repeatable directives provided must not already apply to the previous
Input Object type.

## List
Expand Down

0 comments on commit 3a52ce2

Please sign in to comment.