diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..2c2f69c --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,39 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "root": true, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "overrides": [], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/ban-ts-comment": ["warn", "allow-with-description"], + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-explicit-any": ["off", { "ignoreRestArgs": true }], + "@typescript-eslint/no-non-null-assertion": "off" + }, + "ignorePatterns": [ + "**/dist/**", + "**/node_modules/**", + "**/abbrevIso*", + "**/example*", + "**/*.bak", + "coverage/**", + "docs-shared/lib/**", + "packages/*/assets/**", + "packages/*/lib/**", + "!.vuepress/**", + "**/.vuepress/.cache/**", + "**/.vuepress/.temp/**" + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..1d7ac85 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] +} diff --git a/.vscode/setting.json b/.vscode/setting.json new file mode 100644 index 0000000..eeee5eb --- /dev/null +++ b/.vscode/setting.json @@ -0,0 +1,7 @@ +{ + "editor.formatOnType": true, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + } +} diff --git a/package.json b/package.json index 1ddaf46..0560be5 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "restart-prod": "npm run build-prod && npm run stop && npm run start", "restart": "npm run restart-dev", "release": "release-it", + "lint": "prettier --write . && eslint . --ext .ts --fix", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -41,14 +42,22 @@ }, "devDependencies": { "@types/node": "^18.11.17", + "@typescript-eslint/eslint-plugin": "^5.59.1", + "@typescript-eslint/parser": "^5.59.1", "compressing": "^1.6.3", "concurrently": "^7.6.0", "cross-env": "^7.0.3", "esbuild": "^0.17.4", + "eslint": "^8.39.0", + "eslint-config-prettier": "^8.8.0", "minimist": "^1.2.7", + "prettier": "2.8.8", "release-it": "^15.6.0", "replace-in-file": "^6.3.5", "typescript": "^4.9.4", "zotero-types": "^1.0.12" + }, + "prettier": { + "tabWidth": 2 } }