Fix bug where you weren't able to use both the -q and -j flags at the same time #227
2 changed files with 33 additions and 36 deletions
|
@ -5,38 +5,33 @@ export default class OutputHelper {
|
|||
public static GenerateOutput(response: IReturnResult, options: ICliOptions): string {
|
||||
const result = response.Result!;
|
||||
|
||||
const outputLines: string[] = [];
|
||||
let outputObject = {};
|
||||
|
||||
outputObject = { ...result };
|
||||
|
||||
Vylpes marked this conversation as resolved
Outdated
|
||||
if (options.queryMetadata) {
|
||||
this.AppendObject(outputObject, response.Query, "query");
|
||||
}
|
||||
|
||||
if (options.json) {
|
||||
if (options.queryMetadata != null) {
|
||||
return JSON.stringify({
|
||||
...result,
|
||||
query: {
|
||||
...response.Query,
|
||||
}
|
||||
})
|
||||
return JSON.stringify(outputObject);
|
||||
}
|
||||
|
||||
return JSON.stringify(result);
|
||||
return this.GetFriendlyObjectText(outputObject, "");
|
||||
}
|
||||
|
||||
outputLines.push(`Archived = ${result.Archived}`);
|
||||
outputLines.push(`Author = ${result.Author}`);
|
||||
outputLines.push(`Downvotes = ${result.Downs}`);
|
||||
outputLines.push(`Hidden = ${result.Hidden}`);
|
||||
outputLines.push(`Permalink = ${result.Permalink}`);
|
||||
outputLines.push(`Subreddit = ${result.Subreddit}`);
|
||||
outputLines.push(`Subreddit Subscribers = ${result.SubredditSubscribers}`);
|
||||
outputLines.push(`Title = ${result.Title}`);
|
||||
outputLines.push(`Upvotes = ${result.Ups}`);
|
||||
outputLines.push(`Url = ${result.Url}`);
|
||||
private static GetFriendlyObjectText(object: any, output: string, prefix: string = ""): string {
|
||||
for (let key in object) {
|
||||
if (typeof(object[key]) == "object") return this.GetFriendlyObjectText(object[key], output, `${key}.`);
|
||||
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
|
||||
|
||||
if (options.queryMetadata != null) {
|
||||
outputLines.push(`Query.Subreddit = ${response.Query.subreddit}`);
|
||||
outputLines.push(`Query.Sort By = ${response.Query.sortBy}`);
|
||||
outputLines.push(`Query.Limit = ${response.Query.limit}`);
|
||||
output += `${prefix}${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 outputLines.join("\n");
|
||||
return output;
|
||||
}
|
||||
|
||||
private static AppendObject(a: any, b: any, target: string): any {
|
||||
a[target] = { ...b };
|
||||
return a;
|
||||
}
|
||||
}
|
|
@ -3,14 +3,15 @@
|
|||
exports[`GenerateOutput EXPECT standout output to be returned 1`] = `
|
||||
"Archived = false
|
||||
Author = author
|
||||
Downvotes = 0
|
||||
Downs = 0
|
||||
Hidden = false
|
||||
Permalink = /r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/
|
||||
Subreddit = Rabbits
|
||||
Subreddit Subscribers = 654751
|
||||
SubredditSubscribers = 654751
|
||||
Title = This is my Ms Bear!
|
||||
Upvotes = 17
|
||||
Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"
|
||||
Ups = 17
|
||||
Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d
|
||||
"
|
||||
`;
|
||||
|
||||
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"}"`;
|
||||
|
@ -20,15 +21,16 @@ exports[`GenerateOutput GIVEN options.queryMetadata AND options.json is supplied
|
|||
exports[`GenerateOutput GIVEN options.queryMetadata is supplied, EXPECT query metadata to be added 1`] = `
|
||||
"Archived = false
|
||||
Author = author
|
||||
Downvotes = 0
|
||||
Downs = 0
|
||||
Hidden = false
|
||||
Permalink = /r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/
|
||||
Subreddit = Rabbits
|
||||
Subreddit Subscribers = 654751
|
||||
SubredditSubscribers = 654751
|
||||
Title = This is my Ms Bear!
|
||||
Upvotes = 17
|
||||
Ups = 17
|
||||
Url = https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d
|
||||
Query.Subreddit = rabbits
|
||||
Query.Sort By = hot
|
||||
Query.Limit = 100"
|
||||
query.subreddit = rabbits
|
||||
query.sortBy = hot
|
||||
query.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