Skip to content

Commit

Permalink
chore: run Prettier on codebase
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelDeBoey committed Sep 22, 2022
1 parent 8d2f925 commit 67cf6db
Show file tree
Hide file tree
Showing 16 changed files with 162 additions and 159 deletions.
4 changes: 2 additions & 2 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
root: true
extends:
- plugin:@mysticatea/es2015
- plugin:@mysticatea/+eslint-plugin
- plugin:@mysticatea/es2015
- plugin:@mysticatea/+eslint-plugin
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
github:
- mysticatea
- mysticatea
84 changes: 42 additions & 42 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: 0 0 * * 0
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: 0 0 * * 0

jobs:
test:
name: Test
strategy:
matrix:
os: [ubuntu-latest]
eslint: [6]
node: [12.22.0, 12, 14.17.0, 14, 16, 18]
include:
# On other platforms
- os: windows-latest
node: 18
- os: macos-latest
node: 18
# On the minimum supported ESLint/Node.js version
- eslint: 6.6.0
node: 12.22.0
test:
name: Test
strategy:
matrix:
os: [ubuntu-latest]
eslint: [6]
node: [12.22.0, 12, 14.17.0, 14, 16, 18]
include:
# On other platforms
- os: windows-latest
node: 18
- os: macos-latest
node: 18
# On the minimum supported ESLint/Node.js version
- eslint: 6.6.0
node: 12.22.0

runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Node.js ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install Packages
run: npm install
env:
CI: true
- name: Install ESLint@${{ matrix.eslint }}
run: npm install eslint@${{ matrix.eslint }}
- name: Test
run: npm test
- name: Send Coverage
run: npm run -s codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Node.js ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Install Packages
run: npm install
env:
CI: true
- name: Install ESLint@${{ matrix.eslint }}
run: npm install eslint@${{ matrix.eslint }}
- name: Test
run: npm test
- name: Send Coverage
run: npm run -s codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
8 changes: 4 additions & 4 deletions .nycrc.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include:
- lib
- lib
exclude:
- lib/processors/vue.js
- lib/processors/vue.js
reporter:
- text-summary
- lcov
- text-summary
- lcov
5 changes: 5 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
tabWidth: 4,
semi: false,
trailingComma: "es5",
}
98 changes: 46 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,40 +16,40 @@ npm install --save-dev eslint @mysticatea/eslint-plugin

### Requirements

- Node.js `^12.22.0 || ^14.17.0 || >=16.0.0` or newer versions.
- ESLint `^6.6.0` or newer versions.
- Node.js `^12.22.0 || ^14.17.0 || >=16.0.0` or newer versions.
- ESLint `^6.6.0` or newer versions.

## 📖 Usage

Write in your ESLint configurations: http://eslint.org/docs/user-guide/configuring#using-the-configuration-from-a-plugin

### Configs

- `plugin:@mysticatea/es2020` ... Basic configuration for ES2020.
- `plugin:@mysticatea/es2019` ... Basic configuration for ES2019.
- `plugin:@mysticatea/es2018` ... Basic configuration for ES2018.
- `plugin:@mysticatea/es2017` ... Basic configuration for ES2017.
- `plugin:@mysticatea/es2016` ... Basic configuration for ES2016.
- `plugin:@mysticatea/es2015` ... Basic configuration for ES2015.
- `plugin:@mysticatea/es5` ... Basic configuration for ES5.
- `plugin:@mysticatea/+modules` ... Additional configuration for ES modules.
- `plugin:@mysticatea/+browser` ... Additional configuration for browser environment.
- `plugin:@mysticatea/+node` ... Additional configuration for Node.js environment.
- `plugin:@mysticatea/+eslint-plugin` ... Additional configuration for ESLint plugins. This includes `plugin:mysticatea/+node` setting.
- `plugin:@mysticatea/es2020` ... Basic configuration for ES2020.
- `plugin:@mysticatea/es2019` ... Basic configuration for ES2019.
- `plugin:@mysticatea/es2018` ... Basic configuration for ES2018.
- `plugin:@mysticatea/es2017` ... Basic configuration for ES2017.
- `plugin:@mysticatea/es2016` ... Basic configuration for ES2016.
- `plugin:@mysticatea/es2015` ... Basic configuration for ES2015.
- `plugin:@mysticatea/es5` ... Basic configuration for ES5.
- `plugin:@mysticatea/+modules` ... Additional configuration for ES modules.
- `plugin:@mysticatea/+browser` ... Additional configuration for browser environment.
- `plugin:@mysticatea/+node` ... Additional configuration for Node.js environment.
- `plugin:@mysticatea/+eslint-plugin` ... Additional configuration for ESLint plugins. This includes `plugin:mysticatea/+node` setting.

