Skip to content

Commit

Permalink
feat: compatibility flat configs type (#343)
Browse files Browse the repository at this point in the history
* test: add typing test for configs

* feat: compatibility flat configs type
  • Loading branch information
nix6839 committed Apr 6, 2024
1 parent 640ca5e commit 3dcd714
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 8 deletions.
5 changes: 5 additions & 0 deletions .changeset/brave-crabs-lick.md
@@ -0,0 +1,5 @@
---
"eslint-plugin-astro": minor
---

feat: compatibility flat configs type
7 changes: 5 additions & 2 deletions package.json
Expand Up @@ -15,7 +15,8 @@
"build:meta": "npm run ts -- ./tools/update-meta.ts",
"build:ts": "tsc --project ./tsconfig.build.json",
"clean": "rimraf lib .nyc_output dist coverage",
"test": "npm run mocha -- \"tests/src/**/*.ts\" --reporter dot --timeout 60000",
"test": "npm run mocha -- \"tests/src/**/*.ts\" --reporter dot --timeout 60000 && npm run test:type",
"test:type": "tsc",
"cover": "nyc --reporter=lcov npm run test",
"debug": "npm run mocha -- \"tests/src/**/*.ts\" --reporter dot --timeout 60000",
"lint": "eslint .",
Expand Down Expand Up @@ -105,6 +106,7 @@
"eslint-plugin-regexp": "^2.0.0",
"eslint-plugin-svelte": "^2.0.0",
"eslint-plugin-yml": "^1.0.0",
"expect-type": "^0.19.0",
"js-yaml": "^4.1.0",
"less": "^4.1.2",
"mocha": "^10.0.0",
Expand All @@ -120,7 +122,8 @@
"sass": "^1.52.2",
"stylus": "^0.63.0",
"svelte": "^4.0.0",
"typescript": "~5.4.0"
"typescript": "~5.4.0",
"typescript-eslint": "^7.5.0"
},
"publishConfig": {
"access": "public"
Expand Down
13 changes: 7 additions & 6 deletions src/index.ts
Expand Up @@ -10,14 +10,15 @@ import flatRecommended from "./configs/flat/recommended"
import flatAll from "./configs/flat/all"
import { buildA11yConfigs } from "./a11y"
import * as meta from "./meta"
import type { Linter } from "eslint"

const configs = {
base,
recommended,
all,
"flat/base": flatBase,
"flat/recommended": flatRecommended,
"flat/all": flatAll,
base: base as unknown as Linter.Config,
recommended: recommended as Linter.Config,
all: all as Linter.Config,
"flat/base": flatBase as Linter.FlatConfig[],
"flat/recommended": flatRecommended as Linter.FlatConfig[],
"flat/all": flatAll as Linter.FlatConfig[],
}

const a11yConfigs = buildA11yConfigs()
Expand Down
22 changes: 22 additions & 0 deletions tests/typing.test.ts
@@ -0,0 +1,22 @@
import type { Linter } from "eslint"
import { expectTypeOf } from "expect-type"
import tseslint from "typescript-eslint"
import plugin from "../src/index"

expectTypeOf([...plugin.configs["flat/base"]]).toMatchTypeOf<
Linter.FlatConfig[]
>()
expectTypeOf([...plugin.configs["flat/all"]]).toMatchTypeOf<
Linter.FlatConfig[]
>()
expectTypeOf([...plugin.configs["flat/recommended"]]).toMatchTypeOf<
Linter.FlatConfig[]
>()

tseslint.config(...plugin.configs["flat/base"])
tseslint.config(...plugin.configs["flat/all"])
tseslint.config(...plugin.configs["flat/recommended"])

tseslint.config({ extends: [...plugin.configs["flat/base"]] })
tseslint.config({ extends: [...plugin.configs["flat/all"]] })
tseslint.config({ extends: [...plugin.configs["flat/recommended"]] })
1 change: 1 addition & 0 deletions tsconfig.json
Expand Up @@ -31,6 +31,7 @@
"src/**/*",
"tests/src/**/*",
"tests/utils/**/*",
"tests/typing.test.ts",
"tools/**/*",
"docs-build/src/**/*.ts",
"docs-build/src/**/*.astro",
Expand Down

0 comments on commit 3dcd714

Please sign in to comment.