Skip to content

Commit 97047f0

Browse files
feat: switch from tseslint.config to ESLint's defineConfig (#2286)
## PR Checklist - [x] Addresses an existing open issue: fixes #2272 - [x] That issue was marked as [`status: accepting prs`](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22) - [x] Steps in [CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CONTRIBUTING.md) were taken ## Overview Applies the swap in-place. 🎁
1 parent fd7a1f1 commit 97047f0

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

eslint.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ import packageJson from "eslint-plugin-package-json";
1919
import perfectionist from "eslint-plugin-perfectionist";
2020
import * as regexp from "eslint-plugin-regexp";
2121
import yml from "eslint-plugin-yml";
22+
import { defineConfig } from "eslint/config";
2223
import tseslint from "typescript-eslint";
2324

24-
export default tseslint.config(
25+
export default defineConfig(
2526
{
2627
ignores: ["**/*.snap", "coverage", "lib", "node_modules", "pnpm-lock.yaml"],
2728
},

src/blocks/blockESLint.test.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,10 @@ describe("blockESLint", () => {
114114
],
115115
"files": {
116116
"eslint.config.js": "import eslint from "@eslint/js";
117+
import { defineConfig } from "eslint/config";
117118
import tseslint from "typescript-eslint";
118119
119-
export default tseslint.config(
120+
export default defineConfig(
120121
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
121122
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
122123
eslint.configs.recommended,
@@ -268,9 +269,10 @@ describe("blockESLint", () => {
268269
],
269270
"files": {
270271
"eslint.config.js": "import eslint from "@eslint/js";
272+
import { defineConfig } from "eslint/config";
271273
import tseslint from "typescript-eslint";
272274
273-
export default tseslint.config(
275+
export default defineConfig(
274276
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
275277
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
276278
eslint.configs.recommended,
@@ -425,9 +427,10 @@ describe("blockESLint", () => {
425427
],
426428
"files": {
427429
"eslint.config.mjs": "import eslint from "@eslint/js";
430+
import { defineConfig } from "eslint/config";
428431
import tseslint from "typescript-eslint";
429432
430-
export default tseslint.config(
433+
export default defineConfig(
431434
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
432435
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
433436
eslint.configs.recommended,
@@ -604,9 +607,10 @@ describe("blockESLint", () => {
604607
import a from "eslint-plugin-markdown"
605608
import b from "eslint-plugin-regexp"
606609
import c from "eslint-plugin-unknown"
610+
import { defineConfig } from "eslint/config";
607611
import tseslint from "typescript-eslint";
608612
609-
export default tseslint.config(
613+
export default defineConfig(
610614
{ ignores: ["generated", "lib", "node_modules", "pnpm-lock.yaml"] },
611615
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
612616
eslint.configs.recommended,
@@ -740,9 +744,10 @@ describe("blockESLint", () => {
740744
],
741745
"files": {
742746
"eslint.config.js": "import eslint from "@eslint/js";
747+
import { defineConfig } from "eslint/config";
743748
import tseslint from "typescript-eslint";
744749
745-
export default tseslint.config(
750+
export default defineConfig(
746751
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
747752
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
748753
eslint.configs.recommended,
@@ -882,9 +887,10 @@ describe("blockESLint", () => {
882887
],
883888
"files": {
884889
"eslint.config.js": "import eslint from "@eslint/js";
890+
import { defineConfig } from "eslint/config";
885891
import tseslint from "typescript-eslint";
886892
887-
export default tseslint.config(
893+
export default defineConfig(
888894
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
889895
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
890896
eslint.configs.recommended,
@@ -1020,9 +1026,10 @@ describe("blockESLint", () => {
10201026
],
10211027
"files": {
10221028
"eslint.config.js": "import eslint from "@eslint/js";
1029+
import { defineConfig } from "eslint/config";
10231030
import tseslint from "typescript-eslint";
10241031
1025-
export default tseslint.config(
1032+
export default defineConfig(
10261033
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
10271034
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
10281035
eslint.configs.recommended,
@@ -1146,9 +1153,10 @@ describe("blockESLint", () => {
11461153
],
11471154
"files": {
11481155
"eslint.config.js": "import eslint from "@eslint/js";
1156+
import { defineConfig } from "eslint/config";
11491157
import tseslint from "typescript-eslint";
11501158
1151-
export default tseslint.config(
1159+
export default defineConfig(
11521160
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
11531161
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
11541162
eslint.configs.recommended,
@@ -1269,9 +1277,10 @@ describe("blockESLint", () => {
12691277
],
12701278
"files": {
12711279
"eslint.config.mjs": "import eslint from "@eslint/js";
1280+
import { defineConfig } from "eslint/config";
12721281
import tseslint from "typescript-eslint";
12731282
1274-
export default tseslint.config(
1283+
export default defineConfig(
12751284
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
12761285
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
12771286
eslint.configs.recommended,
@@ -1392,9 +1401,10 @@ describe("blockESLint", () => {
13921401
],
13931402
"files": {
13941403
"eslint.config.js": "import eslint from "@eslint/js";
1404+
import { defineConfig } from "eslint/config";
13951405
import tseslint from "typescript-eslint";
13961406
1397-
export default tseslint.config(
1407+
export default defineConfig(
13981408
{ ignores: ["lib", "node_modules", "pnpm-lock.yaml"] },
13991409
{ linterOptions: {"reportUnusedDisableDirectives":"error"} },
14001410
eslint.configs.recommended,

src/blocks/blockESLint.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export const blockESLint = base.createBlock({
6262

6363
const importLines = [
6464
'import eslint from "@eslint/js";',
65+
'import { defineConfig } from "eslint/config";',
6566
'import tseslint from "typescript-eslint";',
6667
...imports.map(
6768
(packageImport) =>
@@ -221,7 +222,7 @@ Each should be shown in VS Code, and can be run manually on the command-line:
221222
files: {
222223
[configFileName]: `${explanation}${importLines.join("\n")}
223224
224-
export default tseslint.config(
225+
export default defineConfig(
225226
{ ignores: [${ignoreLines.join(", ")}] },
226227
${printExtension({
227228
linterOptions: { reportUnusedDisableDirectives: "error" },

0 commit comments

Comments
 (0)