#### Details

The main configurations `plugin:@mysticatea/es*` does:

- detect bug-like code by ESLint rules.
- enforce whitespace style by Prettier.
- handle the `.ts` files as TypeScript then check by `typescript-eslint-parser` and `eslint-plugin-typescript`.
- handle the `.vue` files as Vue.js SFC then check by `vue-eslint-parser` and `eslint-plugin-vue`.
- handle the files in `test`/`tests` directory as `mocha`'s test code.
- handle the files in `scripts` directory as Node.js environment.
- handle the `.eslintrc.js` file as a Node.js script.
- handle the `webpack.config.js` file as a Node.js script.
- handle the `rollup.config.js` file as an ES module.
- detect bug-like code by ESLint rules.
- enforce whitespace style by Prettier.
- handle the `.ts` files as TypeScript then check by `typescript-eslint-parser` and `eslint-plugin-typescript`.
- handle the `.vue` files as Vue.js SFC then check by `vue-eslint-parser` and `eslint-plugin-vue`.
- handle the files in `test`/`tests` directory as `mocha`'s test code.
- handle the files in `scripts` directory as Node.js environment.
- handle the `.eslintrc.js` file as a Node.js script.
- handle the `webpack.config.js` file as a Node.js script.
- handle the `rollup.config.js` file as an ES module.

You can use combination of a main configuration and some additional configurations.
For examples:
Expand All @@ -58,10 +58,7 @@ For examples:

```json
{
"extends": [
"plugin:@mysticatea/es2015",
"plugin:@mysticatea/+node"
]
"extends": ["plugin:@mysticatea/es2015", "plugin:@mysticatea/+node"]
}
```

Expand All @@ -71,10 +68,7 @@ For examples:

```json
{
"extends": [
"plugin:@mysticatea/es2015",
"plugin:@mysticatea/+browser"
]
"extends": ["plugin:@mysticatea/es2015", "plugin:@mysticatea/+browser"]
}
```

Expand Down Expand Up @@ -107,26 +101,26 @@ This plugin has some original rules and foreign rules.

#### Original rules

- [@mysticatea/arrow-parens](docs/rules/arrow-parens.md) enforces parens of argument lists (excludes too redundant parens) (fixable).
- [@mysticatea/block-scoped-var](docs/rules/block-scoped-var.md) handles variables which are declared by `var` declaration as block-scoped. It disallows redeclarations, uses from outside of the scope, shadowing.
- [@mysticatea/no-instanceof-array](docs/rules/no-instanceof-array.md) disallows 'instanceof' for Array (fixable).
- [@mysticatea/no-instanceof-wrapper](docs/rules/no-instanceof-wrapper.md) disallows 'instanceof' for wrapper objects (fixable).
- [@mysticatea/no-literal-call](docs/rules/no-literal-call.md) disallows a call of a literal.
- [@mysticatea/no-this-in-static](docs/rules/no-this-in-static.md) disallows `this`/`super` in static methods.
- [@mysticatea/no-use-ignored-vars](docs/rules/no-use-ignored-vars.md) disallows a use of ignored variables.
- [@mysticatea/no-useless-rest-spread](docs/rules/no-useless-rest-spread.md) disallows unnecessary rest/spread operators (fixable).
- [@mysticatea/prefer-for-of](docs/rules/prefer-for-of.md) requires `for-of` statements instead of `Array#forEach` or something like (fixable).
- [@mysticatea/arrow-parens](docs/rules/arrow-parens.md) enforces parens of argument lists (excludes too redundant parens) (fixable).
- [@mysticatea/block-scoped-var](docs/rules/block-scoped-var.md) handles variables which are declared by `var` declaration as block-scoped. It disallows redeclarations, uses from outside of the scope, shadowing.
- [@mysticatea/no-instanceof-array](docs/rules/no-instanceof-array.md) disallows 'instanceof' for Array (fixable).
- [@mysticatea/no-instanceof-wrapper](docs/rules/no-instanceof-wrapper.md) disallows 'instanceof' for wrapper objects (fixable).
- [@mysticatea/no-literal-call](docs/rules/no-literal-call.md) disallows a call of a literal.
- [@mysticatea/no-this-in-static](docs/rules/no-this-in-static.md) disallows `this`/`super` in static methods.
- [@mysticatea/no-use-ignored-vars](docs/rules/no-use-ignored-vars.md) disallows a use of ignored variables.
- [@mysticatea/no-useless-rest-spread](docs/rules/no-useless-rest-spread.md) disallows unnecessary rest/spread operators (fixable).
- [@mysticatea/prefer-for-of](docs/rules/prefer-for-of.md) requires `for-of` statements instead of `Array#forEach` or something like (fixable).

