From 1bfa51af2e85a1d65fef9f3db4f5a0722d9f6030 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Thu, 28 Apr 2022 00:26:53 +0200 Subject: [PATCH] feat(app/actions): display plugins errors in logs (#1023) [skip ci] --- source/app/action/index.mjs | 8 +++++++- source/app/metrics/index.mjs | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/source/app/action/index.mjs b/source/app/action/index.mjs index 5124280a..3ca0c7d0 100644 --- a/source/app/action/index.mjs +++ b/source/app/action/index.mjs @@ -6,6 +6,7 @@ import processes from "child_process" import fs from "fs/promises" import paths from "path" import sgit from "simple-git" +import util from "util" import mocks from "../../../tests/mocks/index.mjs" import metrics from "../metrics/index.mjs" import presets from "../metrics/presets.mjs" @@ -392,7 +393,12 @@ function quit(reason) { info.break() info.section("Rendering") let rendered = await retry(async () => { - const {rendered} = await metrics({login: user, q}, {graphql, rest, plugins, conf, die, verify, convert}, {Plugins, Templates}) + const {rendered, errors} = await metrics({login: user, q}, {graphql, rest, plugins, conf, die, verify, convert}, {Plugins, Templates}) + if (errors.length) { + console.warn(`::group::${errors.length} error(s) occured`) + console.warn(util.inspect(errors, {depth: Infinity, maxStringLength: 256})) + console.warn("::endgroup::") + } return rendered }, {retries, delay: retries_delay}) if (!rendered) diff --git a/source/app/metrics/index.mjs b/source/app/metrics/index.mjs index 278db261..382bd1eb 100644 --- a/source/app/metrics/index.mjs +++ b/source/app/metrics/index.mjs @@ -89,7 +89,7 @@ export default async function metrics({login, q}, {graphql, rest, plugins, conf, } return value })) - return {rendered, mime: "application/json"} + return {rendered, mime: "application/json", errors} } //Markdown output @@ -161,7 +161,7 @@ export default async function metrics({login, q}, {graphql, rest, plugins, conf, rest, }) } - return {rendered, mime: "text/html"} + return {rendered, mime: "text/html", errors} } //Rendering @@ -197,7 +197,7 @@ export default async function metrics({login, q}, {graphql, rest, plugins, conf, //Result console.debug(`metrics/compute/${login} > success`) - return {rendered, mime} + return {rendered, mime, errors} } //Internal error catch (error) {