Skip to content

Commit 494fd38

Browse files
feat: new browsers configurations (#86)
1 parent c600bab commit 494fd38

File tree

7 files changed

+90
-14
lines changed

7 files changed

+90
-14
lines changed

configs.js

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,6 @@ const typescriptConfig = getTypescriptConfig();
288288
const reactConfig = getReactConfig();
289289
const jestConfig = getJestConfig();
290290

291-
// TODO remove old alises (not started with `node-`) in the next major release
292-
293291
const recommended = [
294292
globalIgnores(ignorePaths),
295293
isModule
@@ -305,7 +303,9 @@ const recommended = [
305303
configs["package-json/recommended"],
306304
];
307305

306+
// TODO remove me in the next major release
308307
configs.recommended = recommended;
308+
309309
configs["node-recommended"] = recommended;
310310

311311
const nodeRecommendedModule = [
@@ -321,7 +321,9 @@ const nodeRecommendedModule = [
321321
configs["package-json/recommended"],
322322
];
323323

324+
// TODO remove me in the next major release
324325
configs["recommended-module"] = nodeRecommendedModule;
326+
325327
configs["node-recommended-module"] = nodeRecommendedModule;
326328

327329
const nodeRecommendedCommonJS = [
@@ -337,7 +339,9 @@ const nodeRecommendedCommonJS = [
337339
configs["package-json/recommended"],
338340
];
339341

342+
// TODO remove me in the next major release
340343
configs["recommended-commonjs"] = nodeRecommendedCommonJS;
344+
341345
configs["node-recommended-commonjs"] = nodeRecommendedCommonJS;
342346

343347
const nodeRecommendedDirty = [
@@ -351,8 +355,9 @@ const nodeRecommendedDirty = [
351355
configs["stylistic/recommended"],
352356
configs["package-json/recommended"],
353357
];
354-
358+
// TODO remove me in the next major release
355359
configs["recommended-dirty"] = nodeRecommendedDirty;
360+
356361
configs["node-recommended-dirty"] = nodeRecommendedDirty;
357362

358363
const browserRecommended = [
@@ -369,9 +374,9 @@ const browserRecommended = [
369374

370375
configs["browser-recommended"] = browserRecommended;
371376

372-
const browserOutdatedRecommended = [
377+
const browserOutdatedRecommendedModule = [
373378
globalIgnores(ignorePaths),
374-
configs["browser/recommended-outdated"],
379+
configs["browser/recommended-outdated-module"],
375380
{
376381
...configs["javascript/es5"],
377382
languageOptions: {
@@ -386,7 +391,26 @@ const browserOutdatedRecommended = [
386391
configs["package-json/recommended"],
387392
];
388393

389-
configs["browser-outdated-recommended"] = browserOutdatedRecommended;
394+
// TODO remove in the next major release
395+
configs["browser-outdated-recommended"] = browserOutdatedRecommendedModule;
396+
397+
configs["browser-outdated-recommended-module"] =
398+
browserOutdatedRecommendedModule;
399+
400+
const browserOutdatedRecommendedScript = [
401+
globalIgnores(ignorePaths),
402+
configs["browser/recommended-outdated-script"],
403+
configs["javascript/es5"],
404+
typescriptJSDocConfig,
405+
typescriptConfig,
406+
jestConfig,
407+
configs["markdown/recommended"],
408+
configs["stylistic/recommended"],
409+
configs["package-json/recommended"],
410+
];
411+
412+
configs["browser-outdated-recommended-script"] =
413+
browserOutdatedRecommendedScript;
390414

391415
const universalRecommended = [
392416
globalIgnores(ignorePaths),

configs/browser.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,40 @@ import importPlugin from "eslint-plugin-import";
22
import unicornPlugin from "eslint-plugin-unicorn";
33
import globals from "globals";
44

5-
const recommendedBrowserOutdatedConfig = {
5+
const recommendedBrowserOutdatedScriptConfig = {
6+
name: "browser/recommended-outdated-script",
67
languageOptions: {
8+
sourceType: "script",
9+
globals: {
10+
...globals.browser,
11+
},
12+
},
13+
};
14+
15+
const recommendedBrowserOutdatedCommonjsConfig = {
16+
name: "browser/recommended-outdated-commonjs",
17+
languageOptions: {
18+
sourceType: "commonjs",
19+
globals: {
20+
...globals.browser,
21+
},
22+
},
23+
};
24+
25+
const recommendedBrowserOutdatedModuleConfig = {
26+
name: "browser/recommended-outdated-module",
27+
languageOptions: {
28+
sourceType: "module",
729
globals: {
830
...globals.browser,
931
},
1032
},
1133
};
1234

1335
const recommendedBrowserConfig = {
36+
name: "browser/recommended",
1437
languageOptions: {
38+
sourceType: "module",
1539
globals: {
1640
...globals.browser,
1741
},
@@ -45,5 +69,11 @@ const recommendedBrowserConfig = {
4569

4670
export default {
4771
"browser/recommended": recommendedBrowserConfig,
48-
"browser/recommended-outdated": recommendedBrowserOutdatedConfig,
72+
// TODO remove me in the next major release
73+
"browser/recommended-outdated": recommendedBrowserOutdatedModuleConfig,
74+
// Useful when you need to generate outdated es5 code using babel/swc/etc
75+
"browser/recommended-outdated-script": recommendedBrowserOutdatedScriptConfig,
76+
"browser/recommended-outdated-commonjs":
77+
recommendedBrowserOutdatedCommonjsConfig,
78+
"browser/recommended-outdated-module": recommendedBrowserOutdatedModuleConfig,
4979
};

configs/javascript.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ const suggestions = {
645645
// No need
646646
// "sort-vars": "off",
647647

648-
strict: ["error", "safe"],
648+
strict: ["error", "global"],
649649

650650
"symbol-description": "error",
651651

configs/markdown.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ async function getMarkdownRecommendedConfig() {
2525
files: ["**/*.md/*.js", "**/*.md/*.ts"],
2626
languageOptions: {
2727
sourceType: "module",
28+
ecmaVersion: "latest",
2829
parserOptions: {
2930
ecmaFeatures: {
3031
globalReturn: true,

eslint.config.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export default defineConfig([
99
"./validation/module-package/**/*",
1010
"./validation/dirty-package/**/*",
1111
"./validation/browser/**/*",
12+
"./validation/browser-es5/**/*",
1213
"./validation/browser-outdated/**/*",
1314
"./validation/universal/**/*",
1415
],
@@ -17,21 +18,21 @@ export default defineConfig([
1718
// For test purposes
1819
{
1920
files: ["./validation/commonjs-package/**/*"],
20-
extends: [configs["recommended-commonjs"]],
21+
extends: [configs["node-recommended-commonjs"]],
2122
rules: {
2223
"n/no-unpublished-require": "off",
2324
},
2425
},
2526
{
2627
files: ["./validation/module-package/**/*"],
27-
extends: [configs["recommended-module"]],
28+
extends: [configs["node-recommended-module"]],
2829
rules: {
2930
"n/no-unpublished-require": "off",
3031
},
3132
},
3233
{
3334
files: ["./validation/dirty-package/**/*"],
34-
extends: [configs["recommended-dirty"]],
35+
extends: [configs["node-recommended-dirty"]],
3536
rules: {
3637
"n/no-unpublished-require": "off",
3738
},
@@ -40,6 +41,13 @@ export default defineConfig([
4041
files: ["./validation/browser/**/*"],
4142
extends: [configs["browser-recommended"]],
4243
},
44+
{
45+
files: ["./validation/browser-es5/**/*"],
46+
extends: [configs["browser-outdated-recommended-script"]],
47+
rules: {
48+
"n/no-unpublished-require": "off",
49+
},
50+
},
4351
{
4452
files: ["./validation/browser-outdated/**/*"],
4553
extends: [configs["browser-outdated-recommended"]],
@@ -57,9 +65,8 @@ export default defineConfig([
5765
"n/hashbang": "off",
5866
},
5967
},
60-
// For test purposes
6168
{
6269
files: ["./validation/webpack/**/*"],
63-
extends: [configs["recommended-commonjs"], configs["webpack/special"]],
70+
extends: [configs["node-recommended-commonjs"], configs["webpack/special"]],
6471
},
6572
]);

validation/browser-es5/code.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"use strict";
2+
3+
/* eslint-disable no-unused-vars */
4+
5+
// eslint-disable-next-line no-undef
6+
var eslint = require("eslint");
7+
8+
var a = 1;
9+
var b = "test".indexOf("e") > 0;

validation/browser-es5/markdown.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
```js
2+
import myMod from "my-mod";
3+
4+
console.log(myMod);
5+
```

0 commit comments

Comments
 (0)