@@ -212,10 +212,11 @@ auto FEcsactEditorModule::RunCodegen() -> void {
212212
213213auto FEcsactEditorModule::RunBuild () -> void {
214214 const auto * settings = GetDefault<UEcsactSettings>();
215- auto ecsact_runtime_path = FPaths::Combine (
216- FPaths::ProjectDir (),
217- TEXT (" Binaries/Win64/EcsactRuntime.dll" )
218- );
215+
216+ auto ecsact_runtime_path = FPaths::Combine (
217+ FPaths::ProjectDir (),
218+ TEXT (" Binaries/Win64/EcsactRuntime.dll" )
219+ );
219220 auto temp_dir = FPaths::CreateTempFilename (TEXT (" EcsactBuild" ));
220221
221222 auto ecsact_files = GetAllEcsactFiles ();
@@ -290,86 +291,89 @@ auto FEcsactEditorModule::OnReceiveEcsactCliJsonMessage(FString Json) -> void {
290291 auto json_object = TSharedPtr<FJsonObject>{};
291292 auto reader = TJsonReaderFactory<>::Create (Json);
292293
293- if (FJsonSerializer::Deserialize (reader, json_object) &&
294- json_object.IsValid ()) {
295- auto message_type = json_object->GetStringField (TEXT (" type" ));
296-
297- if (message_type == " info" ) {
298- UE_LOG (
299- EcsactEditor,
300- Log,
301- TEXT (" %s" ),
302- *json_object->GetStringField (TEXT (" content" ))
303- );
304- } else if (message_type == " error" ) {
305- UE_LOG (
306- EcsactEditor,
307- Error,
308- TEXT (" %s" ),
309- *json_object->GetStringField (TEXT (" content" ))
310- );
311- } else if (message_type == " warning" ) {
312- UE_LOG (
313- EcsactEditor,
314- Warning,
315- TEXT (" %s" ),
316- *json_object->GetStringField (TEXT (" content" ))
317- );
318- } else if (message_type == " subcommand_start" ) {
319- UE_LOG (
320- EcsactEditor,
321- Log,
322- TEXT (" subcommand(%i): %s" ),
323- json_object->GetIntegerField (TEXT (" id" )),
324- *json_object->GetStringField (TEXT (" executable" ))
325- );
326- } else if (message_type == " subcommand_end" ) {
327- UE_LOG (
328- EcsactEditor,
329- Log,
330- TEXT (" subcommand(%i): exit code %i" ),
331- json_object->GetIntegerField (TEXT (" id" )),
332- json_object->GetIntegerField (TEXT (" exit_code" ))
333- );
334- } else if (message_type == " subcommand_stdout" ) {
335- UE_LOG (
336- EcsactEditor,
337- Log,
338- TEXT (" subcommand(%i): %s" ),
339- json_object->GetIntegerField (TEXT (" id" )),
340- *json_object->GetStringField (TEXT (" line" ))
341- );
342- } else if (message_type == " subcommand_stderr" ) {
343- UE_LOG (
344- EcsactEditor,
345- Error,
346- TEXT (" subcommand(%i): %s" ),
347- json_object->GetIntegerField (TEXT (" id" )),
348- *json_object->GetStringField (TEXT (" line" ))
349- );
350- } else if (message_type == " success" ) {
351- UE_LOG (
352- EcsactEditor,
353- Log,
354- TEXT (" %s" ),
355- *json_object->GetStringField (TEXT (" content" ))
356- );
357- } else {
358- UE_LOG (
359- EcsactEditor,
360- Warning,
361- TEXT (" Unhandled Message (%s): %s" ),
362- *message_type,
363- *Json
364- );
365- }
366- } else {
294+ if (!FJsonSerializer::Deserialize (reader, json_object)) {
367295 UE_LOG (
368296 EcsactEditor,
369297 Error,
370298 TEXT (" Failed to parse JSON message: %s" ),
371299 *Json
372300 );
301+ return ;
302+ }
303+ if (!json_object.IsValid ()) {
304+ return ;
305+ }
306+
307+ auto message_type = json_object->GetStringField (TEXT (" type" ));
308+
309+ if (message_type == " info" ) {
310+ UE_LOG (
311+ EcsactEditor,
312+ Log,
313+ TEXT (" %s" ),
314+ *json_object->GetStringField (TEXT (" content" ))
315+ );
316+ } else if (message_type == " error" ) {
317+ UE_LOG (
318+ EcsactEditor,
319+ Error,
320+ TEXT (" %s" ),
321+ *json_object->GetStringField (TEXT (" content" ))
322+ );
323+ } else if (message_type == " warning" ) {
324+ UE_LOG (
325+ EcsactEditor,
326+ Warning,
327+ TEXT (" %s" ),
328+ *json_object->GetStringField (TEXT (" content" ))
329+ );
330+ } else if (message_type == " subcommand_start" ) {
331+ UE_LOG (
332+ EcsactEditor,
333+ Log,
334+ TEXT (" subcommand(%i): %s" ),
335+ json_object->GetIntegerField (TEXT (" id" )),
336+ *json_object->GetStringField (TEXT (" executable" ))
337+ );
338+ } else if (message_type == " subcommand_end" ) {
339+ UE_LOG (
340+ EcsactEditor,
341+ Log,
342+ TEXT (" subcommand(%i): exit code %i" ),
343+ json_object->GetIntegerField (TEXT (" id" )),
344+ json_object->GetIntegerField (TEXT (" exit_code" ))
345+ );
346+ } else if (message_type == " subcommand_stdout" ) {
347+ UE_LOG (
348+ EcsactEditor,
349+ Log,
350+ TEXT (" subcommand(%i): %s" ),
351+ json_object->GetIntegerField (TEXT (" id" )),
352+ *json_object->GetStringField (TEXT (" line" ))
353+ );
354+ } else if (message_type == " subcommand_stderr" ) {
355+ UE_LOG (
356+ EcsactEditor,
357+ Error,
358+ TEXT (" subcommand(%i): %s" ),
359+ json_object->GetIntegerField (TEXT (" id" )),
360+ *json_object->GetStringField (TEXT (" line" ))
361+ );
362+ } else if (message_type == " success" ) {
363+ UE_LOG (
364+ EcsactEditor,
365+ Log,
366+ TEXT (" %s" ),
367+ *json_object->GetStringField (TEXT (" content" ))
368+ );
369+ } else {
370+ UE_LOG (
371+ EcsactEditor,
372+ Warning,
373+ TEXT (" Unhandled Message (%s): %s" ),
374+ *message_type,
375+ *Json
376+ );
373377 }
374378}
375379
0 commit comments