# @windyroad/eslint-config

> Lint configuration for the Windy Road style

Latest version **4.0.0** (published 2024-10-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install @windyroad/eslint-config
pnpm add @windyroad/eslint-config
yarn add @windyroad/eslint-config
bun add @windyroad/eslint-config
```

## Health

**Score 35/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 4.0.0 |
| Published | 2024-10-29 |
| First published | 2023-12-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Author | Windy Road Technology |
| Maintainers | tompahoward |
| Keywords | eslint, eslintconfig, markdownlint, xo, config, styleguide |

## Links

- npm: https://www.npmjs.com/package/@windyroad/eslint-config
- Repository: https://github.com/windyroad/very-fetching
- Homepage: https://github.com/windyroad/very-fetching/blob/main/packages/eslint-config/README.md
- Issues: https://github.com/windyroad/very-fetching/issues
- npm.io page: https://npm.io/package/@windyroad/eslint-config

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@pandacss/eslint-plugin](https://npm.io/package/@pandacss/eslint-plugin.md) — 18.7K weekly downloads

## Recent versions

- 4.0.0 (latest) — 2024-10-29
- 3.1.1 — 2023-12-20
- 3.1.0 — 2023-12-19
- 3.0.1 — 2023-12-19
- 3.0.0 — 2023-12-19

## README

# @windyroad/eslint-config

This package provides a shareable configurations for:

- [ESLint](https://eslint.org/), which is a wrapper around [ESLint](https://eslint.org/), and
- [XO](https://github.com/xojs/xo), which is a wrapper around [ESLint](https://eslint.org/), and
- [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2)

It provides a consistent and opinionated set of rules for JavaScript and TypeScript projects.

## Installation

To use this configuration in your project, you can install it via npm:

```sh
npm install --save-dev @windyroad/eslint-config
```

## Usage

### XO

To use this configuration in your project, you can add it to your `package.json` file:

```json
{
  "xo": "@windyroad/eslint-config/xo-config.cjs"
}
```

Alternatively, you can create an `.xo-config.js` file in the root of your project and export the configuration:

```javascript
'use strict';
const config = require("@windyroad/eslint-config/xo-config.cjs")
module.exports = config
```

#### Extending

You can also extend the shared configuration by creating an `.xo-config.js` file in the root of
your project and export the configuration as follows:

```javascript
'use strict';
const config = require("@windyroad/eslint-config/xo-config.cjs")
module.exports = {
  ...config
  extends: ["@windyroad", 'some-other-shareable-configuration']
}
```

### ESLint

Add ESLint config to your `package.json`:

```json
 "eslintConfig": {
  "extends": [
   "@windyroad",
  ]
 }
```

Or to .eslintrc:

```json
{
 "extends": [
  "@windyroad",
 ]
}
```

### markdownlint-cli2

If you're using [markdownlint-cli2]((https://github.com/DavidAnson/markdownlint-cli2)), you can
also use the shared configuration provided by this package. To use it, create a
`.markdownlint-cli2.cjs` file in the root of your project and export the configuration:

```javascript
'use strict';
const config = require("@windyroad/eslint-config/markdownlint-cli2.cjs")
module.exports = config
```

## Configuration

This configuration extends the
[recommended TypeScript flavour error configuration](https://github.com/xojs/eslint-config-xo-typescript/blob/main/index.js)
from the [eslint-config-xo-typescript](https://github.com/xojs/eslint-config-xo-typescript)
package. It also includes the following plugins:

- [eslint-plugin-no-secrets](https://github.com/nickdeis/eslint-plugin-no-secrets)
- [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc)
- [eslint-plugin-jsonc](https://github.com/zigomir/eslint-plugin-jsonc)

The configuration also includes the following rules:

- `no-secrets/no-secrets`: Enforces the use of `detect-secrets` to prevent secrets from being committed to version control.
- `jsdoc/no-undefined-types`: Disables the requirement to define types for JSDoc comments.
- `jsdoc/require-param-type`: Disables the requirement to define types for JSDoc parameters.
- `jsdoc/require-returns-type`: Disables the requirement to define a return type for JSDoc comments.

## Contributing

Contributions are welcome! Please read the [contributing guidelines](../../CONTRIBUTING.md) for more information.

## License

`@windyroad/eslint-config` is lovingly licensed under the [MIT License](../../LICENSE). ❤️

---
_Source: https://npm.io/package/@windyroad/eslint-config · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
