@@ -25,45 +25,48 @@ export function objectTypeInterfaceAdded(
2525 }
2626
2727 const typeNode = nodeByPath . get ( change . path ) ;
28- if ( typeNode ) {
29- if (
30- typeNode . kind === Kind . OBJECT_TYPE_DEFINITION ||
31- typeNode . kind === Kind . INTERFACE_TYPE_DEFINITION
32- ) {
33- const existing = findNamedNode ( typeNode . interfaces , change . meta . addedInterfaceName ) ;
34- if ( existing ) {
35- handleError (
36- change ,
37- new AddedAttributeAlreadyExistsError (
38- typeNode . kind ,
39- 'interfaces' ,
40- change . meta . addedInterfaceName ,
41- ) ,
42- config ,
43- ) ;
44- } else {
45- ( typeNode . interfaces as NamedTypeNode [ ] | undefined ) = [
46- ...( typeNode . interfaces ?? [ ] ) ,
47- namedTypeNode ( change . meta . addedInterfaceName ) ,
48- ] ;
49- }
50- } else {
51- handleError (
52- change ,
53- new ChangedCoordinateKindMismatchError (
54- Kind . OBJECT_TYPE_DEFINITION , // or Kind.INTERFACE_TYPE_DEFINITION
55- typeNode . kind ,
56- ) ,
57- config ,
58- ) ;
59- }
60- } else {
28+ if ( ! typeNode ) {
6129 handleError (
6230 change ,
6331 new ChangedAncestorCoordinateNotFoundError ( Kind . OBJECT_TYPE_DEFINITION , 'interfaces' ) ,
6432 config ,
6533 ) ;
34+ return ;
35+ }
36+
37+ if (
38+ typeNode . kind !== Kind . OBJECT_TYPE_DEFINITION &&
39+ typeNode . kind !== Kind . INTERFACE_TYPE_DEFINITION
40+ ) {
41+ handleError (
42+ change ,
43+ new ChangedCoordinateKindMismatchError (
44+ Kind . OBJECT_TYPE_DEFINITION , // or Kind.INTERFACE_TYPE_DEFINITION
45+ typeNode . kind ,
46+ ) ,
47+ config ,
48+ ) ;
49+ return ;
6650 }
51+
52+ const existing = findNamedNode ( typeNode . interfaces , change . meta . addedInterfaceName ) ;
53+ if ( existing ) {
54+ handleError (
55+ change ,
56+ new AddedAttributeAlreadyExistsError (
57+ typeNode . kind ,
58+ 'interfaces' ,
59+ change . meta . addedInterfaceName ,
60+ ) ,
61+ config ,
62+ ) ;
63+ return ;
64+ }
65+
66+ ( typeNode . interfaces as NamedTypeNode [ ] | undefined ) = [
67+ ...( typeNode . interfaces ?? [ ] ) ,
68+ namedTypeNode ( change . meta . addedInterfaceName ) ,
69+ ] ;
6770}
6871
6972export function objectTypeInterfaceRemoved (
@@ -78,35 +81,7 @@ export function objectTypeInterfaceRemoved(
7881 }
7982
8083 const typeNode = nodeByPath . get ( change . path ) ;
81- if ( typeNode ) {
82- if (
83- typeNode . kind === Kind . OBJECT_TYPE_DEFINITION ||
84- typeNode . kind === Kind . INTERFACE_TYPE_DEFINITION
85- ) {
86- const existing = findNamedNode ( typeNode . interfaces , change . meta . removedInterfaceName ) ;
87- if ( existing ) {
88- ( typeNode . interfaces as NamedTypeNode [ ] | undefined ) = typeNode . interfaces ?. filter (
89- i => i . name . value !== change . meta . removedInterfaceName ,
90- ) ;
91- } else {
92- // @note this error isnt the best designed for this application
93- handleError (
94- change ,
95- new DeletedCoordinateNotFound (
96- Kind . INTERFACE_TYPE_DEFINITION ,
97- change . meta . removedInterfaceName ,
98- ) ,
99- config ,
100- ) ;
101- }
102- } else {
103- handleError (
104- change ,
105- new ChangedCoordinateKindMismatchError ( Kind . OBJECT_TYPE_DEFINITION , typeNode . kind ) ,
106- config ,
107- ) ;
108- }
109- } else {
84+ if ( ! typeNode ) {
11085 handleError (
11186 change ,
11287 new DeletedAncestorCoordinateNotFoundError (
@@ -116,5 +91,35 @@ export function objectTypeInterfaceRemoved(
11691 ) ,
11792 config ,
11893 ) ;
94+ return ;
95+ }
96+
97+ if (
98+ typeNode . kind !== Kind . OBJECT_TYPE_DEFINITION &&
99+ typeNode . kind !== Kind . INTERFACE_TYPE_DEFINITION
100+ ) {
101+ handleError (
102+ change ,
103+ new ChangedCoordinateKindMismatchError ( Kind . OBJECT_TYPE_DEFINITION , typeNode . kind ) ,
104+ config ,
105+ ) ;
106+ return ;
107+ }
108+
109+ const existing = findNamedNode ( typeNode . interfaces , change . meta . removedInterfaceName ) ;
110+ if ( ! existing ) {
111+ handleError (
112+ change ,
113+ new DeletedCoordinateNotFound (
114+ Kind . INTERFACE_TYPE_DEFINITION ,
115+ change . meta . removedInterfaceName ,
116+ ) ,
117+ config ,
118+ ) ;
119+ return ;
119120 }
121+
122+ ( typeNode . interfaces as NamedTypeNode [ ] | undefined ) = typeNode . interfaces ?. filter (
123+ i => i . name . value !== change . meta . removedInterfaceName ,
124+ ) ;
120125}
0 commit comments