From: Bastien Wirtz Date: Sat, 6 Jun 2020 23:57:36 +0000 (-0700) Subject: Display parsing error X-Git-Tag: 127277198~1 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=bd9109425a40f5b6c43147a7c9852014a5797dca;hp=10ea23a01d822714eb5c55ac46b808064fd1f600;p=github%2Fbastienwirtz%2Fhomer.git Display parsing error --- diff --git a/src/App.vue b/src/App.vue index 8185da2..fddc585 100644 --- a/src/App.vue +++ b/src/App.vue @@ -146,27 +146,26 @@ export default { }; }, created: async function () { - try { - const defaults = jsyaml.load(defaultConfig); - let config = await this.getConfig(); - - this.config = merge(defaults, config); - this.services = this.config.services; - document.title = `${this.config.title} | ${this.config.subtitle}`; - } catch (error) { - this.offline = true; - } + const defaults = jsyaml.load(defaultConfig); + let config = await this.getConfig(); + this.config = merge(defaults, config); + this.services = this.config.services; + document.title = `${this.config.title} | ${this.config.subtitle}`; }, methods: { getConfig: function () { - return fetch("config.yml").then(function (response) { - if (response.status != 200) { - return; - } - return response.text().then(function (body) { - return jsyaml.load(body); + return fetch("config.yml") + .then((response) => { + if (!response.ok) { + throw Error(response.statusText); + } + return response.text().then((body) => { + return jsyaml.load(body); + }); + }) + .catch((error) => { + return this.handleErrors("⚠️ Error loading configuration", error); }); - }); }, matchesFilter: function (item) { return ( @@ -207,6 +206,15 @@ export default { }, ]; }, + handleErrors: function (title, content) { + return { + message: { + title: title, + style: "is-danger", + content: content, + }, + }; + }, }, };