Skip to content

Commit

Permalink
feat: eslint 9 migration
Browse files Browse the repository at this point in the history
BREAKING CHANGE: eslint 9 is now require
BREAKING CHANGE: typescript >= v4.7 is now required (when using typescript)
BREAKING CHANGE: node >= 18.18 is now required
  • Loading branch information
RebeccaStevens committed Aug 5, 2024
1 parent 679d1c5 commit 9480713
Show file tree
Hide file tree
Showing 161 changed files with 7,753 additions and 7,497 deletions.
124 changes: 0 additions & 124 deletions .eslintrc.json

This file was deleted.

8 changes: 0 additions & 8 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,6 @@
"rangeStrategy": "replace",
"semanticCommitScope": "dev-deps",
"semanticCommitType": "ci"
},
{
"allowedVersions": "<5",
"matchPackageNames": ["escape-string-regexp"]
},
{
"allowedVersions": "<9",
"matchPackageNames": ["eslint"]
}
],
"postUpdateOptions": ["pnpmDedupe"]
Expand Down
14 changes: 0 additions & 14 deletions .github/workflows/lint-prettier.yml

This file was deleted.

5 changes: 1 addition & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@ jobs:
uses: ./.github/workflows/lint-markdown.yml
lint_packages:
uses: ./.github/workflows/lint-packages.yml
lint_prettier:
uses: ./.github/workflows/lint-prettier.yml
lint_spelling:
uses: ./.github/workflows/lint-spelling.yml
test:
uses: ./.github/workflows/test-js.yml
type_check:
uses: ./.github/workflows/type-check.yml
uses: ./.github/workflows/typecheck.yml

release:
needs:
Expand All @@ -46,7 +44,6 @@ jobs:
- lint_markdown
- lint_spelling
- lint_packages
- lint_prettier
- test
- type_check
runs-on: ubuntu-latest
Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/semantic-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,5 @@ jobs:
subjectPattern: ^(?![A-Z]).+$ # Don't start with an uppercase character.
subjectPatternError: |
The subject "{subject}" should not start with an uppercase character.
ignoreLabels: |
bot
ignore-semantic-pull-request
headerPattern: '^(\w*)(?:\(([\w$.\-*/ ]*)\))?!?: (.*)$'
headerPatternCorrespondence: type, scope, subject
5 changes: 2 additions & 3 deletions .github/workflows/test-js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@ jobs:
os:
- "ubuntu-latest"
node_version:
- "16"
- "18"
- "18.18"
- "20"
- "latest"
ts_version:
- "next"
- "latest"
- "4.3.5"
- "4.7.4"
# - "JS"
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.ts_version == 'next' }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ on:
workflow_call:

jobs:
type-check:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prepare
- run: pnpm run type-check
- run: pnpm run typecheck
11 changes: 5 additions & 6 deletions .lintstagedrc.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
"*.{json,yml}":
- prettier --ignore-unknown --write
- eslint --fix
- cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot

"*.ts":
- prettier --ignore-unknown --write
"*.?([cm])[jt]s?(x)":
- eslint --fix
- cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot
- tsc-files -p tsconfig.build.json --noEmit

"*.md":
- prettier --ignore-unknown --write
- markdownlint --config=.markdownlint.json --ignore-path=.markdownlintignore
- markdownlint-cli2 --fix
- eslint --fix
- cspell lint --no-progress --show-suggestions --show-context --no-must-find-files --dot

