From 337a60c8a4babbad9f657706c45b4defddaf7c9f Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Fri, 8 Oct 2021 23:44:23 +0530 Subject: [PATCH] feat: gql codegen + caching + optimistic --- .gitignore | 2 +- packages/hoppscotch-app/.eslintrc.js | 3 + packages/hoppscotch-app/.gitignore | 6 + .../hoppscotch-app/components/teams/Team.vue | 2 +- .../hoppscotch-app/components/teams/index.vue | 50 +- packages/hoppscotch-app/gql-codegen.yml | 15 + .../helpers/backend/GQLClient.ts | 34 +- .../helpers/backend/caching/keys.ts | 4 +- .../helpers/backend/caching/resolvers.ts | 14 + .../helpers/backend/caching/updates.ts | 112 +- .../backend/gql/mutations/CreateTeam.graphql | 20 + .../backend/gql/mutations/DeleteTeam.graphql | 3 + .../backend/gql/mutations/LeaveTeam.graphql | 3 + .../gql/mutations/RemoveTeamMember.graphql | 3 + .../backend/gql/mutations/RenameTeam.graphql | 13 + .../mutations/UpdateTeamMemberRole.graphql | 14 + .../backend/gql/queries/GetTeam.graphql | 13 + .../helpers/backend/gql/queries/Me.graphql | 8 + .../backend/gql/queries/MyTeams.graphql | 18 + .../helpers/backend/mutations/Team.ts | 162 +-- .../helpers/backend/types/TeamMemberRole.ts | 1 - packages/hoppscotch-app/package.json | 18 +- packages/hoppscotch-app/tsconfig.json | 1 + pnpm-lock.yaml | 1101 ++++++++++++++--- 24 files changed, 1202 insertions(+), 418 deletions(-) create mode 100644 packages/hoppscotch-app/gql-codegen.yml create mode 100644 packages/hoppscotch-app/helpers/backend/caching/resolvers.ts create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/CreateTeam.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/DeleteTeam.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/LeaveTeam.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/RemoveTeamMember.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/RenameTeam.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/mutations/UpdateTeamMemberRole.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/queries/GetTeam.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/queries/Me.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/queries/MyTeams.graphql delete mode 100644 packages/hoppscotch-app/helpers/backend/types/TeamMemberRole.ts diff --git a/.gitignore b/.gitignore index 0d329c28a..ada8b332e 100644 --- a/.gitignore +++ b/.gitignore @@ -109,4 +109,4 @@ tests/*/videos .netlify # Andrew's crazy Volar shim generator -shims-volar.d.ts +shims-volar.d.ts \ No newline at end of file diff --git a/packages/hoppscotch-app/.eslintrc.js b/packages/hoppscotch-app/.eslintrc.js index d51ccaed3..9b30a5797 100644 --- a/packages/hoppscotch-app/.eslintrc.js +++ b/packages/hoppscotch-app/.eslintrc.js @@ -18,6 +18,9 @@ module.exports = { "plugin:prettier/recommended", "plugin:nuxt/recommended", ], + ignorePatterns: [ + "helpers/backend/graphql.ts" + ], plugins: ["vue", "prettier"], // add your custom rules here rules: { diff --git a/packages/hoppscotch-app/.gitignore b/packages/hoppscotch-app/.gitignore index 0d329c28a..a3ab74b17 100644 --- a/packages/hoppscotch-app/.gitignore +++ b/packages/hoppscotch-app/.gitignore @@ -110,3 +110,9 @@ tests/*/videos # Andrew's crazy Volar shim generator shims-volar.d.ts + +# Hoppscotch Backend Schema Introspection JSON +helpers/backend/backend-schema.json + +# GraphQL Type Generation +helpers/backend/graphql.ts \ No newline at end of file diff --git a/packages/hoppscotch-app/components/teams/Team.vue b/packages/hoppscotch-app/components/teams/Team.vue index 83f1c6ad0..49d37e695 100644 --- a/packages/hoppscotch-app/components/teams/Team.vue +++ b/packages/hoppscotch-app/components/teams/Team.vue @@ -73,11 +73,11 @@ import { useContext } from "@nuxtjs/composition-api" import { pipe } from "fp-ts/function" import * as TE from "fp-ts/TaskEither" +import { TeamMemberRole } from "~/helpers/backend/graphql" import { deleteTeam as backendDeleteTeam, leaveTeam, } from "~/helpers/backend/mutations/Team" -import { TeamMemberRole } from "~/helpers/backend/types/TeamMemberRole" const props = defineProps<{ team: { diff --git a/packages/hoppscotch-app/components/teams/index.vue b/packages/hoppscotch-app/components/teams/index.vue index e8b8793e3..51c38fbcf 100644 --- a/packages/hoppscotch-app/components/teams/index.vue +++ b/packages/hoppscotch-app/components/teams/index.vue @@ -71,12 +71,15 @@