Skip to content

Commit 387c167

Browse files
feat: enable rule for order of imports and exports (#59)
1 parent ca57ab4 commit 387c167

File tree

34 files changed

+218
-52
lines changed

34 files changed

+218
-52
lines changed

configs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import path from "node:path";
33
import { globalIgnores } from "eslint/config";
44
import semver from "semver";
55
import configs from "./configs/index.js";
6-
import ignorePaths from "./ignore-paths.js";
76
import { typescriptExtensions } from "./configs/utils/extensions.js";
7+
import ignorePaths from "./ignore-paths.js";
88

99
const SKIP_TIME = 5000;
1010

configs/browser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import globals from "globals";
21
import importPlugin from "eslint-plugin-import";
2+
import globals from "globals";
33

44
const recommendedBrowserConfig = {
55
languageOptions: {

configs/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import javascriptConfig from "./javascript.js";
33
import jestConfig from "./jest.js";
44
import markdownConfig from "./markdown.js";
55
import nodeConfig from "./node.js";
6+
import packageJSON from "./package-json.js";
67
import stylisticConfig from "./stylistic.js";
78
import typescriptConfig from "./typescript.js";
8-
import packageJSON from "./package-json.js";
99

1010
const configs = {
1111
...browserConfig,

configs/javascript.js

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import globals from "globals";
21
import javascriptConfig from "@eslint/js";
3-
import unicornPlugin from "eslint-plugin-unicorn";
42
import importPlugin from "eslint-plugin-import";
3+
import unicornPlugin from "eslint-plugin-unicorn";
4+
import globals from "globals";
55
import { allExtensions } from "./utils/extensions.js";
66

77
const possibleProblems = {
@@ -1141,21 +1141,20 @@ const importRules = {
11411141
// No need
11421142
// "import/no-unassigned-import": "off",
11431143

1144-
// No need
1145-
// TODO consider this in the future
1146-
// "import/order": [
1147-
// "warn",
1148-
// {
1149-
// groups: [
1150-
// "builtin",
1151-
// "external",
1152-
// "internal",
1153-
// "parent",
1154-
// "sibling",
1155-
// "index",
1156-
// ]
1157-
// },
1158-
// ],
1144+
"import/order": [
1145+
"error",
1146+
{
1147+
named: {
1148+
enabled: true,
1149+
import: true,
1150+
export: true,
1151+
require: true,
1152+
cjsExports: true,
1153+
types: "mixed",
1154+
},
1155+
alphabetize: { order: "asc" },
1156+
},
1157+
],
11591158

11601159
// No need
11611160
// "import/prefer-default-export": "off",

configs/node.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import globals from "globals";
21
import importPlugin from "eslint-plugin-import";
2+
import globals from "globals";
33

44
const commonRules = {
55
// No need

configs/stylistic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import stylisticPlugin from "@stylistic/eslint-plugin";
12
import prettierPlugin from "eslint-plugin-prettier";
23
import prettierConfig from "eslint-plugin-prettier/recommended";
3-
import stylisticPlugin from "@stylistic/eslint-plugin";
44

55
const recommendedConfig = {
66
...prettierConfig,

configs/utils/extensions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ const javascriptExtensions = [".js", ".cjs", ".mjs", ".jsx"];
22
const typescriptExtensions = [".ts", ".cts", ".mts", ".tsx"];
33
const allExtensions = [...javascriptExtensions, ...typescriptExtensions];
44

5-
export { javascriptExtensions, typescriptExtensions, allExtensions };
5+
export { allExtensions, javascriptExtensions, typescriptExtensions };

eslint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineConfig } from "eslint/config";
2-
import config from "../eslint-config-webpack/index.js";
32
import configs from "../eslint-config-webpack/configs.js";
3+
import config from "../eslint-config-webpack/index.js";
44

55
export default defineConfig([
66
{

plugins/package-json/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ const plugin = {
4343
rules,
4444
};
4545

46-
export { rules, configs };
46+
export { configs, rules };
4747

4848
export default plugin;

validation/code.cjs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
"use strict";
22

3-
const code = require("./module.cjs");
4-
// eslint-disable-next-line no-unused-vars, import/extensions
5-
const myOtherCode = require("./module.js");
63
const otherSum = require("./module");
7-
8-
// eslint-disable-next-line import/no-unresolved
9-
require("./unknown.unknown");
10-
11-
require("./style.css");
4+
const code = require("./module.cjs");
125

136
const { aaa } = require("./module.cjs");
147

@@ -18,6 +11,14 @@ const { bbb } = require("./module.cjs");
1811

1912
otherSum(bbb, 2);
2013

14+
// eslint-disable-next-line no-unused-vars, import/extensions
15+
const myOtherCode = require("./module.js");
16+
17+
// eslint-disable-next-line import/no-unresolved
18+
require("./unknown.unknown");
19+
20+
require("./style.css");
21+
2122
code();
2223
otherSum(1, 2);
2324

0 commit comments

Comments
 (0)