diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..b1412a6 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,32 @@ +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true, + }, + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2020, + sourceType: 'module', + lib: ['es2020'], + ecmaFeatures: { + jsx: true, + tsx: true, + }, + }, + plugins: ['prettier', 'jsdoc', 'security'], + extends: [ + 'prettier', + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:prettier/recommended', + 'plugin:jsdoc/recommended', + 'plugin:security/recommended', + ], + // add your custom rules here + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + }, +}; diff --git a/package.json b/package.json index 5816d86..7f47c5c 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,10 @@ "scripts": { "test": "mocha test/**.js --timeout 10000", "lint:yml": "yamllint --schema=CORE_SCHEMA *.{yml,yaml}", - "lint:js": "npm run lint:prettier", - "lint:js:fix": "npm run lint:prettier:fix", + "lint:js": "npm run lint:eslint && npm run lint:prettier", + "lint:js:fix": "npm run lint:eslint:fix && npm run lint:prettier:fix", + "lint:eslint": "eslint \"{,!(node_modules|dist|static|public)/**/}*.{js,ts,cjs,mjs}\" --ignore-path .gitignore", + "lint:eslint:fix": "eslint --fix \"{,!(node_modules|dist|static|public)/**/}*.{js,ts,cjs,mjs}\" --ignore-path .gitignore", "lint:prettier": "prettier --check \"{,!(node_modules|dist|static|public)/**/}*.{js,ts,cjs,mjs,json}\" --ignore-path .gitignore", "lint:prettier:fix": "prettier --write \"{,!(node_modules|dist|static|public)/**/}*.{js,ts,cjs,mjs,json}\" --ignore-path .gitignore", "docker": "docker build -f Dockerfile . && docker run --rm -i -p 8080:80 $(docker build -q .)", @@ -43,7 +45,14 @@ "devDependencies": { "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", + "@typescript-eslint/eslint-plugin": "^5.38.0", + "@typescript-eslint/parser": "^5.38.0", "chai": "4.3.6", + "eslint": "^8.24.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jsdoc": "^39.3.6", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-security": "^1.5.0", "husky": "^8.0.1", "mocha": "^10.0.0", "prettier": "^2.7.1",