Skip to content

Commit 8f18045

Browse files
authored
fix: ensure posix-compliant newline at end of generated configs (#170)
* test: validate posix-compliant newline ending in generated config files * fix: ensure posix-compliant newline at end of generated configs
1 parent 95a07d6 commit 8f18045

File tree

58 files changed

+115
-57
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+115
-57
lines changed

lib/config-generator.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ export class ConfigGenerator {
286286
}
287287
this.result.configContent = `${importContent}
288288
${needCompatHelper ? helperContent : ""}
289-
export default defineConfig([\n${exportContent || " {}\n"}]);`; // defaults to `[{}]` to avoid empty config warning
289+
export default defineConfig([\n${exportContent || " {}\n"}]);\n`; // defaults to `[{}]` to avoid empty config warning
290290
}
291291

292292
/**

tests/__snapshots__/config@eslint-config-airbnb

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ const compat = new FlatCompat({baseDirectory: __dirname, recommendedConfig: js.c
1313

1414
export default defineConfig([
1515
compat.extends("airbnb"),
16-
]);",
16+
]);
17+
",
1718
"configFilename": "eslint.config.mjs",
1819
"devDependencies": [
1920
"eslint@^7.32.0 || ^8.2.0",

tests/__snapshots__/config@eslint-config-airbnb-base

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ const compat = new FlatCompat({baseDirectory: __dirname, recommendedConfig: js.c
1313

1414
export default defineConfig([
1515
compat.extends("airbnb-base"),
16-
]);",
16+
]);
17+
",
1718
"configFilename": "eslint.config.mjs",
1819
"devDependencies": [
1920
"eslint@^7.32.0 || ^8.2.0",

tests/__snapshots__/config@eslint-config-standard

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ const compat = new FlatCompat({baseDirectory: __dirname, recommendedConfig: js.c
1313

1414
export default defineConfig([
1515
compat.extends("standard"),
16-
]);",
16+
]);
17+
",
1718
"configFilename": "eslint.config.mjs",
1819
"devDependencies": [
1920
"eslint@^8.0.1",

tests/__snapshots__/config@eslint-config-standard-flat

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { defineConfig } from "@eslint/config-helpers";
55

66
export default defineConfig([
77
config,
8-
]);",
8+
]);
9+
",
910
"configFilename": "eslint.config.mjs",
1011
"devDependencies": [
1112
"eslint@^8.0.1",

tests/__snapshots__/config@eslint-config-standard-flat2

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { defineConfig } from "@eslint/config-helpers";
55

66
export default defineConfig([
77
config,
8-
]);",
8+
]);
9+
",
910
"configFilename": "eslint.config.mjs",
1011
"devDependencies": [
1112
"eslint@^8.0.1",

tests/__snapshots__/config@eslint-config-xo

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { defineConfig } from "eslint/config";
55

66
export default defineConfig([
77
config,
8-
]);",
8+
]);
9+
",
910
"configFilename": "eslint.config.mjs",
1011
"devDependencies": [
1112
"eslint@>=9.25.0",

tests/__snapshots__/empty

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
export default defineConfig([
66
{}
7-
]);",
7+
]);
8+
",
89
"configFilename": "eslint.config.js",
910
"devDependencies": [
1011
"eslint",

tests/__snapshots__/esm-css-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.css"], plugins: { css }, language: "css/css", extends: ["css/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-css-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.css"], plugins: { css }, language: "css/css" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-javascript-json-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export default defineConfig([
99
{ files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] },
1010
{ files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.node } },
1111
{ files: ["**/*.json"], plugins: { json }, language: "json/json", extends: ["json/recommended"] },
12-
]);",
12+
]);
13+
",
1314
"configFilename": "eslint.config.js",
1415
"devDependencies": [
1516
"eslint",

tests/__snapshots__/esm-json-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.json"], plugins: { json }, language: "json/json", extends: ["json/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-json-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.json"], plugins: { json }, language: "json/json" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-json5-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.json5"], plugins: { json }, language: "json/json5", extends: ["json/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-json5-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.json5"], plugins: { json }, language: "json/json5" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-jsonc-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.jsonc"], plugins: { json }, language: "json/jsonc", extends: ["json/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-jsonc-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.jsonc"], plugins: { json }, language: "json/jsonc" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-markdown-commonmark-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.md"], plugins: { markdown }, language: "markdown/commonmark", extends: ["markdown/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-markdown-commonmark-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.md"], plugins: { markdown }, language: "markdown/commonmark" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-markdown-gfm-problems

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.md"], plugins: { markdown }, language: "markdown/gfm", extends: ["markdown/recommended"] },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/esm-markdown-gfm-syntax

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ ignores: ["**/*.js", "**/*.cjs", "**/*.mjs"] },
88
{ files: ["**/*.md"], plugins: { markdown }, language: "markdown/gfm" },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

tests/__snapshots__/problems-commonjs-none-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export default defineConfig([
88
{ files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] },
99
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
1010
{ files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
11-
]);",
11+
]);
12+
",
1213
"configFilename": "eslint.config.js",
1314
"devDependencies": [
1415
"eslint",

tests/__snapshots__/problems-commonjs-none-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
1111
{ files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
tseslint.configs.recommended,
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-commonjs-react-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
1111
{ files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
pluginReact.configs.flat.recommended,
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-commonjs-react-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export default defineConfig([
1212
{ files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1313
tseslint.configs.recommended,
1414
pluginReact.configs.flat.recommended,
15-
]);",
15+
]);
16+
",
1617
"configFilename": "eslint.config.js",
1718
"devDependencies": [
1819
"eslint",

tests/__snapshots__/problems-commonjs-vue-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
1111
{ files: ["**/*.{js,mjs,cjs,vue}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
pluginVue.configs["flat/essential"],
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-commonjs-vue-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export default defineConfig([
1313
tseslint.configs.recommended,
1414
pluginVue.configs["flat/essential"],
1515
{ files: ["**/*.vue"], languageOptions: { parserOptions: { parser: tseslint.parser } } },
16-
]);",
16+
]);
17+
",
1718
"configFilename": "eslint.config.js",
1819
"devDependencies": [
1920
"eslint",

tests/__snapshots__/problems-esm-none-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import { defineConfig } from "eslint/config";
77
export default defineConfig([
88
{ files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] },
99
{ files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
10-
]);",
10+
]);
11+
",
1112
"configFilename": "eslint.config.js",
1213
"devDependencies": [
1314
"eslint",

tests/__snapshots__/problems-esm-none-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export default defineConfig([
99
{ files: ["**/*.{js,mjs,cjs,ts}"], plugins: { js }, extends: ["js/recommended"] },
1010
{ files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1111
tseslint.configs.recommended,
12-
]);",
12+
]);
13+
",
1314
"configFilename": "eslint.config.js",
1415
"devDependencies": [
1516
"eslint",

tests/__snapshots__/problems-esm-react-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export default defineConfig([
99
{ files: ["**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: ["js/recommended"] },
1010
{ files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1111
pluginReact.configs.flat.recommended,
12-
]);",
12+
]);
13+
",
1314
"configFilename": "eslint.config.js",
1415
"devDependencies": [
1516
"eslint",

tests/__snapshots__/problems-esm-react-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export default defineConfig([
1111
{ files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
tseslint.configs.recommended,
1313
pluginReact.configs.flat.recommended,
14-
]);",
14+
]);
15+
",
1516
"configFilename": "eslint.config.js",
1617
"devDependencies": [
1718
"eslint",

tests/__snapshots__/problems-esm-vue-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export default defineConfig([
99
{ files: ["**/*.{js,mjs,cjs,vue}"], plugins: { js }, extends: ["js/recommended"] },
1010
{ files: ["**/*.{js,mjs,cjs,vue}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1111
pluginVue.configs["flat/essential"],
12-
]);",
12+
]);
13+
",
1314
"configFilename": "eslint.config.js",
1415
"devDependencies": [
1516
"eslint",

tests/__snapshots__/problems-esm-vue-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export default defineConfig([
1212
tseslint.configs.recommended,
1313
pluginVue.configs["flat/essential"],
1414
{ files: ["**/*.vue"], languageOptions: { parserOptions: { parser: tseslint.parser } } },
15-
]);",
15+
]);
16+
",
1617
"configFilename": "eslint.config.js",
1718
"devDependencies": [
1819
"eslint",

tests/__snapshots__/problems-script-none-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export default defineConfig([
88
{ files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] },
99
{ files: ["**/*.js"], languageOptions: { sourceType: "script" } },
1010
{ files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
11-
]);",
11+
]);
12+
",
1213
"configFilename": "eslint.config.js",
1314
"devDependencies": [
1415
"eslint",

tests/__snapshots__/problems-script-none-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "script" } },
1111
{ files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
tseslint.configs.recommended,
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-script-react-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "script" } },
1111
{ files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
pluginReact.configs.flat.recommended,
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-script-react-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export default defineConfig([
1212
{ files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1313
tseslint.configs.recommended,
1414
pluginReact.configs.flat.recommended,
15-
]);",
15+
]);
16+
",
1617
"configFilename": "eslint.config.js",
1718
"devDependencies": [
1819
"eslint",

tests/__snapshots__/problems-script-vue-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default defineConfig([
1010
{ files: ["**/*.js"], languageOptions: { sourceType: "script" } },
1111
{ files: ["**/*.{js,mjs,cjs,vue}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
1212
pluginVue.configs["flat/essential"],
13-
]);",
13+
]);
14+
",
1415
"configFilename": "eslint.config.js",
1516
"devDependencies": [
1617
"eslint",

tests/__snapshots__/problems-script-vue-typescript

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export default defineConfig([
1313
tseslint.configs.recommended,
1414
pluginVue.configs["flat/essential"],
1515
{ files: ["**/*.vue"], languageOptions: { parserOptions: { parser: tseslint.parser } } },
16-
]);",
16+
]);
17+
",
1718
"configFilename": "eslint.config.js",
1819
"devDependencies": [
1920
"eslint",

tests/__snapshots__/syntax-commonjs-none-javascript

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { defineConfig } from "eslint/config";
66
export default defineConfig([
77
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
88
{ files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
9-
]);",
9+
]);
10+
",
1011
"configFilename": "eslint.config.js",
1112
"devDependencies": [
1213
"eslint",

0 commit comments

Comments
 (0)