Browse Source

Maintenance: Mobile - Added typescript check during the linting.

Dominik Klein 3 years ago
parent
commit
5024dce08f

+ 1 - 1
app/frontend/apps/mobile/views/Login.vue

@@ -6,7 +6,7 @@
     <div class="max-w-sm w-full">
       <div class="h-full m-auto">
         <div class="flex-grow flex flex-col justify-center">
-          <p>{{ i18n.t('Log in with %s', config.get('fqdn')) }}</p>
+          <p>{{ i18n.t('Log in with %s', config.get('fqdn') as string) }}</p>
 
           <div class="my-5 p-5 max-w-full bg-white flex-grow rounded-md">
             <div class="flex flex-col">

+ 4 - 2
app/frontend/common/server/apollo/link/error.ts

@@ -16,8 +16,10 @@ const errorLink = onError(({ graphQLErrors, networkError, operation }) => {
   if (graphQLErrors) {
     graphQLErrors.forEach(({ message, extensions, path }) => {
       const { type, backtrace }: GraphQLErrorExtensionsHandler = {
-        type: extensions?.type || GraphQLErrorTypes.NetworkError,
-        backtrace: extensions?.backtrace,
+        type:
+          (extensions?.type as GraphQLErrorTypes) ||
+          GraphQLErrorTypes.NetworkError,
+        backtrace: extensions?.backtrace as string,
       }
 
       errorMessages.push(

+ 3 - 3
app/frontend/common/stores/application/config.ts

@@ -1,20 +1,20 @@
 // Copyright (C) 2012-2021 Zammad Foundation, https://zammad-foundation.org/
 
 import { defineStore } from 'pinia'
-import { SingleValueStore } from '@common/types/store'
+import { SingleValueStore, ConfigValues } from '@common/types/store'
 import { useApplicationConfigQuery } from '@mobile/graphql/api'
 import { QueryHandler } from '@common/server/apollo/handler'
 
 // TODO: maybe we can avoid the usage of unknown?
 const useApplicationConfigStore = defineStore('applicationConfig', {
-  state: (): SingleValueStore<Record<string, unknown>> => {
+  state: (): SingleValueStore<Record<string, ConfigValues>> => {
     return {
       value: {},
     }
   },
   getters: {
     get() {
-      return (name: string): unknown => this.value[name]
+      return (name: string): ConfigValues => this.value[name]
     },
   },
   actions: {

+ 6 - 0
app/frontend/common/types/store.ts

@@ -1,9 +1,15 @@
 // Copyright (C) 2012-2021 Zammad Foundation, https://zammad-foundation.org/
 
 import { CurrentUserQuery } from '@common/graphql/types'
+import type { Primitive } from 'type-fest'
 
 export interface SingleValueStore<TValue> {
   value: TValue
 }
 
 export type UserData = Maybe<CurrentUserQuery['currentUser']>
+
+export type ConfigValues =
+  | Primitive
+  | Record<string, Primitive>
+  | Array<Primitive | Record<string, Primitive>>

+ 4 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "scripts": {
     "generate-graphql-api": "bundle exec rails generate graphql_introspection > tmp/graphql_introspection.json && npx graphql-codegen -c .graphql_code_generator.yml",
-    "lint": "eslint --cache --cache-location ./tmp/eslintcache.js -c .eslintrc.js --ext .js,.ts,.vue app/frontend/ .eslint/",
+    "lint": "vue-tsc --noEmit && eslint --cache --cache-location ./tmp/eslintcache.js -c .eslintrc.js --ext .js,.ts,.vue app/frontend/ .eslint/",
     "lint:fix": "npm run lint -- --fix",
     "lint:css": "stylelint \"**/*.{css,vue,scss}\"",
     "lint:css:fix": "stylelint \"**/*.{css,vue,scss}\" --fix",
@@ -71,5 +71,8 @@
     "uuid": "^8.3.2",
     "vue": "^3.2.22",
     "vue-router": "^4.0.12"
+  },
+  "resolutions": {
+    "vscode-languageserver": "8.0.0-next.3"
   }
 }

+ 21 - 16
yarn.lock

@@ -7347,40 +7347,45 @@ vscode-json-languageservice@^4.1.8:
     vscode-nls "^5.0.0"
     vscode-uri "^3.0.2"
 
-vscode-jsonrpc@8.0.0-next.4, vscode-jsonrpc@^8.0.0-next.2:
+vscode-jsonrpc@8.0.0-next.3:
+  version "8.0.0-next.3"
+  resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.3.tgz#b55edff0e550b03f3804aade44aca2699af27255"
+  integrity sha512-2wRiBR5tZAXZ4UxIO4F0cT/zN6OpruoWO0vc7EpQZxVfumb0pYiSegB+PaOzXCuFQzh7YEshW/XMg4zTz3FGVQ==
+
+vscode-jsonrpc@^8.0.0-next.2:
   version "8.0.0-next.4"
   resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.4.tgz#c0da5e3536c0862e8189b1678a3a7c4900e6ecbd"
   integrity sha512-i+wvza5Wd0YV/t9qhnS8I+dJdhJ1fHIhRW4f262rXXM9Mgts5VZhYrRZufGcai4y99RlbZvwaZhplQ6diRXkaA==
 
-vscode-languageserver-protocol@3.17.0-next.11:
-  version "3.17.0-next.11"
-  resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.11.tgz#0f2b2bc0d28026422340e4571373e018598e2e16"
-  integrity sha512-9FqHT7XvM6tWFsnLvRfuQA7Zh7wZZYAwA9dK85lYthA8M1aXpXEP9drXVvO/Fe03MUeJpKVf2e4/NvDaFUnttg==
+vscode-languageserver-protocol@3.17.0-next.9:
+  version "3.17.0-next.9"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.9.tgz#0fd4ad43611c96acd83d8d998dbe76668f60e604"
+  integrity sha512-DGkRmbI1hRBMY6HU6MOyza5AvYp0+HcbMf2qdmI98luyQJ26dOfHY5K38OS4hlTHhdJg9RypTQ/uBbLZehmn1Q==
   dependencies:
-    vscode-jsonrpc "8.0.0-next.4"
-    vscode-languageserver-types "3.17.0-next.5"
+    vscode-jsonrpc "8.0.0-next.3"
+    vscode-languageserver-types "3.17.0-next.4"
 
 vscode-languageserver-textdocument@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.3.tgz#879f2649bfa5a6e07bc8b392c23ede2dfbf43eff"
   integrity sha512-ynEGytvgTb6HVSUwPJIAZgiHQmPCx8bZ8w5um5Lz+q5DjP0Zj8wTFhQpyg8xaMvefDytw2+HH5yzqS+FhsR28A==
 
-vscode-languageserver-types@3.17.0-next.5:
-  version "3.17.0-next.5"
-  resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.5.tgz#0d176d39d215d55bffc9195112fb2b6d81ff5fbb"
-  integrity sha512-Zcfaw8BznhlJWB09LDR0dscXyxn9+liREqJnPF4pigeUCHwKxYapYqizwuCpMHQ/oLYiAvKwU+f28hPleYu7pA==
+vscode-languageserver-types@3.17.0-next.4:
+  version "3.17.0-next.4"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.4.tgz#f6788b375ec163da8b381f2f3e3f547cbc7fbeec"
+  integrity sha512-MraVkZDhfqa3ftnKW9rEDeqsV+ji8OrtEjx6mVjzVGm5U2XXT+mdqDWyQ+y0Gvb2/aa2oJJQyTAaDmRTUKiUbg==
 
 vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.16.0:
   version "3.16.0"
   resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
   integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
 
-vscode-languageserver@^8.0.0-next.2:
-  version "8.0.0-next.5"
-  resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.0.0-next.5.tgz#99f7f25dd658a1f000219f62c29ae557858f850c"
-  integrity sha512-3E2W0eWtGKb6QAJqspOnD0thrBRRo8IGUMV5jpDNMcMKvmtkcxMwsBh0VxdvuWaZ51PiNyR4L+B+GUvkYsyFEg==
+vscode-languageserver@8.0.0-next.3, vscode-languageserver@^8.0.0-next.2:
+  version "8.0.0-next.3"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.0.0-next.3.tgz#36c701a6844ec269505539e3b84a37693760a52f"
+  integrity sha512-uxL/tKUa/gRdvQINVmMnK32d6LwfTPTvF7l1iZIFDuAdhGrQ+Po+4lS3w4hwQSeUmapM1WMELXNBFca/u3H5Uw==
   dependencies:
-    vscode-languageserver-protocol "3.17.0-next.11"
+    vscode-languageserver-protocol "3.17.0-next.9"
 
 vscode-nls@^5.0.0:
   version "5.0.0"