"pnpm-lock.yaml":
pnpm-lock.yaml:
- "pnpm dedupe && :"
6 changes: 6 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "node_modules/markdownlint-cli2/schema/markdownlint-cli2-config-schema.json",
"gitignore": true,
"globs": ["**/*.md"],
"ignores": ["node_modules", "coverage", "lib", "CHANGELOG.md"],
}
6 changes: 4 additions & 2 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{
"$schema": "node_modules/markdownlint-cli2/schema/markdownlint-config-schema.json",

"default": false,
"extends": "markdownlint/style/prettier",

Expand Down Expand Up @@ -62,9 +64,9 @@
// MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md013.md
"MD013": {
// Number of characters
"line_length": 160,
"line_length": 120,
// Number of characters for headings
"heading_line_length": 160,
"heading_line_length": 120,
// Number of characters for code blocks
"code_block_line_length": 120,
// Include code blocks
Expand Down
3 changes: 0 additions & 3 deletions .markdownlintignore

This file was deleted.

1 change: 0 additions & 1 deletion .prettierrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

plugins:
- prettier-plugin-packagejson
- prettier-plugin-multiline-arrays

trailingComma: "all"

Expand Down
34 changes: 3 additions & 31 deletions .releaserc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,39 +47,11 @@ plugins:
- - "semantic-release-replace-plugin"
- replacements:
- files:
- "./lib/**/*"
from: "\\$\\{__VERSION__\\}"
- "./lib/index.js"
from: "0\\.0\\.0\\-development"
to: "${nextRelease.version}"
results:
- file: "./lib/classic.cjs"
hasChanged: true
numMatches: 1
numReplacements: 1
- file: "./lib/classic.d.cts"
hasChanged: false
numMatches: 0
numReplacements: 0
- file: "./lib/classic.d.mts"
hasChanged: false
numMatches: 0
numReplacements: 0
- file: "./lib/classic.mjs"
hasChanged: true
numMatches: 1
numReplacements: 1
- file: "./lib/flat.cjs"
hasChanged: true
numMatches: 1
numReplacements: 1
- file: "./lib/flat.d.cts"
hasChanged: false
numMatches: 0
numReplacements: 0
- file: "./lib/flat.d.mts"
hasChanged: false
numMatches: 0
numReplacements: 0
- file: "./lib/flat.mjs"
- file: "./lib/index.js"
hasChanged: true
numMatches: 1
numReplacements: 1
Expand Down
24 changes: 16 additions & 8 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
{
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.fixAll.eslint": "explicit",
"source.formatDocument": "explicit",
"source.organizeImports": "explicit",
"source.sortImports": "explicit"
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"editor.formatOnSave": false,
"editor.rulers": [80],
"eslint.probe": [
"html",
"javascript",
"javascriptreact",
"json",
"jsonc",
"markdown",
"toml",
"typescript",
"typescriptreact",
"vue",
"yaml"
],
"files.associations": {
".markdownlint.json": "jsonc",
".markdownlintignore": "ignore"
Expand All @@ -29,6 +37,6 @@
},
"typescript.tsdk": "./node_modules/typescript/lib",
"[markdown]": {
"editor.rulers": [160]
"editor.rulers": [120]
}
}
11 changes: 8 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,15 @@ For new features file an issue. For bugs, file an issue and optionally file a PR

To execute the tests run `pnpm test`.

To learn about ESLint plugin development see the [relevant section](https://eslint.org/docs/developer-guide/working-with-plugins) of the ESLint docs. You can also checkout the [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) repo which has some more information specific to TypeScript.
To learn about ESLint plugin development see the
[relevant section](https://eslint.org/docs/developer-guide/working-with-plugins) of the ESLint docs.
You can also checkout the [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) repo which has
some more information specific to TypeScript.

In order to know which AST nodes are created for a snippet of TypeScript code you can use [AST explorer](https://astexplorer.net/) with options JavaScript and @typescript-eslint/parser.
In order to know which AST nodes are created for a snippet of TypeScript code you can use
[AST explorer](https://astexplorer.net/) with options JavaScript and @typescript-eslint/parser.

### How to publish

Publishing is handled by [semantic release](https://github.com/semantic-release/semantic-release#readme) - there shouldn't be any need to publish manually.
Publishing is handled by [semantic release](https://github.com/semantic-release/semantic-release#readme) -
there shouldn't be any need to publish manually.
Loading

0 comments on commit 9480713

Please sign in to comment.