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 {
|
||||
Vylpes marked this conversation as resolved
Outdated
Copilot
commented
[nitpick] The use of 'any' for the object parameter is not ideal. Consider using a more specific type. [nitpick] The use of 'any' for the object parameter is not ideal. Consider using a more specific type.
|
||||
let output = "";
|
||||
Vylpes marked this conversation as resolved
Outdated
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
Vylpes
commented
Not exactly sure what this means? It appears to be working fine and looks like that to me Not exactly sure what this means? It appears to be working fine and looks like that to me
|
||||
|
||||
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…
Add table
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