]> git.r.bdr.sh - rbdr/forum/blobdiff - src/stores/apollo.js
Add error/empty cases for forums
[rbdr/forum] / src / stores / apollo.js
index e2deecd5f9c6a436f853634292dbc89fc5b6faa6..f84a183f4060cb4741d6fc745526cc6bc45bd1cf 100644 (file)
@@ -1,6 +1,6 @@
 import { ApolloError } from '@apollo/client/core';
 import { readable } from 'svelte/store';
-import { client } from '$config/apollo';
+import { client } from '$/config/apollo';
 
 /*
  * This is a generic store for use with apollo
@@ -8,33 +8,39 @@ import { client } from '$config/apollo';
 
 export const store = function store({ key, query, initialValue = null, variables = {} }) {
 
-  return readable({
-    loading: true,
-    data: initialValue,
-    error: undefined
-  }, (set) => {
-
-    const handleError = function (error) {
-
-      return set({
-        loading: false,
-        data: initialValue,
-        error
-      });
-    };
-
-    client.watchQuery({ query, variables }).subscribe((result) => {
-
-      if (result.errors) {
-        const error = new ApolloError({ graphQLErrors: result.errors });
-        return handleError(error);
-      }
-
-      set({
-        loading: false,
-        data: result.data[key],
-        error: undefined
-      });
-    }, (error) => handleError(error));
-  });
+  return readable(
+    {
+      loading: true,
+      data: initialValue,
+      error: undefined
+    },
+    (set) => {
+
+      const handleError = function (error) {
+
+        return set({
+          loading: false,
+          data: initialValue,
+          error
+        });
+      };
+
+      client.watchQuery({ query, variables }).subscribe(
+        (result) => {
+
+          if (result.errors) {
+            const error = new ApolloError({ graphQLErrors: result.errors });
+            return handleError(error);
+          }
+
+          set({
+            loading: false,
+            data: result.data[key],
+            error: undefined
+          });
+        },
+        (error) => handleError(error)
+      );
+    }
+  );
 };