#### Foreign rules

- All `@mysticatea/eslint-comments/*` rules are imported from [eslint-plugin-eslint-comments](https://www.npmjs.com/package/eslint-plugin-eslint-comments).
- All `@mysticatea/eslint-plugin/*` rules are imported from [eslint-plugin-eslint-plugin](https://www.npmjs.com/package/eslint-plugin-eslint-plugin).
- All `@mysticatea/node/*` rules are imported from [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node).
- All `@mysticatea/ts/*` rules are imported from [eslint-plugin-typescript](https://www.npmjs.com/package/eslint-plugin-typescript).
- All `@mysticatea/vue/*` rules are imported from [eslint-plugin-vue](https://www.npmjs.com/package/eslint-plugin-vue).
- The `@mysticatea/prettier` rule is imported from [eslint-plugin-prettier](https://www.npmjs.com/package/eslint-plugin-prettier).
- All `@mysticatea/eslint-comments/*` rules are imported from [eslint-plugin-eslint-comments](https://www.npmjs.com/package/eslint-plugin-eslint-comments).
- All `@mysticatea/eslint-plugin/*` rules are imported from [eslint-plugin-eslint-plugin](https://www.npmjs.com/package/eslint-plugin-eslint-plugin).
- All `@mysticatea/node/*` rules are imported from [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node).
- All `@mysticatea/ts/*` rules are imported from [eslint-plugin-typescript](https://www.npmjs.com/package/eslint-plugin-typescript).
- All `@mysticatea/vue/*` rules are imported from [eslint-plugin-vue](https://www.npmjs.com/package/eslint-plugin-vue).
- The `@mysticatea/prettier` rule is imported from [eslint-plugin-prettier](https://www.npmjs.com/package/eslint-plugin-prettier).

> **Q:** Why don't you use those plugins directly?<br>
> **Q:** Why don't you use those plugins directly?
> **A:** The combination with shareable configs and plugins has some problems because shareable configs were not designed to be used with plugins. @nzakas illustrated a way to use plugins as shareable configs together with other plugins in the discussion [eslint/eslint#3458](https://github.com/eslint/eslint/issues/3458#issuecomment-257161846). This is the way.
## 🚥 Semantic Versioning Policy
Expand All @@ -135,7 +129,7 @@ This plugin follows [semantic versioning](http://semver.org/) and [ESLint's Sema

## 📰 Changelog

- [GitHub Releases](https://github.com/mysticatea/eslint-plugin/releases)
- [GitHub Releases](https://github.com/mysticatea/eslint-plugin/releases)

## ❤️ Contributing

Expand All @@ -145,8 +139,8 @@ Please use GitHub's Issues/PRs.

### Development Tools

- `npm test` runs tests and measures coverage.
- `npm run clean` removes the coverage result of `npm test` command.
- `npm run coverage` shows the coverage result of `npm test` command.
- `npm run update` updates auto-generated files.
- `npm run watch` runs tests and measures coverage when source code are changed.
- `npm test` runs tests and measures coverage.
- `npm run clean` removes the coverage result of `npm test` command.
- `npm run coverage` shows the coverage result of `npm test` command.
- `npm run update` updates auto-generated files.
- `npm run watch` runs tests and measures coverage when source code are changed.
30 changes: 18 additions & 12 deletions docs/rules/arrow-parens.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,45 @@ This rule ignores arrow functions that there is a open paren before itself.
### The following patterns are considered warnings:

```js
const twice = x => 2 * x;
const twice = (x) => 2 * x
```

```js
const obj = {
twich: x => 2 * x
};
twich: (x) => 2 * x,
}
```

```js
p.then(x => 2 * x, err => console.error(err));
p.then(
(x) => 2 * x,
(err) => console.error(err)
)
```

### The following patterns are not considered warnings:

```js
const twice = (x) => 2 * x;
const twice = (x => 2 * x);
const twice = (x) => 2 * x
const twice = (x) => 2 * x
```

```js
const obj = {
twich: (x) => 2 * x
};
twich: (x) => 2 * x,
}
const obj2 = {
twich: (x => 2 * x)
};
twich: (x) => 2 * x,
}
```

```js
xs.map(x => 2 * x);
xs.map((x) => 2 * x)
```

```js
p.then(x => 2 * x, (err) => console.error(err));
p.then(
(x) => 2 * x,
(err) => console.error(err)
)
```
Loading

0 comments on commit 67cf6db

Please sign in to comment.