Skip to content

Commit c9df9fa

Browse files
committed
fix: improve type-safety by the config files
1 parent 732a929 commit c9df9fa

19 files changed

+73
-53
lines changed

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"cSpell.words": ["globify"],
2+
"cSpell.words": ["Globified", "globify"],
33
"explorer.fileNesting.patterns": {
44
"index.js": "*.js"
55
}

src/astro.cts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
export const astroConfig = {
1+
import { Linter } from "eslint"
2+
3+
export const astroConfig: Linter.ConfigOverride<Linter.RulesRecord> = {
24
// astro files
35
files: ["*.astro"],
46
parser: "astro-eslint-parser",

src/coffeescript.cts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { pluginNodeRules } from "./plugin-node-rules.cjs"
22
import { pluginImportRulesExtra } from "./plugin-import-rules.cjs"
3+
import { Linter } from "eslint"
34

4-
export const coffeeConfig = {
5+
export const coffeeConfig: Linter.ConfigOverride<Linter.RulesRecord> = {
56
// CoffeeScript files
67
files: ["**/*.coffee"],
78
parser: "eslint-plugin-coffee",

src/cson.cts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import { Linter } from "eslint"
12
import { coffeeConfig } from "./coffeescript.cjs"
23

3-
export const csonConfig = {
4+
export const csonConfig: Linter.ConfigOverride<Linter.RulesRecord> = {
45
...coffeeConfig,
56
files: ["**/*.cson"],
67
rules: {

src/html.cts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
export const htmlConfig = {
1+
import { Linter } from "eslint"
2+
3+
export const htmlConfig: Linter.ConfigOverride<Linter.RulesRecord> = {
24
files: [
35
"**/*.erb",
46
"**/*.handlebars",

src/index-react.cts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1+
import { Linter } from "eslint"
12
import base from "./index.cjs"
23
import { tsConfig } from "./typescript.cjs"
34

4-
const nonStrictConfig = {
5+
const nonStrictConfig: Linter.Config = {
56
...base,
6-
plugins: ["react", ...base.plugins],
7-
extends: ["plugin:react/recommended", ...base.extends],
7+
plugins: ["react", ...(base.plugins ?? [])],
8+
extends: ["plugin:react/recommended", ...(base.extends ?? [])],
89
overrides: [
910
// TypeScript:
1011
{
1112
...tsConfig,
12-
plugins: ["react", ...tsConfig.plugins],
13-
extends: ["plugin:react/recommended", ...tsConfig.extends],
13+
plugins: ["react", ...(tsConfig.plugins ?? [])],
14+
extends: ["plugin:react/recommended", ...(tsConfig.extends ?? [])],
1415
rules: tsConfig.rules,
1516
},
1617
// The rest is the same
17-
...base.overrides.slice(1),
18+
...(base.overrides?.slice(1) ?? []),
1819
],
1920
settings: {
2021
...base.settings,

src/index-solid.cts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
1+
import { Linter } from "eslint"
12
import base from "./index.cjs"
23
import { tsConfig } from "./typescript.cjs"
34

4-
const nonStrictConfig = {
5+
const nonStrictConfig: Linter.Config = {
56
...base,
6-
plugins: ["solid", ...base.plugins],
7-
extends: ["plugin:solid/recommended", ...base.extends],
7+
plugins: ["solid", ...(base.plugins ?? [])],
8+
extends: ["plugin:solid/recommended", ...(base.extends ?? [])],
89
overrides: [
910
// TypeScript:
1011
{
1112
...tsConfig,
12-
plugins: ["solid", ...tsConfig.plugins],
13-
extends: ["plugin:solid/typescript", ...tsConfig.extends],
13+
plugins: ["solid", ...(tsConfig.plugins ?? [])],
14+
extends: ["plugin:solid/typescript", ...(tsConfig.extends ?? [])],
1415
rules: tsConfig.rules,
1516
},
1617
// The rest is the same
17-
...base.overrides.slice(1),
18+
...(base.overrides?.slice(1) ?? []),
1819
],
1920
}
2021

src/index-strict-react.cts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import nonStrictConfig from "./index-react.cjs"
22

33
// remove only-warn from javascript
4-
if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") {
4+
if (
5+
nonStrictConfig.plugins !== undefined &&
6+
nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn"
7+
) {
58
nonStrictConfig.plugins.pop()
69
}
710

811
// remove only-warn from overrides
9-
nonStrictConfig.overrides.forEach((overrides) => {
10-
if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
12+
nonStrictConfig.overrides?.forEach((overrides) => {
13+
if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
1114
overrides.plugins.pop()
1215
}
1316
})

src/index-strict-solid.cts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import nonStrictConfig from "./index-solid.cjs"
22

33
// remove only-warn from javascript
4-
if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") {
4+
if (
5+
nonStrictConfig.plugins !== undefined &&
6+
nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn"
7+
) {
58
nonStrictConfig.plugins.pop()
69
}
710

811
// remove only-warn from overrides
9-
nonStrictConfig.overrides.forEach((overrides) => {
10-
if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
12+
nonStrictConfig.overrides?.forEach((overrides) => {
13+
if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
1114
overrides.plugins.pop()
1215
}
1316
})

src/index-strict.cts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
import nonStrictConfig from "./index.cjs"
22

33
// remove only-warn from javascript
4-
if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") {
4+
if (
5+
nonStrictConfig.plugins !== undefined &&
6+
nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn"
7+
) {
58
nonStrictConfig.plugins.pop()
69
}
710

811
// remove only-warn from overrides
9-
nonStrictConfig.overrides.forEach((overrides) => {
10-
if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
12+
nonStrictConfig.overrides?.forEach((overrides) => {
13+
if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") {
1114
overrides.plugins.pop()
1215
}
1316
})

0 commit comments

Comments
 (0)