Fix bug where you weren't able to use both the -q and -j flags at the same time #227
2 changed files with 11 additions and 16 deletions
|
@ -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
|
||||
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 = "";
|
||||
VylpesTester
commented
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
VylpesTester
commented
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 */
|
||||
}
|
|
@ -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
|
||||
"
|
||||
`;
|
||||
|
|
Loading…
Reference in a new issue
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