UNPKG

eslint-config-motley-typescript

Version:

Motley's TypeScript styleguide using `@typescript-eslint` and `prettier`

82 lines (60 loc) 2.31 kB
# eslint-config-motley-typescript [Motley's](https://www.motley.fi/) TypeScript styleguide, using `eslint` and `prettier` with zero configuration. Based on `eslint-config-airbnb`. Supports the following features out of the box: - Prettier autoformatting on precommit stage via `husky`. - ES2015+ - Imports and exports - React - a11y - Full TypeScript support - `__DEV__` is a valid underscore-dangle value - `js` is a valid filename for `JSX` files (in JavaScript) ## Installation Run the following command: ```bash npx install-peerdeps --dev eslint-config-motley-typescript ``` If you get prompted that do you want to use Yarn and nothing gets installed after that try following command: ```bash npx install-peerdeps --dev eslint-config-motley-typescript --yarn ``` If all went well, you should see the following in your `.eslintrc.js`: ```js module.exports = { extends: 'motley-typescript', }; ``` ### Post-install: You should have the following set in `.prettierrc`; ```json { "singleQuote": true, "trailingComma": "all" } ``` and the following in your `package.json`: ```json { "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.{js,json,graphql,md,css,scss,less,ts,tsx}": ["prettier --write", "git add"] } } ``` ## Running tests Tests use `verdaccio` as a local repository and `jest` for testing. The tests itself can be found under `__tests__` and fixtures under `__fixtures__`. For local testing, you'll need Docker. Run the tests with ```bash npm run test:local ``` The tests are also run in CI with GitHub Actions, as defined in `.github/workflows`. ## Acknowledgements We would like to thank the creators, maintainers and contributors of following libraries for making this possible: - [`eslint-config-airbnb`](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb) for being the base and providing a handy way to install `peerDependencies` from a package. - [`prettier`](https://github.com/prettier/prettier) for being :dark_sunglasses: and providing [a way to disable some eslint configurations from above](https://github.com/prettier/eslint-config-prettier) - [`husky`](https://github.com/typicode/husky) and [`lint-staged`](https://github.com/okonet/lint-staged) for making precommit hooks easy