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

Merged
Vylpes merged 17 commits from feature/181-q-json-flags into develop 2024-12-07 22:21:43 +00:00
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 };
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 */
}

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