Skip to content

Commit

Permalink
chore: Lint Typescript files using ESLint and add CI workflow linting
Browse files Browse the repository at this point in the history
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
  • Loading branch information
susnux committed Jul 11, 2023
1 parent 04275dc commit 8e0475c
Show file tree
Hide file tree
Showing 6 changed files with 4,609 additions and 4,189 deletions.
5 changes: 5 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"extends": [
"@nextcloud/eslint-config/typescript"
]
}
62 changes: 62 additions & 0 deletions .github/workflows/lint-eslint.yml
Original file line number Diff line number Diff line change
@@ -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/**'
- 'lib/**'
- '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@e33196f7422957bea03ed53f6fbb155025ffc7b8 # 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
24 changes: 12 additions & 12 deletions lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
* @throws if the key can't be found
*/
export function loadState<T>(app: string, key: string, fallback?: T): T {
const elem = <HTMLInputElement>document.querySelector(`#initial-state-${app}-${key}`)
if (elem === null) {
if (fallback !== undefined) {
return fallback
}
throw new Error(`Could not find initial state ${key} of ${app}`)
}
const elem = <HTMLInputElement>document.querySelector(`#initial-state-${app}-${key}`)
if (elem === null) {
if (fallback !== undefined) {
return fallback
}
throw new Error(`Could not find initial state ${key} of ${app}`)
}

try {
return JSON.parse(atob(elem.value))
} catch (e) {
throw new Error(`Could not parse initial state ${key} of ${app}`)
}
try {
return JSON.parse(atob(elem.value))
} catch (e) {
throw new Error(`Could not parse initial state ${key} of ${app}`)
}
}
Loading

0 comments on commit 8e0475c

Please sign in to comment.