Skip to content

Commit

Permalink
Merge pull request #631 from nextcloud/feat/add-eslint
Browse files Browse the repository at this point in the history
Add eslint and fix linter issues
  • Loading branch information
susnux committed Jun 27, 2023
2 parents cc2b0f9 + 9498817 commit 865af43
Show file tree
Hide file tree
Showing 16 changed files with 4,953 additions and 1,267 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.json
@@ -0,0 +1,3 @@
{
"extends": ["@nextcloud/eslint-config/typescript"]
}
62 changes: 62 additions & 0 deletions .github/workflows/lint-eslint.yml
@@ -0,0 +1,62 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks

name: Lint eslint

on:
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'

permissions:
contents: read

concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
lint:
runs-on: ubuntu-latest

name: eslint

steps:
- name: Checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3

- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^9'

- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint
7 changes: 7 additions & 0 deletions jest.config.ts
@@ -0,0 +1,7 @@
import type { Config } from 'jest'

const config: Config = {
testEnvironment: 'jsdom',
}

export default config
10 changes: 5 additions & 5 deletions lib/index.ts
Expand Up @@ -7,13 +7,13 @@ import { onError as onNotLoggedInError } from './interceptors/not-logged-in'

interface CancelableAxiosInstance extends AxiosInstance {
CancelToken: CancelTokenStatic
isCancel(value: any): boolean
isCancel: typeof Axios.isCancel
}

const client: any = Axios.create({
const client = Axios.create({
headers: {
requesttoken: getRequestToken() ?? ''
}
requesttoken: getRequestToken() ?? '',
},
})
const cancelableClient: CancelableAxiosInstance = Object.assign(client, {
CancelToken: Axios.CancelToken,
Expand All @@ -24,6 +24,6 @@ cancelableClient.interceptors.response.use(r => r, onCsrfTokenError(cancelableCl
cancelableClient.interceptors.response.use(r => r, onMaintenanceModeError(cancelableClient))
cancelableClient.interceptors.response.use(r => r, onNotLoggedInError)

onRequestTokenUpdate(token => client.defaults.headers.requesttoken = token)
onRequestTokenUpdate(token => { client.defaults.headers.requesttoken = token })

export default cancelableClient
4 changes: 2 additions & 2 deletions lib/interceptors/maintenance-mode.ts
Expand Up @@ -20,8 +20,8 @@ export const onError = axios => async (error) => {
&& (!config[RETRY_DELAY_KEY] || config[RETRY_DELAY_KEY] <= 32)) {
const retryDelay = (config[RETRY_DELAY_KEY] ?? 1) * 2
console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`)
await new Promise((resolve, _) => {
setTimeout(resolve, retryDelay*1000)
await new Promise((resolve) => {
setTimeout(resolve, retryDelay * 1000)
})

return axios({
Expand Down

0 comments on commit 865af43

Please sign in to comment.