refactor: automatically sort imports
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 7 Mar 2024 19:31:57 +0000 (20:31 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 7 Mar 2024 19:31:57 +0000 (20:31 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
15 files changed:
.eslintrc.cjs
benchmark-utils.mjs
busy-wait.mjs
deep-clone-object.mjs
deep-merge-object.mjs
empty-array.mjs
is-empty-object.mjs
max.mjs
min.mjs
package.json
pnpm-lock.yaml
quick-select.mjs
random.mjs
shallow-clone-object.mjs
uuid-generator.mjs

index 1a4b9abd5d3bd02182327743dacdda71ae94c8fe..d1ccd643c6212b5f7c349b5325f6d8a8ba2565ea 100644 (file)
@@ -8,10 +8,10 @@ module.exports = defineConfig({
     node: true
   },
   parserOptions: {
-    ecmaVersion: 2022,
-    sourceType: 'module'
+    sourceType: 'module',
+    ecmaVersion: 2022
   },
-  plugins: ['promise', 'jsdoc'],
+  plugins: ['simple-import-sort', 'promise', 'jsdoc'],
   extends: [
     'standard',
     'eslint:recommended',
@@ -19,5 +19,9 @@ module.exports = defineConfig({
     'plugin:jsdoc/recommended',
     'plugin:import/recommended',
     'plugin:promise/recommended'
-  ]
+  ],
+  rules: {
+    'simple-import-sort/imports': 'error',
+    'simple-import-sort/exports': 'error'
+  }
 })
index 1d486bf68172e2153a58a7a1599b0a19b601ac43..d0d5a62291527bc12387e18188991e83e307670a 100644 (file)
@@ -1,4 +1,4 @@
-import { randomBytes, getRandomValues, randomInt } from 'node:crypto'
+import { getRandomValues, randomBytes, randomInt } from 'node:crypto'
 
 /**
  * Generate a cryptographically secure random number in the [0,1[ range
index eeef8fed05b791d348218e6d5971dea0da6c64d7..e5aaaeaa91a30b8bd2989ed665035a6d8b3a6e1c 100644 (file)
@@ -1,4 +1,5 @@
 import Benchmark from 'benny'
+
 import { sleep } from './benchmark-utils.mjs'
 
 const timeout = 2000
index bd8b3e6326a1df4db1f5671a6d1db2d27f8f4140..989a04f907e3bf78b51a92d754d2909c2ff19af8 100644 (file)
@@ -1,8 +1,9 @@
 /* eslint-disable no-unused-vars */
 import Benchmark from 'benny'
-import _ from 'lodash'
-import clone from 'just-clone'
 import deepClone from 'deep-clone'
+import clone from 'just-clone'
+import _ from 'lodash'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
index fe1440f91b9e82123801ed33b2e491d65b5568fc..1fbf315a111c1f3ed838458d786ac3be818408b1 100644 (file)
@@ -1,8 +1,9 @@
 /* eslint-disable no-unused-vars */
 import Benchmark from 'benny'
-import _ from 'lodash'
-import merge from 'just-merge'
 import deepMerge from 'deepmerge'
+import merge from 'just-merge'
+import _ from 'lodash'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
index 3c46e35ddbfc664210da5fa370b0e3fd9faa595a..f9bd2147325d45c86b5e31f25c39a2b5c9dd5a29 100644 (file)
@@ -1,4 +1,5 @@
 import Benchmark from 'benny'
+
 import { generateRandomNumberArray } from './benchmark-utils.mjs'
 
 const size = 10000
index e9b42f7562800827898d3a17d4c1169e32069343..f110816aae6d83ad6c9de6beae624ba175ff2ba3 100644 (file)
@@ -1,4 +1,5 @@
 import Benchmark from 'benny'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
diff --git a/max.mjs b/max.mjs
index 0b1ec9f93528bed64c39bf82435a689223d2f3f7..2708eb0f51cbfb77bd43a10fde5667bea79e0ac6 100644 (file)
--- a/max.mjs
+++ b/max.mjs
@@ -1,4 +1,5 @@
 import Benchmark from 'benny'
+
 import { generateRandomNumberArray } from './benchmark-utils.mjs'
 
 const size = 10000
diff --git a/min.mjs b/min.mjs
index 834076c94423f9e55e65e045d5721311272f21b8..c7efed1a18402cbc9882dfba3c3a903da31402c5 100644 (file)
--- a/min.mjs
+++ b/min.mjs
@@ -1,4 +1,5 @@
 import Benchmark from 'benny'
+
 import { generateRandomNumberArray } from './benchmark-utils.mjs'
 
 const size = 10000
index 607bfb0a8effc71345790017b08a80e4274a0397..ffdc143a34323ab309765c49ed4cd6c3b01bb038 100644 (file)
     "eslint-config-standard": "^17.1.0",
     "eslint-define-config": "^2.1.0",
     "eslint-plugin-import": "^2.29.1",
-    "eslint-plugin-jsdoc": "^48.2.0",
+    "eslint-plugin-jsdoc": "^48.2.1",
     "eslint-plugin-n": "^16.6.2",
     "eslint-plugin-promise": "^6.1.1",
+    "eslint-plugin-simple-import-sort": "^12.0.0",
     "husky": "^9.0.11",
     "lint-staged": "^15.2.2",
     "prettier": "^3.2.5",
index bddae385219643ac0b2505e0e4305ee81a903f28..94e1af1c4e1ed1e9207fe20af5091674384ae6d0 100644 (file)
@@ -56,14 +56,17 @@ devDependencies:
     specifier: ^2.29.1
     version: 2.29.1(eslint@8.57.0)
   eslint-plugin-jsdoc:
-    specifier: ^48.2.0
-    version: 48.2.0(eslint@8.57.0)
+    specifier: ^48.2.1
+    version: 48.2.1(eslint@8.57.0)
   eslint-plugin-n:
     specifier: ^16.6.2
     version: 16.6.2(eslint@8.57.0)
   eslint-plugin-promise:
     specifier: ^6.1.1
     version: 6.1.1(eslint@8.57.0)
+  eslint-plugin-simple-import-sort:
+    specifier: ^12.0.0
+    version: 12.0.0(eslint@8.57.0)
   husky:
     specifier: ^9.0.11
     version: 9.0.11
@@ -1312,8 +1315,8 @@ packages:
       - supports-color
     dev: true
 
-  /eslint-plugin-jsdoc@48.2.0(eslint@8.57.0):
-    resolution: {integrity: sha512-O2B1XLBJnUCRkggFzUQ+PBYJDit8iAgXdlu8ucolqGrbmOWPvttZQZX8d1sC0MbqDMSLs8SHSQxaNPRY1RQREg==}
+  /eslint-plugin-jsdoc@48.2.1(eslint@8.57.0):
+    resolution: {integrity: sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==}
     engines: {node: '>=18'}
     peerDependencies:
       eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
@@ -1359,7 +1362,7 @@ packages:
       builtins: 5.0.1
       eslint: 8.57.0
       eslint-plugin-es-x: 7.5.0(eslint@8.57.0)
-      get-tsconfig: 4.7.2
+      get-tsconfig: 4.7.3
       globals: 13.24.0
       ignore: 5.3.1
       is-builtin-module: 3.2.1
@@ -1405,6 +1408,14 @@ packages:
       string.prototype.matchall: 4.0.10
     dev: true
 
+  /eslint-plugin-simple-import-sort@12.0.0(eslint@8.57.0):
+    resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==}
+    peerDependencies:
+      eslint: '>=5.0.0'
+    dependencies:
+      eslint: 8.57.0
+    dev: true
+
   /eslint-scope@7.2.2:
     resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1689,8 +1700,8 @@ packages:
       get-intrinsic: 1.2.4
     dev: true
 
-  /get-tsconfig@4.7.2:
-    resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+  /get-tsconfig@4.7.3:
+    resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==}
     dependencies:
       resolve-pkg-maps: 1.0.0
     dev: true
index d4270268fc58e25763684dff27533d643fbfdcdb..a829a9e52032966d969338efcbd1ddc56d08a495 100644 (file)
@@ -1,4 +1,5 @@
 import { randomInt } from 'node:crypto'
+
 import Benchmark from 'benny'
 
 /**
index f01ab2ba009d3c20c03627f259d9d6849cf7f837..bdb5f58699c76459090bd8eccfe8261918a206d7 100644 (file)
@@ -1,5 +1,7 @@
 import { randomInt } from 'node:crypto'
+
 import Benchmark from 'benny'
+
 import {
   secureRandom,
   secureRandomWithRandomValues
index 51ee172b499c830b66772a19942d3005fb684c2f..466135e4469deebdbd92f97f524328445b156d01 100644 (file)
@@ -1,6 +1,7 @@
 /* eslint-disable no-unused-vars */
 import Benchmark from 'benny'
 import _ from 'lodash'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
index 325abcb8f2b42f1678d801d1cb830a2587e98cf5..0b4c9fbc59fb29df8ebd7cb7412ea980b41a537e 100644 (file)
@@ -1,4 +1,5 @@
 import { randomUUID } from 'node:crypto'
+
 import Benchmark from 'benny'
 import { v4 as uuid } from 'uuid'