From 438884b270c589606a618c11320e9e70831bd8f1 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Fri, 18 Oct 2024 19:27:33 +0100 Subject: [PATCH] Make object flat --- src/helpers/outputHelper.ts | 19 +++++++------------ .../__snapshots__/outputHelper.test.ts.snap | 8 ++++---- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/helpers/outputHelper.ts b/src/helpers/outputHelper.ts index aed4eb9..621909a 100644 --- a/src/helpers/outputHelper.ts +++ b/src/helpers/outputHelper.ts @@ -5,35 +5,30 @@ export default class OutputHelper { public static GenerateOutput(response: IReturnResult, options: ICliOptions): string { const result = response.Result!; - let outputObject = {}; + let outputObject: any = {}; outputObject = { ...result }; if (options.queryMetadata) { - this.AppendObject(outputObject, response.Query, "query"); + outputObject = { ...outputObject, ...response.Query } } if (options.json) { return JSON.stringify(outputObject); } - return this.GetFriendlyObjectText(outputObject, ""); + return this.GetFriendlyObjectText(outputObject); } /* eslint-disable @typescript-eslint/no-explicit-any */ - private static GetFriendlyObjectText(object: any, output: string, prefix: string = ""): string { - for (const key in object) { - if (typeof(object[key]) == "object") - return this.GetFriendlyObjectText(object[key], output, `${key}.`); + private static GetFriendlyObjectText(object: any): string { + let output = ""; - output += `${prefix}${key} = ${object[key]}\n`; + for (const key in object) { + output += `${key} = ${object[key]}\n`; } return output; } - - private static AppendObject(a: any, b: any, target: string): any { - a[target] = { ...b }; - } /* eslint-enable @typescript-eslint/no-explicit-any */ } \ No newline at end of file diff --git a/tests/helpers/__snapshots__/outputHelper.test.ts.snap b/tests/helpers/__snapshots__/outputHelper.test.ts.snap index 51f5ec1..e9dc1f5 100644 --- a/tests/helpers/__snapshots__/outputHelper.test.ts.snap +++ b/tests/helpers/__snapshots__/outputHelper.test.ts.snap @@ -16,7 +16,7 @@ Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s exports[`GenerateOutput GIVEN options.json is true, EXPECT output to be returned as JSON 1`] = `"{"Archived":false,"Author":"author","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/","Subreddit":"Rabbits","SubredditSubscribers":654751,"Title":"This is my Ms Bear!","Ups":17,"Url":"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"}"`; -exports[`GenerateOutput GIVEN options.queryMetadata AND options.json is supplied, EXPECT query metadata to be in JSON format 1`] = `"{"Archived":false,"Author":"author","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/","Subreddit":"Rabbits","SubredditSubscribers":654751,"Title":"This is my Ms Bear!","Ups":17,"Url":"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d","query":{"subreddit":"rabbits","sortBy":"hot","limit":100}}"`; +exports[`GenerateOutput GIVEN options.queryMetadata AND options.json is supplied, EXPECT query metadata to be in JSON format 1`] = `"{"Archived":false,"Author":"author","Downs":0,"Hidden":false,"Permalink":"/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/","Subreddit":"Rabbits","SubredditSubscribers":654751,"Title":"This is my Ms Bear!","Ups":17,"Url":"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d","subreddit":"rabbits","sortBy":"hot","limit":100}"`; exports[`GenerateOutput GIVEN options.queryMetadata is supplied, EXPECT query metadata to be added 1`] = ` "Archived = false @@ -29,8 +29,8 @@ SubredditSubscribers = 654751 Title = This is my Ms Bear! Ups = 17 Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d -query.subreddit = rabbits -query.sortBy = hot -query.limit = 100 +subreddit = rabbits +sortBy = hot +limit = 100 " `;