Fix bug where you weren't able to use both the -q and -j flags at the same time #227

Open
Vylpes wants to merge 11 commits from feature/181-q-json-flags into develop
2 changed files with 11 additions and 16 deletions
Showing only changes of commit 438884b270 - Show all commits

View file

@ -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 };
Vylpes marked this conversation as resolved Outdated

I feel like there could be a better way to do this? As now we have the output kinda splintered. I suggest maybe we have the json object created in a separate function, and then split to human-readable if -j isn't present

I feel like there could be a better way to do this? As now we have the output kinda splintered. I suggest maybe we have the json object created in a separate function, and then split to human-readable if `-j` isn't present
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 = "";
Review

I don't think I like the way this is done, I think it should be how it was before, but when its actually printed to the terminal it should remove the appended new line

I don't think I like the way this is done, I think it should be how it was before, but when its actually printed to the terminal it should remove the appended new line
output += `${prefix}${key} = ${object[key]}\n`;
for (const key in object) {
output += `${key} = ${object[key]}\n`;
Vylpes marked this conversation as resolved Outdated

This will add an additional new line at the end of the output which might not look right

This will add an additional new line at the end of the output which might not look right
}
return output;
}
private static AppendObject(a: any, b: any, target: string): any {
a[target] = { ...b };
}
/* eslint-enable @typescript-eslint/no-explicit-any */
}

View file

@ -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
"
`;