@@ -44,7 +44,7 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
44
44
return ;
45
45
}
46
46
} ;
47
- const deleteFieldFromNode = ( n : ParserField , i : number ) => {
47
+ const deleteFieldFromNode = ( n : ParserField , i : number , parentNode ?: string ) => {
48
48
if ( n . data . type === TypeDefinition . InterfaceTypeDefinition ) {
49
49
const argName = n . args [ i ] . name ;
50
50
tree . nodes
@@ -64,7 +64,7 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
64
64
}
65
65
n . args . splice ( i , 1 ) ;
66
66
regenerateId ( n ) ;
67
- mutateParentIfField ( n ) ;
67
+ mutateParentIfField ( n , parentNode ) ;
68
68
} ;
69
69
70
70
const updateFieldOnNode = ( node : ParserField , i : number , updatedField : ParserField , parentNode ?: string ) => {
@@ -82,13 +82,13 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
82
82
mutateParentIfField ( node , parentNode ) ;
83
83
} ;
84
84
85
- const addFieldToNode = ( node : ParserField , f : ParserField ) => {
85
+ const addFieldToNode = ( node : ParserField , f : ParserField , parentNode ?: string ) => {
86
86
node . args ?. push ( { ...f } ) ;
87
87
if ( node . data . type === TypeDefinition . InterfaceTypeDefinition ) {
88
88
updateInterfaceNodeAddField ( tree . nodes , node ) ;
89
89
}
90
90
regenerateId ( node ) ;
91
- mutateParentIfField ( node ) ;
91
+ mutateParentIfField ( node , parentNode ) ;
92
92
} ;
93
93
const renameRootNode = ( node : ParserField , newName : string ) => {
94
94
const isError = allNodes . map ( ( n ) => n . name ) . includes ( newName ) ;
@@ -118,20 +118,20 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
118
118
node . name = newName ;
119
119
regenerateId ( node ) ;
120
120
} ;
121
- const removeNode = ( node : ParserField ) => {
121
+ const removeNode = ( node : ParserField , parentNode ?: string ) => {
122
122
if ( node . data . type === TypeSystemDefinition . FieldDefinition ) {
123
123
const parent = allNodes . find ( ( parentNode ) => parentNode . args . includes ( node ) ) ;
124
124
if ( parent ) {
125
125
const index = parent . args . indexOf ( node ) ;
126
- deleteFieldFromNode ( parent , index ) ;
126
+ deleteFieldFromNode ( parent , index , parentNode ) ;
127
127
}
128
128
return ;
129
129
}
130
130
if ( node . data . type === TypeSystemDefinition . UnionMemberDefinition ) {
131
131
const parent = allNodes . find ( ( parentNode ) => parentNode . args . includes ( node ) ) ;
132
132
if ( parent ) {
133
133
const index = parent . args . indexOf ( node ) ;
134
- deleteFieldFromNode ( parent , index ) ;
134
+ deleteFieldFromNode ( parent , index , parentNode ) ;
135
135
}
136
136
return ;
137
137
}
@@ -142,13 +142,13 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
142
142
recursivelyDeleteDirectiveArgument ( allNodes , parent . name , node ) ;
143
143
}
144
144
const index = parent . args . indexOf ( node ) ;
145
- deleteFieldFromNode ( parent , index ) ;
145
+ deleteFieldFromNode ( parent , index , parentNode ) ;
146
146
} else {
147
147
const parent = allNodes . find ( ( p ) => p . args . some ( ( a ) => a . args . includes ( node ) ) ) ;
148
148
const field = parent ?. args . find ( ( a ) => a . args . includes ( node ) ) ;
149
149
if ( field ) {
150
150
const fieldIndex = field . args . findIndex ( ( f ) => f === node ) ;
151
- deleteFieldFromNode ( field , fieldIndex ) ;
151
+ deleteFieldFromNode ( field , fieldIndex , parentNode ) ;
152
152
}
153
153
}
154
154
return ;
@@ -157,7 +157,7 @@ export const mutate = (tree: ParserTree, allNodes: ParserField[]) => {
157
157
const parent = allNodes . find ( ( parentNode ) => parentNode . args . includes ( node ) ) ;
158
158
if ( parent ) {
159
159
const index = parent . args . indexOf ( node ) ;
160
- deleteFieldFromNode ( parent , index ) ;
160
+ deleteFieldFromNode ( parent , index , parentNode ) ;
161
161
}
162
162
return ;
163
163
}
0 commit comments