@debbl/eslint-config 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -49,6 +49,7 @@ __export(src_exports, {
49
49
  GLOB_SRC_EXT: () => GLOB_SRC_EXT,
50
50
  GLOB_STYLE: () => GLOB_STYLE,
51
51
  GLOB_TESTS: () => GLOB_TESTS,
52
+ GLOB_TOML: () => GLOB_TOML,
52
53
  GLOB_TS: () => GLOB_TS,
53
54
  GLOB_TSX: () => GLOB_TSX,
54
55
  GLOB_VUE: () => GLOB_VUE,
@@ -70,6 +71,7 @@ __export(src_exports, {
70
71
  sortPackageJson: () => sortPackageJson,
71
72
  sortTsconfig: () => sortTsconfig,
72
73
  test: () => test,
74
+ toml: () => toml,
73
75
  typescript: () => typescript,
74
76
  unicorn: () => unicorn,
75
77
  vue: () => vue,
@@ -123,6 +125,7 @@ var GLOB_MDX = "**/*.mdx";
123
125
  var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
124
126
  var GLOB_VUE = "**/*.vue";
125
127
  var GLOB_YAML = "**/*.y?(a)ml";
128
+ var GLOB_TOML = "**/*.toml";
126
129
  var GLOB_HTML = "**/*.htm?(l)";
127
130
  var GLOB_TESTS = [
128
131
  `**/__tests__/**/*.${GLOB_SRC_EXT}`,
@@ -760,15 +763,11 @@ async function sortPackageJson() {
760
763
  },
761
764
  {
762
765
  order: { type: "asc" },
763
- pathPattern: "^(?:dev|peer|optional|bundled)?[Dd]ependencies$"
766
+ pathPattern: "^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"
764
767
  },
765
768
  {
766
769
  order: { type: "asc" },
767
- pathPattern: "^resolutions$"
768
- },
769
- {
770
- order: { type: "asc" },
771
- pathPattern: "^pnpm.overrides$"
770
+ pathPattern: "^(?:resolutions|overrides|pnpm.overrides)$"
772
771
  },
773
772
  {
774
773
  order: ["types", "import", "require", "default"],
@@ -1253,6 +1252,51 @@ async function yml() {
1253
1252
  ];
1254
1253
  }
1255
1254
 
1255
+ // src/configs/toml.ts
1256
+ async function toml() {
1257
+ const [pluginToml, parserToml] = await Promise.all([
1258
+ interopDefault(import("eslint-plugin-toml")),
1259
+ interopDefault(import("toml-eslint-parser"))
1260
+ ]);
1261
+ return [
1262
+ {
1263
+ name: "eslint:toml:setup",
1264
+ plugins: {
1265
+ toml: pluginToml
1266
+ }
1267
+ },
1268
+ {
1269
+ name: "eslint:toml:rules",
1270
+ files: [GLOB_TOML],
1271
+ languageOptions: {
1272
+ parser: parserToml
1273
+ },
1274
+ rules: {
1275
+ "style/spaced-comment": "off",
1276
+ "toml/comma-style": "error",
1277
+ "toml/keys-order": "error",
1278
+ "toml/no-space-dots": "error",
1279
+ "toml/no-unreadable-number-separator": "error",
1280
+ "toml/precision-of-fractional-seconds": "error",
1281
+ "toml/precision-of-integer": "error",
1282
+ "toml/tables-order": "error",
1283
+ "toml/vue-custom-block/no-parsing-error": "error",
1284
+ "toml/array-bracket-newline": "error",
1285
+ "toml/array-bracket-spacing": "error",
1286
+ "toml/array-element-newline": "error",
1287
+ "toml/indent": ["error", 2],
1288
+ "toml/inline-table-curly-spacing": "error",
1289
+ "toml/key-spacing": "error",
1290
+ "toml/padding-line-between-pairs": "error",
1291
+ "toml/padding-line-between-tables": "error",
1292
+ "toml/quoted-keys": "error",
1293
+ "toml/spaced-comment": "error",
1294
+ "toml/table-bracket-spacing": "error"
1295
+ }
1296
+ }
1297
+ ];
1298
+ }
1299
+
1256
1300
  // src/configs/test.ts
1257
1301
  async function test() {
1258
1302
  const [pluginVitest, pluginNoOnlyTests] = await Promise.all([
@@ -1347,9 +1391,9 @@ async function prettier(options) {
1347
1391
  parser: "less"
1348
1392
  },
1349
1393
  {
1350
- name: "eslint:prettier:toml",
1351
- files: ["**/*.toml"],
1352
- parser: "toml"
1394
+ name: "eslint:prettier:yaml",
1395
+ files: [GLOB_YAML],
1396
+ parser: "yaml"
1353
1397
  },
1354
1398
  {
1355
1399
  name: "eslint:prettier:graphql",
@@ -1366,8 +1410,9 @@ async function prettier(options) {
1366
1410
  "prettier/prettier": [
1367
1411
  "warn",
1368
1412
  {
1369
- ...options,
1370
- parser: rule.parser
1413
+ quoteProps: "consistent",
1414
+ parser: rule.parser,
1415
+ ...options
1371
1416
  }
1372
1417
  ]
1373
1418
  }
@@ -1381,6 +1426,7 @@ async function prettier(options) {
1381
1426
  },
1382
1427
  {
1383
1428
  name: "eslint:prettier:rules",
1429
+ ignores: [GLOB_TOML],
1384
1430
  rules: {
1385
1431
  ...configPrettier.rules,
1386
1432
  ...pluginPrettier.configs.recommended.rules,
@@ -1550,6 +1596,9 @@ function config(options = {}) {
1550
1596
  if (options.yml ?? true) {
1551
1597
  configs.push(yml());
1552
1598
  }
1599
+ if (options.toml ?? true) {
1600
+ configs.push(toml());
1601
+ }
1553
1602
  if (options.markdown ?? true) {
1554
1603
  configs.push(
1555
1604
  markdown({
@@ -1594,6 +1643,7 @@ var src_default = config;
1594
1643
  GLOB_SRC_EXT,
1595
1644
  GLOB_STYLE,
1596
1645
  GLOB_TESTS,
1646
+ GLOB_TOML,
1597
1647
  GLOB_TS,
1598
1648
  GLOB_TSX,
1599
1649
  GLOB_VUE,
@@ -1614,6 +1664,7 @@ var src_default = config;
1614
1664
  sortPackageJson,
1615
1665
  sortTsconfig,
1616
1666
  test,
1667
+ toml,
1617
1668
  typescript,
1618
1669
  unicorn,
1619
1670
  vue,
package/dist/index.d.cts CHANGED
@@ -91,6 +91,11 @@ interface OptionsConfig extends OptionsComponentExts {
91
91
  * @default true
92
92
  */
93
93
  yml?: boolean;
94
+ /**
95
+ * Enable TOML support.
96
+ * @default true
97
+ */
98
+ toml?: boolean;
94
99
  /**
95
100
  * Enable Markdown support.
96
101
  *
@@ -160,6 +165,8 @@ declare function vue(options?: OptionsHasTypeScript): Promise<ConfigItem[]>;
160
165
 
161
166
  declare function yml(): Promise<ConfigItem[]>;
162
167
 
168
+ declare function toml(): Promise<ConfigItem[]>;
169
+
163
170
  declare function test(): Promise<ConfigItem[]>;
164
171
 
165
172
  /**
@@ -198,9 +205,10 @@ declare const GLOB_MDX = "**/*.mdx";
198
205
  declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
199
206
  declare const GLOB_VUE = "**/*.vue";
200
207
  declare const GLOB_YAML = "**/*.y?(a)ml";
208
+ declare const GLOB_TOML = "**/*.toml";
201
209
  declare const GLOB_HTML = "**/*.htm?(l)";
202
210
  declare const GLOB_TESTS: string[];
203
211
  declare const GLOB_ALL_SRC: string[];
204
212
  declare const GLOB_EXCLUDE: string[];
205
213
 
206
- export { type Awaitable, type ConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierRequiredOptions, type ReactOptions, combine, comments, config, config as default, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, perfectionist, prettier, sortPackageJson, sortTsconfig, test, typescript, unicorn, vue, yml };
214
+ export { type Awaitable, type ConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierRequiredOptions, type ReactOptions, combine, comments, config, config as default, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
package/dist/index.d.ts CHANGED
@@ -91,6 +91,11 @@ interface OptionsConfig extends OptionsComponentExts {
91
91
  * @default true
92
92
  */
93
93
  yml?: boolean;
94
+ /**
95
+ * Enable TOML support.
96
+ * @default true
97
+ */
98
+ toml?: boolean;
94
99
  /**
95
100
  * Enable Markdown support.
96
101
  *
@@ -160,6 +165,8 @@ declare function vue(options?: OptionsHasTypeScript): Promise<ConfigItem[]>;
160
165
 
161
166
  declare function yml(): Promise<ConfigItem[]>;
162
167
 
168
+ declare function toml(): Promise<ConfigItem[]>;
169
+
163
170
  declare function test(): Promise<ConfigItem[]>;
164
171
 
165
172
  /**
@@ -198,9 +205,10 @@ declare const GLOB_MDX = "**/*.mdx";
198
205
  declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
199
206
  declare const GLOB_VUE = "**/*.vue";
200
207
  declare const GLOB_YAML = "**/*.y?(a)ml";
208
+ declare const GLOB_TOML = "**/*.toml";
201
209
  declare const GLOB_HTML = "**/*.htm?(l)";
202
210
  declare const GLOB_TESTS: string[];
203
211
  declare const GLOB_ALL_SRC: string[];
204
212
  declare const GLOB_EXCLUDE: string[];
205
213
 
206
- export { type Awaitable, type ConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierRequiredOptions, type ReactOptions, combine, comments, config, config as default, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, perfectionist, prettier, sortPackageJson, sortTsconfig, test, typescript, unicorn, vue, yml };
214
+ export { type Awaitable, type ConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierRequiredOptions, type ReactOptions, combine, comments, config, config as default, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
package/dist/index.js CHANGED
@@ -44,6 +44,7 @@ var GLOB_MDX = "**/*.mdx";
44
44
  var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
45
45
  var GLOB_VUE = "**/*.vue";
46
46
  var GLOB_YAML = "**/*.y?(a)ml";
47
+ var GLOB_TOML = "**/*.toml";
47
48
  var GLOB_HTML = "**/*.htm?(l)";
48
49
  var GLOB_TESTS = [
49
50
  `**/__tests__/**/*.${GLOB_SRC_EXT}`,
@@ -681,15 +682,11 @@ async function sortPackageJson() {
681
682
  },
682
683
  {
683
684
  order: { type: "asc" },
684
- pathPattern: "^(?:dev|peer|optional|bundled)?[Dd]ependencies$"
685
+ pathPattern: "^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"
685
686
  },
686
687
  {
687
688
  order: { type: "asc" },
688
- pathPattern: "^resolutions$"
689
- },
690
- {
691
- order: { type: "asc" },
692
- pathPattern: "^pnpm.overrides$"
689
+ pathPattern: "^(?:resolutions|overrides|pnpm.overrides)$"
693
690
  },
694
691
  {
695
692
  order: ["types", "import", "require", "default"],
@@ -1174,6 +1171,51 @@ async function yml() {
1174
1171
  ];
1175
1172
  }
1176
1173
 
1174
+ // src/configs/toml.ts
1175
+ async function toml() {
1176
+ const [pluginToml, parserToml] = await Promise.all([
1177
+ interopDefault(import("eslint-plugin-toml")),
1178
+ interopDefault(import("toml-eslint-parser"))
1179
+ ]);
1180
+ return [
1181
+ {
1182
+ name: "eslint:toml:setup",
1183
+ plugins: {
1184
+ toml: pluginToml
1185
+ }
1186
+ },
1187
+ {
1188
+ name: "eslint:toml:rules",
1189
+ files: [GLOB_TOML],
1190
+ languageOptions: {
1191
+ parser: parserToml
1192
+ },
1193
+ rules: {
1194
+ "style/spaced-comment": "off",
1195
+ "toml/comma-style": "error",
1196
+ "toml/keys-order": "error",
1197
+ "toml/no-space-dots": "error",
1198
+ "toml/no-unreadable-number-separator": "error",
1199
+ "toml/precision-of-fractional-seconds": "error",
1200
+ "toml/precision-of-integer": "error",
1201
+ "toml/tables-order": "error",
1202
+ "toml/vue-custom-block/no-parsing-error": "error",
1203
+ "toml/array-bracket-newline": "error",
1204
+ "toml/array-bracket-spacing": "error",
1205
+ "toml/array-element-newline": "error",
1206
+ "toml/indent": ["error", 2],
1207
+ "toml/inline-table-curly-spacing": "error",
1208
+ "toml/key-spacing": "error",
1209
+ "toml/padding-line-between-pairs": "error",
1210
+ "toml/padding-line-between-tables": "error",
1211
+ "toml/quoted-keys": "error",
1212
+ "toml/spaced-comment": "error",
1213
+ "toml/table-bracket-spacing": "error"
1214
+ }
1215
+ }
1216
+ ];
1217
+ }
1218
+
1177
1219
  // src/configs/test.ts
1178
1220
  async function test() {
1179
1221
  const [pluginVitest, pluginNoOnlyTests] = await Promise.all([
@@ -1287,8 +1329,9 @@ async function prettier(options) {
1287
1329
  "prettier/prettier": [
1288
1330
  "warn",
1289
1331
  {
1290
- ...options,
1291
- parser: rule.parser
1332
+ quoteProps: "consistent",
1333
+ parser: rule.parser,
1334
+ ...options
1292
1335
  }
1293
1336
  ]
1294
1337
  }
@@ -1302,6 +1345,7 @@ async function prettier(options) {
1302
1345
  },
1303
1346
  {
1304
1347
  name: "eslint:prettier:rules",
1348
+ ignores: [GLOB_TOML],
1305
1349
  rules: {
1306
1350
  ...configPrettier.rules,
1307
1351
  ...pluginPrettier.configs.recommended.rules,
@@ -1471,6 +1515,9 @@ function config(options = {}) {
1471
1515
  if (options.yml ?? true) {
1472
1516
  configs.push(yml());
1473
1517
  }
1518
+ if (options.toml ?? true) {
1519
+ configs.push(toml());
1520
+ }
1474
1521
  if (options.markdown ?? true) {
1475
1522
  configs.push(
1476
1523
  markdown({
@@ -1514,6 +1561,7 @@ export {
1514
1561
  GLOB_SRC_EXT,
1515
1562
  GLOB_STYLE,
1516
1563
  GLOB_TESTS,
1564
+ GLOB_TOML,
1517
1565
  GLOB_TS,
1518
1566
  GLOB_TSX,
1519
1567
  GLOB_VUE,
@@ -1535,6 +1583,7 @@ export {
1535
1583
  sortPackageJson,
1536
1584
  sortTsconfig,
1537
1585
  test,
1586
+ toml,
1538
1587
  typescript,
1539
1588
  unicorn,
1540
1589
  vue,
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@debbl/eslint-config",
3
3
  "type": "module",
4
- "version": "2.3.1",
5
- "packageManager": "pnpm@8.11.0",
4
+ "version": "2.4.0",
5
+ "packageManager": "pnpm@8.12.0",
6
6
  "description": "Brendan Dash's ESLint config",
7
7
  "author": "Debbl <me@aiwan.run> (https://github.com/Debbl/)",
8
8
  "license": "MIT",
@@ -27,42 +27,44 @@
27
27
  "eslint": ">=8.40.0"
28
28
  },
29
29
  "dependencies": {
30
- "@next/eslint-plugin-next": "^14.0.3",
31
- "@typescript-eslint/eslint-plugin": "^6.13.2",
32
- "@typescript-eslint/parser": "^6.13.2",
30
+ "@next/eslint-plugin-next": "^14.0.4",
31
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
32
+ "@typescript-eslint/parser": "^6.14.0",
33
33
  "eslint-config-prettier": "^9.1.0",
34
34
  "eslint-define-config": "^2.0.0",
35
- "eslint-mdx": "^2.2.0",
35
+ "eslint-mdx": "^3.0.0",
36
36
  "eslint-parser-plain": "^0.1.0",
37
37
  "eslint-plugin-eslint-comments": "^3.2.0",
38
38
  "eslint-plugin-i": "^2.29.0",
39
39
  "eslint-plugin-jsdoc": "^46.9.0",
40
40
  "eslint-plugin-jsonc": "^2.10.0",
41
41
  "eslint-plugin-markdown": "^3.0.1",
42
- "eslint-plugin-mdx": "^2.2.0",
43
- "eslint-plugin-n": "^16.3.1",
42
+ "eslint-plugin-mdx": "^3.0.0",
43
+ "eslint-plugin-n": "^16.4.0",
44
44
  "eslint-plugin-no-only-tests": "^3.1.0",
45
45
  "eslint-plugin-perfectionist": "^2.5.0",
46
46
  "eslint-plugin-prettier": "^5.0.1",
47
47
  "eslint-plugin-react": "^7.33.2",
48
48
  "eslint-plugin-react-hooks": "^4.6.0",
49
49
  "eslint-plugin-tailwindcss": "^3.13.0",
50
+ "eslint-plugin-toml": "^0.7.1",
50
51
  "eslint-plugin-unicorn": "^49.0.0",
51
52
  "eslint-plugin-unused-imports": "^3.0.0",
52
- "eslint-plugin-vitest": "^0.3.10",
53
+ "eslint-plugin-vitest": "^0.3.16",
53
54
  "eslint-plugin-vue": "^9.19.2",
54
55
  "eslint-plugin-yml": "^1.10.0",
55
- "globals": "^13.23.0",
56
+ "globals": "^13.24.0",
56
57
  "jsonc-eslint-parser": "^2.4.0",
57
- "prettier": "^3.1.0",
58
+ "prettier": "^3.1.1",
59
+ "toml-eslint-parser": "^0.9.3",
58
60
  "vue-eslint-parser": "^9.3.2",
59
61
  "yaml-eslint-parser": "^1.2.2"
60
62
  },
61
63
  "devDependencies": {
62
64
  "@types/eslint": "^8.44.8",
63
- "@types/node": "^20.10.3",
64
- "@types/react": "^18.2.42",
65
- "bumpp": "^9.2.0",
65
+ "@types/node": "^20.10.4",
66
+ "@types/react": "^18.2.43",
67
+ "bumpp": "^9.2.1",
66
68
  "eslint": "^8.55.0",
67
69
  "eslint-flat-config-viewer": "^0.1.3",
68
70
  "execa": "^8.0.1",
@@ -71,8 +73,8 @@
71
73
  "react": "^18.2.0",
72
74
  "sucrase": "^3.34.0",
73
75
  "tsup": "^8.0.1",
74
- "typescript": "^5.3.2",
75
- "vitest": "^1.0.1"
76
+ "typescript": "^5.3.3",
77
+ "vitest": "^1.0.4"
76
78
  },
77
79
  "scripts": {
78
80
  "build": "tsup src/index.ts --format esm,cjs --clean --dts",