@@ -80,63 +80,94 @@ public void WriteRegisterTypeExtension(string typeName, bool staticType)
80
80
81
81
public void WriteRegisterObjectTypeExtension ( string runtimeTypeName , string extensionType )
82
82
{
83
- _writer . WriteIndentedLine ( "builder.ConfigureSchema(sb =>" , runtimeTypeName ) ;
83
+ _writer . WriteIndentedLine (
84
+ "AddTypeExtension_8734371<{0}>(builder, {1}.Initialize);" ,
85
+ runtimeTypeName ,
86
+ extensionType ) ;
87
+ }
88
+
89
+ public void WriteRegisterObjectTypeExtensionHelpers ( )
90
+ {
91
+ _writer . WriteLine ( ) ;
92
+ _writer . WriteIndentedLine ( "private static void AddTypeExtension_8734371<T>(" ) ;
93
+
94
+ using ( _writer . IncreaseIndent ( ) )
95
+ {
96
+ _writer . WriteIndentedLine ( "global::HotChocolate.Execution.Configuration.IRequestExecutorBuilder builder," ) ;
97
+ _writer . WriteIndentedLine ( "Action<IObjectTypeDescriptor<T>> initialize)" ) ;
98
+ }
99
+
84
100
_writer . WriteIndentedLine ( "{" ) ;
101
+
85
102
using ( _writer . IncreaseIndent ( ) )
86
103
{
87
- _writer . WriteIndentedLine ( "const string typeKey = \" 8734371_Type_ObjectType<{0}>\" ;" , runtimeTypeName ) ;
88
- _writer . WriteIndentedLine ( "const string hooksKey = \" 8734371_Hooks_ObjectType<{0}>\" ;" , runtimeTypeName ) ;
89
- _writer . WriteLine ( ) ;
90
- _writer . WriteIndentedLine ( "if (!sb.ContextData.ContainsKey(typeKey))" ) ;
104
+ _writer . WriteIndentedLine ( "builder.ConfigureSchema(sb =>" ) ;
91
105
_writer . WriteIndentedLine ( "{" ) ;
106
+
92
107
using ( _writer . IncreaseIndent ( ) )
93
108
{
94
- _writer . WriteIndentedLine ( "sb.AddObjectType<{0}>(" , runtimeTypeName ) ;
109
+ _writer . WriteIndentedLine ( "string typeName = typeof(T).FullName!;" ) ;
110
+ _writer . WriteIndentedLine ( "string typeKey = $\" 8734371_Type_ObjectType<{typeName}>\" ;" ) ;
111
+ _writer . WriteIndentedLine ( "string hooksKey = $\" 8734371_Hooks_ObjectType<{typeName}>\" ;" ) ;
112
+ _writer . WriteLine ( ) ;
113
+ _writer . WriteIndentedLine ( "if (!sb.ContextData.ContainsKey(typeKey))" ) ;
114
+ _writer . WriteIndentedLine ( "{" ) ;
115
+
95
116
using ( _writer . IncreaseIndent ( ) )
96
117
{
97
- _writer . WriteIndentedLine ( "descriptor =>" ) ;
98
- _writer . WriteIndentedLine ( "{" ) ;
118
+ _writer . WriteIndentedLine ( "sb.AddObjectType<T>(" ) ;
99
119
using ( _writer . IncreaseIndent ( ) )
100
120
{
101
- _writer . WriteIndentedLine (
102
- "var hooks = (global::System.Collections.Generic.List<Action<IObjectTypeDescriptor" +
103
- "<{0}>>>)descriptor.Extend().Context.ContextData[hooksKey]!;" ,
104
- runtimeTypeName ) ;
105
- _writer . WriteIndentedLine ( "foreach (var configure in hooks)" ) ;
121
+ _writer . WriteIndentedLine ( "descriptor =>" ) ;
106
122
_writer . WriteIndentedLine ( "{" ) ;
123
+
107
124
using ( _writer . IncreaseIndent ( ) )
108
125
{
109
- _writer . WriteIndentedLine ( "configure(descriptor);" ) ;
126
+ _writer . WriteIndentedLine (
127
+ "var hooks = (global::System.Collections.Generic.List<" +
128
+ "Action<IObjectTypeDescriptor<T>>>)" +
129
+ "descriptor.Extend().Context.ContextData[hooksKey]!;" ) ;
130
+ _writer . WriteIndentedLine ( "foreach (var configure in hooks)" ) ;
131
+ _writer . WriteIndentedLine ( "{" ) ;
132
+
133
+ using ( _writer . IncreaseIndent ( ) )
134
+ {
135
+ _writer . WriteIndentedLine ( "configure(descriptor);" ) ;
136
+ }
137
+
138
+ _writer . WriteIndentedLine ( "};" ) ;
110
139
}
111
- _writer . WriteIndentedLine ( "};" ) ;
140
+
141
+ _writer . WriteIndentedLine ( "});" ) ;
112
142
}
113
- _writer . WriteIndentedLine ( "});" ) ;
143
+
144
+ _writer . WriteIndentedLine ( "sb.ContextData.Add(typeKey, null);" ) ;
114
145
}
146
+
147
+ _writer . WriteIndentedLine ( "}" ) ;
115
148
_writer . WriteLine ( ) ;
116
- _writer . WriteIndentedLine ( "sb.ContextData.Add(typeKey, null);" ) ;
117
- }
118
- _writer . WriteIndentedLine ( "}" ) ;
119
149
120
- _writer . WriteLine ( ) ;
121
- _writer . WriteIndentedLine ( "if (!sb.ContextData.TryGetValue(hooksKey, out var value))" ) ;
122
- _writer . WriteIndentedLine ( "{" ) ;
123
- using ( _writer . IncreaseIndent ( ) )
124
- {
150
+ _writer . WriteIndentedLine ( "if (!sb.ContextData.TryGetValue(hooksKey, out var value))" ) ;
151
+ _writer . WriteIndentedLine ( "{" ) ;
152
+
153
+ using ( _writer . IncreaseIndent ( ) )
154
+ {
155
+ _writer . WriteIndentedLine (
156
+ "value = new System.Collections.Generic.List<Action<IObjectTypeDescriptor<T>>>();" ) ;
157
+ _writer . WriteIndentedLine ( "sb.ContextData.Add(hooksKey, value);" ) ;
158
+ }
159
+
160
+ _writer . WriteIndentedLine ( "}" ) ;
161
+ _writer . WriteLine ( ) ;
125
162
_writer . WriteIndentedLine (
126
- "value = new System.Collections.Generic.List<Action<IObjectTypeDescriptor<{0}>>>();" ,
127
- runtimeTypeName ) ;
128
- _writer . WriteIndentedLine ( "sb.ContextData.Add(hooksKey, value);" ) ;
163
+ "((System.Collections.Generic.List<Action<IObjectTypeDescriptor<T>>>)value!)" +
164
+ ".Add(initialize);" ) ;
129
165
}
130
166
131
- _writer . WriteIndentedLine ( "}" ) ;
132
- _writer . WriteLine ( ) ;
133
- _writer . WriteIndentedLine (
134
- "((System.Collections.Generic.List<Action<IObjectTypeDescriptor<{0}>>>)value!)" +
135
- ".Add({1}.Initialize);" ,
136
- runtimeTypeName ,
137
- extensionType ) ;
167
+ _writer . WriteIndentedLine ( "});" ) ;
138
168
}
139
- _writer . WriteIndentedLine ( "});" ) ;
169
+
170
+ _writer . WriteIndentedLine ( "}" ) ;
140
171
}
141
172
142
173
public void WriteRegisterDataLoader ( string typeName )
0 commit comments