From 3e49b3527036210f1d31c6866b523b0f3f331c26 Mon Sep 17 00:00:00 2001 From: Timothy Wamalwa Date: Mon, 7 Aug 2023 18:28:33 +0300 Subject: [PATCH 1/4] Added directive to prevent null response objects --- src/readme.graph.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/readme.graph.md b/src/readme.graph.md index 9e5c4dac1b9..91ade717063 100644 --- a/src/readme.graph.md +++ b/src/readme.graph.md @@ -428,6 +428,13 @@ directive: let errorDetailsRegex = /(ErrorDetails\s*=\s*)(new.*ErrorDetails\(message\).*)/gmi $ = $.replace(errorDetailsRegex, '$1await this.GetErrorDetailsAsync((await response)?.Error, responseMessage)'); + // Prevents null response objects to the output stream + let writeObjectRegex = /(WriteObject.*(await response).*;)/gm + var writeObjectRegexMatch = writeObjectRegex.exec($); + if(writeObjectRegexMatch){ + $ = $.replace(writeObjectRegex, 'var result = await response; if(result!=null){WriteObject(result);}'); + } + return $; } From f9e254cf95fafeb0081123e9073e4f61eab18e3f Mon Sep 17 00:00:00 2001 From: Timothy Wamalwa Date: Tue, 8 Aug 2023 14:49:52 +0300 Subject: [PATCH 2/4] Updated directive as per comment --- src/readme.graph.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/readme.graph.md b/src/readme.graph.md index 91ade717063..15cd735c85e 100644 --- a/src/readme.graph.md +++ b/src/readme.graph.md @@ -428,11 +428,18 @@ directive: let errorDetailsRegex = /(ErrorDetails\s*=\s*)(new.*ErrorDetails\(message\).*)/gmi $ = $.replace(errorDetailsRegex, '$1await this.GetErrorDetailsAsync((await response)?.Error, responseMessage)'); - // Prevents null response objects to the output stream - let writeObjectRegex = /(WriteObject.*(await response).*;)/gm - var writeObjectRegexMatch = writeObjectRegex.exec($); - if(writeObjectRegexMatch){ - $ = $.replace(writeObjectRegex, 'var result = await response; if(result!=null){WriteObject(result);}'); + // Prevents null response objects to the output stream for scenarios where response is a model type + let responseTypeRegex = /global::System.Threading.Tasks.Task \w*\)[^]*?(WriteObject.*(await response).*;)/gm + var responseTypeRegexMatch = $.match(responseTypeRegex); + if(responseTypeRegexMatch){ + responseTypeRegexMatch.forEach((item)=>{ + var writeObjectRegex = /(WriteObject.*(await response).*;)/gm + var writeObjectRegexMatch = writeObjectRegex.exec($); + if(writeObjectRegexMatch){ + var newContent = item.replace(writeObjectRegex, `var result = ${writeObjectRegexMatch[2]}; if(result!=null){WriteObject(result);}`) + $ = $.replace(item, newContent); + } + }); } return $; From fe7bd45ab546768c3f35f781ecddcd95d4c2dc96 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 8 Aug 2023 20:44:00 +0300 Subject: [PATCH 3/4] Update src/readme.graph.md Co-authored-by: Peter Ombwa --- src/readme.graph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/readme.graph.md b/src/readme.graph.md index 15cd735c85e..9802ae68c24 100644 --- a/src/readme.graph.md +++ b/src/readme.graph.md @@ -429,7 +429,7 @@ directive: $ = $.replace(errorDetailsRegex, '$1await this.GetErrorDetailsAsync((await response)?.Error, responseMessage)'); // Prevents null response objects to the output stream for scenarios where response is a model type - let responseTypeRegex = /global::System.Threading.Tasks.Task \w*\)[^]*?(WriteObject.*(await response).*;)/gm + let responseTypeRegex = /global::System.Threading.Tasks.Task \w*\)[^]*?(WriteObject.*(await response).*;)/gm var responseTypeRegexMatch = $.match(responseTypeRegex); if(responseTypeRegexMatch){ responseTypeRegexMatch.forEach((item)=>{ From e5d7bd823605f692234022c8fd35d5b63b03a8a7 Mon Sep 17 00:00:00 2001 From: Timothy Wamalwa Date: Tue, 8 Aug 2023 20:56:32 +0300 Subject: [PATCH 4/4] Updated regex to include changes in beta cs files --- src/readme.graph.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/readme.graph.md b/src/readme.graph.md index 9802ae68c24..aa678223950 100644 --- a/src/readme.graph.md +++ b/src/readme.graph.md @@ -429,11 +429,11 @@ directive: $ = $.replace(errorDetailsRegex, '$1await this.GetErrorDetailsAsync((await response)?.Error, responseMessage)'); // Prevents null response objects to the output stream for scenarios where response is a model type - let responseTypeRegex = /global::System.Threading.Tasks.Task \w*\)[^]*?(WriteObject.*(await response).*;)/gm + let responseTypeRegex = /global::System.Threading.Tasks.Task \w*\)[^]*?(WriteObject.*(await response).*;)/gm + var writeObjectRegex = /(WriteObject.*(await response).*;)/gm var responseTypeRegexMatch = $.match(responseTypeRegex); if(responseTypeRegexMatch){ responseTypeRegexMatch.forEach((item)=>{ - var writeObjectRegex = /(WriteObject.*(await response).*;)/gm var writeObjectRegexMatch = writeObjectRegex.exec($); if(writeObjectRegexMatch){ var newContent = item.replace(writeObjectRegex, `var result = ${writeObjectRegexMatch[2]}; if(result!=null){WriteObject(result);}`)