Skip to content

Instantly share code, notes, and snippets.

@Tim-W-James
Last active February 21, 2022 10:14
Show Gist options
  • Save Tim-W-James/5dadad652f8942cea19e867ea24cd5e3 to your computer and use it in GitHub Desktop.
Save Tim-W-James/5dadad652f8942cea19e867ea24cd5e3 to your computer and use it in GitHub Desktop.
TypeScript w/ FP: ESLint
module.exports = {
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
ecmaVersion: 2018,
sourceType: "module",
},
extends: [
"typed-fp",
"plugin:sonarjs/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended",
],
env: {
es6: true,
},
plugins: [
"jest",
"sonarjs",
"functional",
"@typescript-eslint",
"prettier",
"total-functions",
],
rules: {
"total-functions/no-unsafe-mutable-readonly-assignment": "warn",
"functional/functional-parameters": "warn",
},
ignorePatterns: ["/*.*"],
};

Install

ESLint + Prettier

npm i eslint eslint-config-prettier eslint-plugin-prettier prettier --save-dev

TypeScript

npm i typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser --save-dev

fp-ts

npm i eslint-config-typed-fp eslint-plugin-functional eslint-plugin-total-functions --save-dev

sonarjs

npm i eslint-plugin-sonarjs --save-dev

Jest

npm i jest eslint-plugin-jest --save-dev

ESLint Config

Install ESLint

npm i -g eslint

Create Config

eslint --init
{
"name": "eslint-fp-ts",
"version": "0.0.0",
"description": ":rocket:",
"main": "src/main.ts",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"lint": "eslint",
"format": "eslint --fix",
"test": "jest"
},
"devDependencies": {
"@types/jest": "^27.4.0",
"@types/node": "^17.0.7",
"@typescript-eslint/eslint-plugin": "^5.9.0",
"@typescript-eslint/parser": "^5.9.0",
"eslint": "^8.6.0",
"eslint-config-prettier": "^8.3.0",
"eslint-config-typed-fp": "^2.0.1",
"eslint-plugin-functional": "^4.0.2",
"eslint-plugin-jest": "^25.3.4",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-sonarjs": "^0.11.0",
"eslint-plugin-total-functions": "^5.0.1",
"jest": "^27.4.5",
"prettier": "^2.5.1",
"ts-jest": "^27.1.2",
"ts-node": "^10.4.0",
"typescript": "^4.5.4",
"vite": "^2.7.2"
},
"dependencies": {
"fp-ts": "^2.11.5",
"io-ts": "^2.2.16",
"io-ts-types": "^0.5.16",
"monocle-ts": "^2.3.11",
"newtype-ts": "^0.3.4",
"readonly-types": "^3.0.0",
"source-map-support": "^0.5.21"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment