]> git.immae.eu Git - github/bastienwirtz/homer.git/commitdiff
Display parsing error
authorBastien Wirtz <bastien.wirtz@gmail.com>
Sat, 6 Jun 2020 23:57:36 +0000 (16:57 -0700)
committerBastien Wirtz <bastien.wirtz@gmail.com>
Sun, 7 Jun 2020 00:01:11 +0000 (17:01 -0700)
src/App.vue

index 8185da212c260f672ec5defd9957349a918c6d63..fddc5853a6f20acbbf961a520313192b9ba8f057 100644 (file)
@@ -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,
+        },
+      };
+    },
   },
 };
 </script>