@@ -79,188 +79,30 @@ public void WriteRegisterTypeExtension(string typeName, bool staticType)
79
79
: "builder.AddTypeExtension<global::{0}>();" ,
80
80
typeName ) ;
81
81
82
- public void WriteRegisterObjectTypeExtension ( string runtimeTypeName , string extensionType )
83
- {
84
- _writer . WriteIndentedLine (
85
- "AddObjectTypeExtension_8734371<{0}>(builder, {1}.Initialize);" ,
86
- runtimeTypeName ,
87
- extensionType ) ;
88
- }
82
+ public void WriteEnsureObjectTypeExtensionIsRegistered ( string runtimeTypeName )
83
+ => _writer . WriteIndentedLine ( "builder.AddType<ObjectType<{0}>>();" , runtimeTypeName ) ;
89
84
90
- public void WriteRegisterInterfaceTypeExtension ( string runtimeTypeName , string extensionType )
91
- {
92
- _writer . WriteIndentedLine (
93
- "AddInterfaceTypeExtension_8734371<{0}>(builder, {1}.Initialize);" ,
94
- runtimeTypeName ,
95
- extensionType ) ;
96
- }
85
+ public void WriteEnsureInterfaceTypeExtensionIsRegistered ( string runtimeTypeName )
86
+ => _writer . WriteIndentedLine ( "builder.AddType<InterfaceType<{0}>>();" , runtimeTypeName ) ;
97
87
98
- public void WriteRegisterObjectTypeExtensionHelpers ( )
88
+ public void WriteRegisterObjectTypeExtension ( string runtimeTypeName , string extensionType )
99
89
{
100
- _writer . WriteLine ( ) ;
101
- _writer . WriteIndentedLine ( "private static void AddObjectTypeExtension_8734371<T>(" ) ;
102
-
90
+ _writer . WriteIndentedLine ( "global::{0}.TryAdd<{1}>(" , WellKnownTypes . TypeConfiguration , runtimeTypeName ) ;
103
91
using ( _writer . IncreaseIndent ( ) )
104
92
{
105
- _writer . WriteIndentedLine ( "global::HotChocolate.Execution.Configuration.IRequestExecutorBuilder builder," ) ;
106
- _writer . WriteIndentedLine ( "Action<IObjectTypeDescriptor<T>> initialize)" ) ;
107
- }
108
-
109
- _writer . WriteIndentedLine ( "{" ) ;
110
-
111
- using ( _writer . IncreaseIndent ( ) )
112
- {
113
- _writer . WriteIndentedLine ( "builder.ConfigureSchema(sb =>" ) ;
114
- _writer . WriteIndentedLine ( "{" ) ;
115
-
116
- using ( _writer . IncreaseIndent ( ) )
117
- {
118
- _writer . WriteIndentedLine ( "string typeName = typeof(T).FullName!;" ) ;
119
- _writer . WriteIndentedLine ( "string typeKey = $\" 8734371_Type_ObjectType<{typeName}>\" ;" ) ;
120
- _writer . WriteIndentedLine ( "string hooksKey = $\" 8734371_Hooks_ObjectType<{typeName}>\" ;" ) ;
121
- _writer . WriteLine ( ) ;
122
- _writer . WriteIndentedLine ( "if (!sb.ContextData.ContainsKey(typeKey))" ) ;
123
- _writer . WriteIndentedLine ( "{" ) ;
124
-
125
- using ( _writer . IncreaseIndent ( ) )
126
- {
127
- _writer . WriteIndentedLine ( "sb.AddObjectType<T>(" ) ;
128
- using ( _writer . IncreaseIndent ( ) )
129
- {
130
- _writer . WriteIndentedLine ( "descriptor =>" ) ;
131
- _writer . WriteIndentedLine ( "{" ) ;
132
-
133
- using ( _writer . IncreaseIndent ( ) )
134
- {
135
- _writer . WriteIndentedLine (
136
- "var hooks = (global::System.Collections.Generic.List<"
137
- + "Action<IObjectTypeDescriptor<T>>>)"
138
- + "descriptor.Extend().Context.ContextData[hooksKey]!;" ) ;
139
- _writer . WriteIndentedLine ( "foreach (var configure in hooks)" ) ;
140
- _writer . WriteIndentedLine ( "{" ) ;
141
-
142
- using ( _writer . IncreaseIndent ( ) )
143
- {
144
- _writer . WriteIndentedLine ( "configure(descriptor);" ) ;
145
- }
146
-
147
- _writer . WriteIndentedLine ( "};" ) ;
148
- }
149
-
150
- _writer . WriteIndentedLine ( "});" ) ;
151
- }
152
-
153
- _writer . WriteIndentedLine ( "sb.ContextData.Add(typeKey, null);" ) ;
154
- }
155
-
156
- _writer . WriteIndentedLine ( "}" ) ;
157
- _writer . WriteLine ( ) ;
158
-
159
- _writer . WriteIndentedLine ( "if (!sb.ContextData.TryGetValue(hooksKey, out var value))" ) ;
160
- _writer . WriteIndentedLine ( "{" ) ;
161
-
162
- using ( _writer . IncreaseIndent ( ) )
163
- {
164
- _writer . WriteIndentedLine (
165
- "value = new System.Collections.Generic.List<Action<IObjectTypeDescriptor<T>>>();" ) ;
166
- _writer . WriteIndentedLine ( "sb.ContextData.Add(hooksKey, value);" ) ;
167
- }
168
-
169
- _writer . WriteIndentedLine ( "}" ) ;
170
- _writer . WriteLine ( ) ;
171
- _writer . WriteIndentedLine (
172
- "((System.Collections.Generic.List<Action<IObjectTypeDescriptor<T>>>)value!)"
173
- + ".Add(initialize);" ) ;
174
- }
175
-
176
- _writer . WriteIndentedLine ( "});" ) ;
93
+ _writer . WriteIndentedLine ( "\" {0}\" ," , extensionType ) ;
94
+ _writer . WriteIndentedLine ( "() => {0}.Initialize);" , extensionType ) ;
177
95
}
178
-
179
- _writer . WriteIndentedLine ( "}" ) ;
180
96
}
181
97
182
- public void WriteRegisterInterfaceTypeExtensionHelpers ( )
98
+ public void WriteRegisterInterfaceTypeExtension ( string runtimeTypeName , string extensionType )
183
99
{
184
- _writer . WriteLine ( ) ;
185
- _writer . WriteIndentedLine ( "private static void AddInterfaceTypeExtension_8734371<T>(" ) ;
186
-
187
- using ( _writer . IncreaseIndent ( ) )
188
- {
189
- _writer . WriteIndentedLine ( "global::HotChocolate.Execution.Configuration.IRequestExecutorBuilder builder," ) ;
190
- _writer . WriteIndentedLine ( "Action<IInterfaceTypeDescriptor<T>> initialize)" ) ;
191
- }
192
-
193
- _writer . WriteIndentedLine ( "{" ) ;
194
-
100
+ _writer . WriteIndentedLine ( "global::{0}.TryAdd<{1}>(" , WellKnownTypes . TypeConfiguration , runtimeTypeName ) ;
195
101
using ( _writer . IncreaseIndent ( ) )
196
102
{
197
- _writer . WriteIndentedLine ( "builder.ConfigureSchema(sb =>" ) ;
198
- _writer . WriteIndentedLine ( "{" ) ;
199
-
200
- using ( _writer . IncreaseIndent ( ) )
201
- {
202
- _writer . WriteIndentedLine ( "string typeName = typeof(T).FullName!;" ) ;
203
- _writer . WriteIndentedLine ( "string typeKey = $\" 8734371_Type_InterfaceType<{typeName}>\" ;" ) ;
204
- _writer . WriteIndentedLine ( "string hooksKey = $\" 8734371_Hooks_InterfaceType<{typeName}>\" ;" ) ;
205
- _writer . WriteLine ( ) ;
206
- _writer . WriteIndentedLine ( "if (!sb.ContextData.ContainsKey(typeKey))" ) ;
207
- _writer . WriteIndentedLine ( "{" ) ;
208
-
209
- using ( _writer . IncreaseIndent ( ) )
210
- {
211
- _writer . WriteIndentedLine ( "sb.AddInterfaceType<T>(" ) ;
212
- using ( _writer . IncreaseIndent ( ) )
213
- {
214
- _writer . WriteIndentedLine ( "descriptor =>" ) ;
215
- _writer . WriteIndentedLine ( "{" ) ;
216
-
217
- using ( _writer . IncreaseIndent ( ) )
218
- {
219
- _writer . WriteIndentedLine (
220
- "var hooks = (global::System.Collections.Generic.List<"
221
- + "Action<IInterfaceTypeDescriptor<T>>>)"
222
- + "descriptor.Extend().Context.ContextData[hooksKey]!;" ) ;
223
- _writer . WriteIndentedLine ( "foreach (var configure in hooks)" ) ;
224
- _writer . WriteIndentedLine ( "{" ) ;
225
-
226
- using ( _writer . IncreaseIndent ( ) )
227
- {
228
- _writer . WriteIndentedLine ( "configure(descriptor);" ) ;
229
- }
230
-
231
- _writer . WriteIndentedLine ( "};" ) ;
232
- }
233
-
234
- _writer . WriteIndentedLine ( "});" ) ;
235
- }
236
-
237
- _writer . WriteIndentedLine ( "sb.ContextData.Add(typeKey, null);" ) ;
238
- }
239
-
240
- _writer . WriteIndentedLine ( "}" ) ;
241
- _writer . WriteLine ( ) ;
242
-
243
- _writer . WriteIndentedLine ( "if (!sb.ContextData.TryGetValue(hooksKey, out var value))" ) ;
244
- _writer . WriteIndentedLine ( "{" ) ;
245
-
246
- using ( _writer . IncreaseIndent ( ) )
247
- {
248
- _writer . WriteIndentedLine (
249
- "value = new System.Collections.Generic.List<Action<IInterfaceTypeDescriptor<T>>>();" ) ;
250
- _writer . WriteIndentedLine ( "sb.ContextData.Add(hooksKey, value);" ) ;
251
- }
252
-
253
- _writer . WriteIndentedLine ( "}" ) ;
254
- _writer . WriteLine ( ) ;
255
- _writer . WriteIndentedLine (
256
- "((System.Collections.Generic.List<Action<IInterfaceTypeDescriptor<T>>>)value!)"
257
- + ".Add(initialize);" ) ;
258
- }
259
-
260
- _writer . WriteIndentedLine ( "});" ) ;
103
+ _writer . WriteIndentedLine ( "\" {0}\" ," , extensionType ) ;
104
+ _writer . WriteIndentedLine ( "() => {0}.Initialize);" , extensionType ) ;
261
105
}
262
-
263
- _writer . WriteIndentedLine ( "}" ) ;
264
106
}
265
107
266
108
public void WriteRegisterDataLoader ( string typeName )
0 commit comments