@rotki/eslint-config 7.0.0 → 8.0.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.d.mts +3220 -430
- package/dist/index.mjs +313 -41
- package/package.json +47 -31
package/dist/index.mjs
CHANGED
|
@@ -201,6 +201,10 @@ async function e18e(options = {}) {
|
|
|
201
201
|
...modernization ? { ...configs.modernization.rules } : {},
|
|
202
202
|
...moduleReplacements ? { ...configs.moduleReplacements.rules } : {},
|
|
203
203
|
...performanceImprovements ? { ...configs.performanceImprovements.rules } : {},
|
|
204
|
+
...performanceImprovements ? {
|
|
205
|
+
"e18e/prefer-charcode-at-in-loop": "error",
|
|
206
|
+
"e18e/prefer-slice-over-split-index": "error"
|
|
207
|
+
} : {},
|
|
204
208
|
...type === "lib" ? {} : { "e18e/prefer-static-regex": "off" },
|
|
205
209
|
"e18e/prefer-array-to-reversed": "off",
|
|
206
210
|
"e18e/prefer-array-to-sorted": "off",
|
|
@@ -797,6 +801,55 @@ async function javascript(options = {}) {
|
|
|
797
801
|
}];
|
|
798
802
|
}
|
|
799
803
|
//#endregion
|
|
804
|
+
//#region src/configs/jsdoc.ts
|
|
805
|
+
async function jsdoc(options = {}) {
|
|
806
|
+
const { overrides = {}, stylistic = true, tsdoc = true } = options;
|
|
807
|
+
await ensurePackages([tsdoc ? "eslint-plugin-tsdoc" : void 0]);
|
|
808
|
+
const [pluginJsdoc, pluginTsdoc] = await Promise.all([interopDefault(import("eslint-plugin-jsdoc")), tsdoc ? interopDefault(import("eslint-plugin-tsdoc")) : void 0]);
|
|
809
|
+
const configs = [{
|
|
810
|
+
name: "rotki/jsdoc/setup",
|
|
811
|
+
plugins: { jsdoc: pluginJsdoc }
|
|
812
|
+
}, {
|
|
813
|
+
files: [GLOB_SRC, GLOB_VUE],
|
|
814
|
+
name: "rotki/jsdoc/rules",
|
|
815
|
+
rules: {
|
|
816
|
+
"jsdoc/check-access": "error",
|
|
817
|
+
"jsdoc/check-param-names": ["error", { checkDestructured: false }],
|
|
818
|
+
"jsdoc/check-property-names": "error",
|
|
819
|
+
"jsdoc/empty-tags": "error",
|
|
820
|
+
"jsdoc/escape-inline-tags": "error",
|
|
821
|
+
"jsdoc/implements-on-classes": "error",
|
|
822
|
+
"jsdoc/informative-docs": "error",
|
|
823
|
+
"jsdoc/no-bad-blocks": "error",
|
|
824
|
+
"jsdoc/no-blank-block-descriptions": "error",
|
|
825
|
+
"jsdoc/no-blank-blocks": "error",
|
|
826
|
+
"jsdoc/no-multi-asterisks": "error",
|
|
827
|
+
"jsdoc/no-types": "error",
|
|
828
|
+
"jsdoc/require-param-description": "error",
|
|
829
|
+
"jsdoc/require-param-name": "error",
|
|
830
|
+
"jsdoc/require-property": "error",
|
|
831
|
+
"jsdoc/require-property-description": "error",
|
|
832
|
+
"jsdoc/require-property-name": "error",
|
|
833
|
+
"jsdoc/require-returns-check": "error",
|
|
834
|
+
"jsdoc/require-returns-description": "error",
|
|
835
|
+
"jsdoc/require-yields-check": "error",
|
|
836
|
+
...stylistic ? {
|
|
837
|
+
"jsdoc/check-alignment": "error",
|
|
838
|
+
"jsdoc/require-asterisk-prefix": "error",
|
|
839
|
+
"jsdoc/require-hyphen-before-param-description": "error"
|
|
840
|
+
} : {},
|
|
841
|
+
...overrides
|
|
842
|
+
}
|
|
843
|
+
}];
|
|
844
|
+
if (tsdoc) configs.push({
|
|
845
|
+
files: [GLOB_TS, GLOB_VUE],
|
|
846
|
+
name: "rotki/jsdoc/tsdoc",
|
|
847
|
+
plugins: { tsdoc: pluginTsdoc },
|
|
848
|
+
rules: { "tsdoc/syntax": "error" }
|
|
849
|
+
});
|
|
850
|
+
return configs;
|
|
851
|
+
}
|
|
852
|
+
//#endregion
|
|
800
853
|
//#region src/configs/jsonc.ts
|
|
801
854
|
async function jsonc(options = {}) {
|
|
802
855
|
const { files = [
|
|
@@ -1044,6 +1097,7 @@ async function pnpm(options) {
|
|
|
1044
1097
|
plugins: { pnpm: pluginPnpm },
|
|
1045
1098
|
rules: {
|
|
1046
1099
|
"pnpm/yaml-enforce-settings": ["error", { settings: {
|
|
1100
|
+
minimumReleaseAgeExcludePrune: true,
|
|
1047
1101
|
shellEmulator: true,
|
|
1048
1102
|
trustPolicy: "no-downgrade"
|
|
1049
1103
|
} }],
|
|
@@ -1061,65 +1115,190 @@ async function pnpm(options) {
|
|
|
1061
1115
|
{
|
|
1062
1116
|
order: [
|
|
1063
1117
|
...[
|
|
1064
|
-
"
|
|
1118
|
+
"dedupeInjectedDeps",
|
|
1119
|
+
"disallowWorkspaceCycles",
|
|
1120
|
+
"failIfNoMatch",
|
|
1121
|
+
"ignoreWorkspaceCycles",
|
|
1122
|
+
"ignoreWorkspaceRootCheck",
|
|
1123
|
+
"includeWorkspaceRoot",
|
|
1124
|
+
"injectWorkspacePackages",
|
|
1125
|
+
"legacyDirFiltering",
|
|
1126
|
+
"linkWorkspacePackages",
|
|
1127
|
+
"preferWorkspacePackages",
|
|
1128
|
+
"saveWorkspaceProtocol",
|
|
1129
|
+
"sharedWorkspaceLockfile",
|
|
1130
|
+
"syncInjectedDepsAfterScripts"
|
|
1131
|
+
],
|
|
1132
|
+
...[
|
|
1065
1133
|
"catalogMode",
|
|
1066
|
-
"
|
|
1067
|
-
"
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
"
|
|
1134
|
+
"catalogPrune",
|
|
1135
|
+
"cleanupUnusedCatalogs"
|
|
1136
|
+
],
|
|
1137
|
+
...[
|
|
1138
|
+
"allowedDeprecatedVersions",
|
|
1139
|
+
"blockExoticSubdeps",
|
|
1140
|
+
"ignoredOptionalDependencies",
|
|
1141
|
+
"minimumReleaseAge",
|
|
1142
|
+
"minimumReleaseAgeIgnoreMissingTime",
|
|
1143
|
+
"minimumReleaseAgeStrict",
|
|
1144
|
+
"minimumReleaseAgeExcludePrune",
|
|
1145
|
+
"minimumReleaseAgeExclude",
|
|
1146
|
+
"registrySupportsTimeField",
|
|
1147
|
+
"resolutionMode",
|
|
1148
|
+
"supportedArchitectures",
|
|
1149
|
+
"trustLockfile",
|
|
1150
|
+
"trustPolicy",
|
|
1151
|
+
"trustPolicyIgnoreAfter",
|
|
1152
|
+
"trustPolicyExclude",
|
|
1153
|
+
"update"
|
|
1154
|
+
],
|
|
1155
|
+
...[
|
|
1156
|
+
"autoInstallPeers",
|
|
1157
|
+
"dedupePeerDependents",
|
|
1158
|
+
"dedupePeers",
|
|
1159
|
+
"peerDependencyRules",
|
|
1160
|
+
"resolvePeersFromWorkspaceRoot",
|
|
1161
|
+
"strictPeerDependencies"
|
|
1162
|
+
],
|
|
1163
|
+
...[
|
|
1164
|
+
"fetchMinSpeedKiBps",
|
|
1165
|
+
"fetchRetries",
|
|
1166
|
+
"fetchRetryFactor",
|
|
1167
|
+
"fetchRetryMaxtimeout",
|
|
1168
|
+
"fetchRetryMintimeout",
|
|
1169
|
+
"fetchTimeout",
|
|
1170
|
+
"fetchWarnTimeoutMs",
|
|
1171
|
+
"gitShallowHosts",
|
|
1172
|
+
"httpProxy",
|
|
1173
|
+
"httpsProxy",
|
|
1174
|
+
"localAddress",
|
|
1175
|
+
"maxsockets",
|
|
1176
|
+
"namedRegistries",
|
|
1177
|
+
"networkConcurrency",
|
|
1178
|
+
"noProxy",
|
|
1179
|
+
"registries",
|
|
1180
|
+
"registry",
|
|
1181
|
+
"strictSsl"
|
|
1182
|
+
],
|
|
1183
|
+
...[
|
|
1184
|
+
"dlxCacheMaxAge",
|
|
1185
|
+
"enableGlobalVirtualStore",
|
|
1186
|
+
"enableModulesDir",
|
|
1071
1187
|
"extendNodePath",
|
|
1188
|
+
"modulesCacheMaxAge",
|
|
1189
|
+
"modulesDir",
|
|
1190
|
+
"nodeExperimentalPackageMap",
|
|
1191
|
+
"nodeLinker",
|
|
1192
|
+
"nodePackageMapType",
|
|
1193
|
+
"packageImportMethod",
|
|
1194
|
+
"preferSymlinkedExecutables",
|
|
1195
|
+
"symlink",
|
|
1196
|
+
"virtualStoreDir",
|
|
1197
|
+
"virtualStoreDirMaxLength",
|
|
1198
|
+
"virtualStoreOnly",
|
|
1199
|
+
"virtualStoreType"
|
|
1200
|
+
],
|
|
1201
|
+
...[
|
|
1072
1202
|
"hoist",
|
|
1203
|
+
"hoistingLimits",
|
|
1073
1204
|
"hoistPattern",
|
|
1074
1205
|
"hoistWorkspacePackages",
|
|
1075
|
-
"
|
|
1206
|
+
"publicHoistPattern",
|
|
1207
|
+
"shamefullyHoist"
|
|
1208
|
+
],
|
|
1209
|
+
...[
|
|
1210
|
+
"frozenStore",
|
|
1211
|
+
"storeDir",
|
|
1212
|
+
"strictStorePkgContentCheck",
|
|
1213
|
+
"useRunningStoreServer",
|
|
1214
|
+
"verifyStoreIntegrity"
|
|
1215
|
+
],
|
|
1216
|
+
...[
|
|
1217
|
+
"gitBranchLockfile",
|
|
1218
|
+
"lockfile",
|
|
1219
|
+
"lockfileIncludeTarballUrl",
|
|
1220
|
+
"mergeGitBranchLockfilesBranchPattern",
|
|
1221
|
+
"peersSuffixMaxLength",
|
|
1222
|
+
"preferFrozenLockfile"
|
|
1223
|
+
],
|
|
1224
|
+
...[
|
|
1225
|
+
"childConcurrency",
|
|
1226
|
+
"dangerouslyAllowAllBuilds",
|
|
1227
|
+
"enablePrePostScripts",
|
|
1076
1228
|
"ignoreDepScripts",
|
|
1077
1229
|
"ignoreScripts",
|
|
1078
|
-
"
|
|
1230
|
+
"nodeOptions",
|
|
1231
|
+
"requiredScripts",
|
|
1232
|
+
"scriptShell",
|
|
1233
|
+
"shellEmulator",
|
|
1234
|
+
"sideEffectsCache",
|
|
1235
|
+
"sideEffectsCacheReadonly",
|
|
1236
|
+
"strictDepBuilds",
|
|
1237
|
+
"unsafePerm",
|
|
1238
|
+
"verifyDepsBeforeRun"
|
|
1239
|
+
],
|
|
1240
|
+
...[
|
|
1079
1241
|
"managePackageManagerVersions",
|
|
1080
|
-
"
|
|
1081
|
-
"minimumReleaseAgeExclude",
|
|
1082
|
-
"modulesDir",
|
|
1083
|
-
"nodeLinker",
|
|
1242
|
+
"nodeDownloadMirrors",
|
|
1084
1243
|
"nodeVersion",
|
|
1085
|
-
"optimisticRepeatInstall",
|
|
1086
1244
|
"packageManagerStrict",
|
|
1087
1245
|
"packageManagerStrictVersion",
|
|
1088
|
-
"
|
|
1089
|
-
"
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
"
|
|
1093
|
-
"
|
|
1246
|
+
"pmOnFail",
|
|
1247
|
+
"runtimeOnFail"
|
|
1248
|
+
],
|
|
1249
|
+
...[
|
|
1250
|
+
"ci",
|
|
1251
|
+
"color",
|
|
1252
|
+
"engineStrict",
|
|
1253
|
+
"loglevel",
|
|
1254
|
+
"npmPath",
|
|
1255
|
+
"recursiveInstall",
|
|
1256
|
+
"updateNotifier",
|
|
1257
|
+
"useBetaCli",
|
|
1258
|
+
"useStderr"
|
|
1259
|
+
],
|
|
1260
|
+
...[
|
|
1261
|
+
"cacheDir",
|
|
1262
|
+
"globalBinDir",
|
|
1263
|
+
"globalDir",
|
|
1264
|
+
"globalPnpmfile",
|
|
1265
|
+
"globalShims",
|
|
1266
|
+
"ignorePnpmfile",
|
|
1267
|
+
"npmrcAuthFile",
|
|
1268
|
+
"pnpmfile",
|
|
1269
|
+
"stateDir"
|
|
1270
|
+
],
|
|
1271
|
+
...["audit", "versioning"],
|
|
1272
|
+
...[
|
|
1273
|
+
"allowNonAppliedPatches",
|
|
1274
|
+
"dedupeDirectDeps",
|
|
1275
|
+
"deployAllFiles",
|
|
1276
|
+
"ignoreCompatibilityDb",
|
|
1277
|
+
"initAuthorEmail",
|
|
1278
|
+
"initAuthorName",
|
|
1279
|
+
"initAuthorUrl",
|
|
1280
|
+
"initLicense",
|
|
1281
|
+
"initVersion",
|
|
1282
|
+
"optimisticRepeatInstall",
|
|
1283
|
+
"saveExact",
|
|
1094
1284
|
"savePrefix",
|
|
1095
|
-
"
|
|
1096
|
-
"shamefullyHoist",
|
|
1097
|
-
"shellEmulator",
|
|
1098
|
-
"stateDir",
|
|
1099
|
-
"supportedArchitectures",
|
|
1100
|
-
"symlink",
|
|
1101
|
-
"tag",
|
|
1102
|
-
"trustPolicy",
|
|
1103
|
-
"trustPolicyExclude",
|
|
1104
|
-
"updateNotifier"
|
|
1285
|
+
"tag"
|
|
1105
1286
|
],
|
|
1106
1287
|
"packages",
|
|
1288
|
+
"packageConfigs",
|
|
1107
1289
|
"overrides",
|
|
1290
|
+
"packageExtensions",
|
|
1108
1291
|
"patchedDependencies",
|
|
1109
|
-
"
|
|
1110
|
-
"
|
|
1292
|
+
"configDependencies",
|
|
1293
|
+
"allowBuilds",
|
|
1111
1294
|
...[
|
|
1112
|
-
"allowedDeprecatedVersions",
|
|
1113
|
-
"allowNonAppliedPatches",
|
|
1114
|
-
"configDependencies",
|
|
1115
1295
|
"ignoredBuiltDependencies",
|
|
1116
|
-
"ignoredOptionalDependencies",
|
|
1117
1296
|
"neverBuiltDependencies",
|
|
1118
1297
|
"onlyBuiltDependencies",
|
|
1119
|
-
"onlyBuiltDependenciesFile"
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1298
|
+
"onlyBuiltDependenciesFile"
|
|
1299
|
+
],
|
|
1300
|
+
"catalog",
|
|
1301
|
+
"catalogs"
|
|
1123
1302
|
],
|
|
1124
1303
|
pathPattern: "^$"
|
|
1125
1304
|
},
|
|
@@ -1202,6 +1381,70 @@ async function rotkiPlugin(options = {}) {
|
|
|
1202
1381
|
}];
|
|
1203
1382
|
}
|
|
1204
1383
|
//#endregion
|
|
1384
|
+
//#region src/configs/slop.ts
|
|
1385
|
+
async function slop(options = {}) {
|
|
1386
|
+
const { cwd, inspection, jargon = true, maximumWords = 50, overrides = {} } = options;
|
|
1387
|
+
await ensurePackages(["eslint-plugin-slop"]);
|
|
1388
|
+
const [pluginSlop] = await Promise.all([interopDefault(import("eslint-plugin-slop"))]);
|
|
1389
|
+
const settings = {
|
|
1390
|
+
...cwd ? { cwd } : {},
|
|
1391
|
+
...inspection ? { inspection } : {}
|
|
1392
|
+
};
|
|
1393
|
+
return [{
|
|
1394
|
+
files: [GLOB_SRC, GLOB_VUE],
|
|
1395
|
+
name: "rotki/slop/rules",
|
|
1396
|
+
plugins: { slop: pluginSlop },
|
|
1397
|
+
...Object.keys(settings).length > 0 ? { settings: { slop: settings } } : {},
|
|
1398
|
+
rules: {
|
|
1399
|
+
"slop/max-comment-length": ["error", {
|
|
1400
|
+
ignoreJSDoc: true,
|
|
1401
|
+
maximumWords
|
|
1402
|
+
}],
|
|
1403
|
+
"slop/no-chained-type-assertions": "error",
|
|
1404
|
+
"slop/no-em-dash": "error",
|
|
1405
|
+
"slop/no-trivial-type-aliases": "error",
|
|
1406
|
+
...jargon ? { "slop/no-jargon": "error" } : {},
|
|
1407
|
+
...overrides
|
|
1408
|
+
}
|
|
1409
|
+
}];
|
|
1410
|
+
}
|
|
1411
|
+
//#endregion
|
|
1412
|
+
//#region src/configs/sonarjs.ts
|
|
1413
|
+
async function sonarjs(options = {}) {
|
|
1414
|
+
const { cognitiveComplexity = false, overrides = {}, simplification = true } = options;
|
|
1415
|
+
await ensurePackages(["eslint-plugin-sonarjs"]);
|
|
1416
|
+
const [pluginSonarjs] = await Promise.all([interopDefault(import("eslint-plugin-sonarjs"))]);
|
|
1417
|
+
return [{
|
|
1418
|
+
files: [GLOB_SRC, GLOB_VUE],
|
|
1419
|
+
name: "rotki/sonarjs/rules",
|
|
1420
|
+
plugins: { sonarjs: pluginSonarjs },
|
|
1421
|
+
rules: {
|
|
1422
|
+
"sonarjs/no-all-duplicated-branches": "error",
|
|
1423
|
+
"sonarjs/no-commented-code": "error",
|
|
1424
|
+
"sonarjs/no-dead-store": "error",
|
|
1425
|
+
"sonarjs/no-element-overwrite": "error",
|
|
1426
|
+
"sonarjs/no-empty-collection": "error",
|
|
1427
|
+
"sonarjs/no-identical-conditions": "error",
|
|
1428
|
+
"sonarjs/no-identical-expressions": "error",
|
|
1429
|
+
"sonarjs/no-identical-functions": "error",
|
|
1430
|
+
"sonarjs/no-invariant-returns": "error",
|
|
1431
|
+
"sonarjs/no-unused-collection": "error",
|
|
1432
|
+
"sonarjs/no-use-of-empty-return-value": "error",
|
|
1433
|
+
...simplification ? {
|
|
1434
|
+
"sonarjs/no-collapsible-if": "error",
|
|
1435
|
+
"sonarjs/no-duplicated-branches": "error",
|
|
1436
|
+
"sonarjs/no-gratuitous-expressions": "error",
|
|
1437
|
+
"sonarjs/no-inverted-boolean-check": "error",
|
|
1438
|
+
"sonarjs/no-redundant-boolean": "error",
|
|
1439
|
+
"sonarjs/no-redundant-jump": "error",
|
|
1440
|
+
"sonarjs/prefer-single-boolean-return": "error"
|
|
1441
|
+
} : {},
|
|
1442
|
+
...cognitiveComplexity === false ? {} : { "sonarjs/cognitive-complexity": ["error", cognitiveComplexity] },
|
|
1443
|
+
...overrides
|
|
1444
|
+
}
|
|
1445
|
+
}];
|
|
1446
|
+
}
|
|
1447
|
+
//#endregion
|
|
1205
1448
|
//#region src/configs/sort.ts
|
|
1206
1449
|
async function sortPackageJson() {
|
|
1207
1450
|
return [{
|
|
@@ -1702,7 +1945,7 @@ async function typescript(options = {}) {
|
|
|
1702
1945
|
}
|
|
1703
1946
|
//#endregion
|
|
1704
1947
|
//#region src/configs/unicorn.ts
|
|
1705
|
-
const FILENAME_CASE_IGNORE =
|
|
1948
|
+
const FILENAME_CASE_IGNORE = "^[A-Z]+\\..*$";
|
|
1706
1949
|
async function unicorn(options = {}) {
|
|
1707
1950
|
return [{
|
|
1708
1951
|
files: [GLOB_SRC, GLOB_VUE],
|
|
@@ -1725,6 +1968,7 @@ async function unicorn(options = {}) {
|
|
|
1725
1968
|
"unicorn/new-for-builtins": "error",
|
|
1726
1969
|
"unicorn/no-array-method-this-argument": "error",
|
|
1727
1970
|
"unicorn/no-array-push-push": "error",
|
|
1971
|
+
"unicorn/no-barrel-files": "error",
|
|
1728
1972
|
"unicorn/no-console-spaces": "error",
|
|
1729
1973
|
"unicorn/no-for-loop": "error",
|
|
1730
1974
|
"unicorn/no-hex-escape": "error",
|
|
@@ -1759,6 +2003,7 @@ async function unicorn(options = {}) {
|
|
|
1759
2003
|
"unicorn/prefer-string-trim-start-end": "error",
|
|
1760
2004
|
"unicorn/prefer-top-level-await": "error",
|
|
1761
2005
|
"unicorn/prefer-type-error": "error",
|
|
2006
|
+
"unicorn/single-line-block-comment-style": ["error", "single-line"],
|
|
1762
2007
|
"unicorn/throw-new-error": "error"
|
|
1763
2008
|
} }
|
|
1764
2009
|
}];
|
|
@@ -2163,6 +2408,11 @@ async function yaml(options = {}) {
|
|
|
2163
2408
|
"yaml/flow-sequence-bracket-spacing": "error",
|
|
2164
2409
|
"yaml/indent": ["error", typeof indent === "number" ? indent : 2],
|
|
2165
2410
|
"yaml/key-spacing": "error",
|
|
2411
|
+
"yaml/no-multiple-empty-lines": ["error", {
|
|
2412
|
+
max: 1,
|
|
2413
|
+
maxBOF: 0,
|
|
2414
|
+
maxEOF: 0
|
|
2415
|
+
}],
|
|
2166
2416
|
"yaml/no-tab-indent": "error",
|
|
2167
2417
|
"yaml/quotes": ["error", {
|
|
2168
2418
|
avoidEscape: true,
|
|
@@ -2263,6 +2513,21 @@ function buildLanguageConfigs(configs, options, resolved) {
|
|
|
2263
2513
|
type: options.type
|
|
2264
2514
|
}));
|
|
2265
2515
|
}
|
|
2516
|
+
function buildQualityConfigs(configs, options, resolved) {
|
|
2517
|
+
if (options.jsdoc ?? true) configs.push(jsdoc({
|
|
2518
|
+
...resolveSubOptions(options, "jsdoc"),
|
|
2519
|
+
overrides: getOverrides(options, "jsdoc"),
|
|
2520
|
+
stylistic: !!resolved.stylisticOptions
|
|
2521
|
+
}));
|
|
2522
|
+
if (options.slop) configs.push(slop({
|
|
2523
|
+
...resolveSubOptions(options, "slop"),
|
|
2524
|
+
overrides: getOverrides(options, "slop")
|
|
2525
|
+
}));
|
|
2526
|
+
if (options.sonarjs) configs.push(sonarjs({
|
|
2527
|
+
...resolveSubOptions(options, "sonarjs"),
|
|
2528
|
+
overrides: getOverrides(options, "sonarjs")
|
|
2529
|
+
}));
|
|
2530
|
+
}
|
|
2266
2531
|
function buildTypeScriptAndStyleConfigs(configs, options, resolved) {
|
|
2267
2532
|
const { componentExts, enableRegexp, enableTypeScript, isInEditor, stylisticOptions, typescriptOptions } = resolved;
|
|
2268
2533
|
if (enableTypeScript) configs.push(typescript({
|
|
@@ -2350,6 +2615,7 @@ function rotki(options = {}, ...userConfigs) {
|
|
|
2350
2615
|
const resolved = resolveOptions(options);
|
|
2351
2616
|
const configs = [];
|
|
2352
2617
|
buildLanguageConfigs(configs, options, resolved);
|
|
2618
|
+
buildQualityConfigs(configs, options, resolved);
|
|
2353
2619
|
buildTypeScriptAndStyleConfigs(configs, options, resolved);
|
|
2354
2620
|
buildFrameworkConfigs(configs, options, resolved);
|
|
2355
2621
|
buildFileFormatConfigs(configs, options, resolved);
|
|
@@ -2369,11 +2635,14 @@ const CONFIG_PRESET_FULL_ON = {
|
|
|
2369
2635
|
formatters: true,
|
|
2370
2636
|
gitignore: true,
|
|
2371
2637
|
imports: {},
|
|
2638
|
+
jsdoc: true,
|
|
2372
2639
|
jsonc: true,
|
|
2373
2640
|
jsx: true,
|
|
2374
2641
|
markdown: true,
|
|
2375
2642
|
pnpm: true,
|
|
2376
2643
|
regexp: true,
|
|
2644
|
+
slop: true,
|
|
2645
|
+
sonarjs: true,
|
|
2377
2646
|
stylistic: true,
|
|
2378
2647
|
test: true,
|
|
2379
2648
|
typescript: true,
|
|
@@ -2384,11 +2653,14 @@ const CONFIG_PRESET_FULL_ON = {
|
|
|
2384
2653
|
const CONFIG_PRESET_FULL_OFF = {
|
|
2385
2654
|
formatters: false,
|
|
2386
2655
|
gitignore: false,
|
|
2656
|
+
jsdoc: false,
|
|
2387
2657
|
jsonc: false,
|
|
2388
2658
|
jsx: false,
|
|
2389
2659
|
markdown: false,
|
|
2390
2660
|
pnpm: false,
|
|
2391
2661
|
regexp: false,
|
|
2662
|
+
slop: false,
|
|
2663
|
+
sonarjs: false,
|
|
2392
2664
|
stylistic: false,
|
|
2393
2665
|
test: false,
|
|
2394
2666
|
typescript: false,
|
|
@@ -2400,4 +2672,4 @@ const CONFIG_PRESET_FULL_OFF = {
|
|
|
2400
2672
|
//#region src/index.ts
|
|
2401
2673
|
var src_default = rotki;
|
|
2402
2674
|
//#endregion
|
|
2403
|
-
export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, 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_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, src_default as default, defaultPluginRenaming, disables, e18e, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, markdown, node, parserPlain, perfectionist, pnpm, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, rotki, rotkiPlugin, sortPackageJson, sortTsconfig, storybook, stylistic, test, toArray, typescript, unicorn, vue, vueI18n, yaml };
|
|
2675
|
+
export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, 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_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, src_default as default, defaultPluginRenaming, disables, e18e, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, pnpm, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, rotki, rotkiPlugin, slop, sonarjs, sortPackageJson, sortTsconfig, storybook, stylistic, test, toArray, typescript, unicorn, vue, vueI18n, yaml };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rotki/eslint-config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "AGPL-3.0",
|
|
6
6
|
"bugs": {
|
|
@@ -24,7 +24,10 @@
|
|
|
24
24
|
"@prettier/plugin-xml": "^3.4.1",
|
|
25
25
|
"@rotki/eslint-plugin": ">=1.5.0",
|
|
26
26
|
"eslint": "^9.20.0 || ^10.0.0",
|
|
27
|
-
"eslint-plugin-
|
|
27
|
+
"eslint-plugin-slop": ">=0.1.3",
|
|
28
|
+
"eslint-plugin-sonarjs": ">=4.0.0",
|
|
29
|
+
"eslint-plugin-storybook": ">=10.2.14",
|
|
30
|
+
"eslint-plugin-tsdoc": ">=0.5.0"
|
|
28
31
|
},
|
|
29
32
|
"peerDependenciesMeta": {
|
|
30
33
|
"@intlify/eslint-plugin-vue-i18n": {
|
|
@@ -36,67 +39,80 @@
|
|
|
36
39
|
"@rotki/eslint-plugin": {
|
|
37
40
|
"optional": true
|
|
38
41
|
},
|
|
42
|
+
"eslint-plugin-slop": {
|
|
43
|
+
"optional": true
|
|
44
|
+
},
|
|
45
|
+
"eslint-plugin-sonarjs": {
|
|
46
|
+
"optional": true
|
|
47
|
+
},
|
|
39
48
|
"eslint-plugin-storybook": {
|
|
40
49
|
"optional": true
|
|
50
|
+
},
|
|
51
|
+
"eslint-plugin-tsdoc": {
|
|
52
|
+
"optional": true
|
|
41
53
|
}
|
|
42
54
|
},
|
|
43
55
|
"dependencies": {
|
|
44
|
-
"@antfu/install-pkg": "
|
|
56
|
+
"@antfu/install-pkg": "2.0.1",
|
|
45
57
|
"@clack/prompts": "1.7.0",
|
|
46
|
-
"@e18e/eslint-plugin": "0.
|
|
58
|
+
"@e18e/eslint-plugin": "0.8.0",
|
|
47
59
|
"@eslint-community/eslint-plugin-eslint-comments": "4.7.2",
|
|
48
60
|
"@eslint/markdown": "8.0.3",
|
|
49
61
|
"@stylistic/eslint-plugin": "5.10.0",
|
|
50
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
51
|
-
"@typescript-eslint/parser": "8.
|
|
52
|
-
"@vitest/eslint-plugin": "1.6.
|
|
53
|
-
"eslint-config-flat-gitignore": "2.
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "8.68.0",
|
|
63
|
+
"@typescript-eslint/parser": "8.68.0",
|
|
64
|
+
"@vitest/eslint-plugin": "1.6.27",
|
|
65
|
+
"eslint-config-flat-gitignore": "2.4.0",
|
|
54
66
|
"eslint-config-prettier": "10.1.8",
|
|
55
67
|
"eslint-flat-config-utils": "3.2.0",
|
|
56
68
|
"eslint-merge-processors": "2.0.0",
|
|
57
69
|
"eslint-plugin-antfu": "3.2.3",
|
|
58
70
|
"eslint-plugin-format": "2.0.1",
|
|
59
|
-
"eslint-plugin-html": "8.
|
|
71
|
+
"eslint-plugin-html": "8.2.0",
|
|
60
72
|
"eslint-plugin-import-lite": "0.6.0",
|
|
61
|
-
"eslint-plugin-
|
|
62
|
-
"eslint-plugin-
|
|
73
|
+
"eslint-plugin-jsdoc": "64.3.2",
|
|
74
|
+
"eslint-plugin-jsonc": "3.4.2",
|
|
75
|
+
"eslint-plugin-n": "18.3.0",
|
|
63
76
|
"eslint-plugin-no-only-tests": "3.4.0",
|
|
64
|
-
"eslint-plugin-perfectionist": "5.10.
|
|
65
|
-
"eslint-plugin-pnpm": "1.
|
|
77
|
+
"eslint-plugin-perfectionist": "5.10.1",
|
|
78
|
+
"eslint-plugin-pnpm": "1.8.0",
|
|
66
79
|
"eslint-plugin-prettier": "5.5.6",
|
|
67
|
-
"eslint-plugin-regexp": "3.
|
|
68
|
-
"eslint-plugin-unicorn": "
|
|
80
|
+
"eslint-plugin-regexp": "3.2.0",
|
|
81
|
+
"eslint-plugin-unicorn": "74.0.0",
|
|
69
82
|
"eslint-plugin-unused-imports": "4.4.1",
|
|
70
|
-
"eslint-plugin-vue": "10.
|
|
71
|
-
"eslint-plugin-yml": "3.
|
|
83
|
+
"eslint-plugin-vue": "10.10.0",
|
|
84
|
+
"eslint-plugin-yml": "3.8.1",
|
|
72
85
|
"eslint-processor-vue-blocks": "2.0.0",
|
|
73
86
|
"find-up-simple": "1.0.1",
|
|
74
|
-
"globals": "17.
|
|
87
|
+
"globals": "17.11.0",
|
|
75
88
|
"local-pkg": "1.2.1",
|
|
76
|
-
"prettier": "3.9.
|
|
89
|
+
"prettier": "3.9.6",
|
|
77
90
|
"vue-eslint-parser": "10.4.1",
|
|
78
91
|
"yaml-eslint-parser": "2.1.0"
|
|
79
92
|
},
|
|
80
93
|
"devDependencies": {
|
|
81
|
-
"@commitlint/cli": "21.2.
|
|
82
|
-
"@commitlint/config-conventional": "21.2.
|
|
83
|
-
"@eslint/config-inspector": "3.
|
|
84
|
-
"@rotki/eslint-
|
|
94
|
+
"@commitlint/cli": "21.2.2",
|
|
95
|
+
"@commitlint/config-conventional": "21.2.2",
|
|
96
|
+
"@eslint/config-inspector": "3.3.0",
|
|
97
|
+
"@rotki/eslint-config": "8.0.0",
|
|
98
|
+
"@rotki/eslint-plugin": "1.5.1",
|
|
85
99
|
"@types/node": "24.13.3",
|
|
86
100
|
"@types/prompts": "2.4.9",
|
|
87
|
-
"bumpp": "
|
|
88
|
-
"eslint": "10.
|
|
101
|
+
"bumpp": "12.2.2",
|
|
102
|
+
"eslint": "10.9.1",
|
|
103
|
+
"eslint-plugin-slop": "0.1.3",
|
|
104
|
+
"eslint-plugin-sonarjs": "4.2.0",
|
|
105
|
+
"eslint-plugin-tsdoc": "0.5.2",
|
|
89
106
|
"eslint-typegen": "2.3.1",
|
|
90
|
-
"execa": "10.0.
|
|
107
|
+
"execa": "10.0.1",
|
|
91
108
|
"husky": "9.1.7",
|
|
92
|
-
"lint-staged": "17.
|
|
109
|
+
"lint-staged": "17.4.1",
|
|
93
110
|
"rimraf": "6.1.3",
|
|
94
111
|
"tinyglobby": "0.2.17",
|
|
95
|
-
"tsdown": "0.22.
|
|
96
|
-
"tsx": "4.23.
|
|
112
|
+
"tsdown": "0.22.14",
|
|
113
|
+
"tsx": "4.23.13",
|
|
97
114
|
"typescript": "6.0.3",
|
|
98
|
-
"vitest": "4.1.
|
|
99
|
-
"@rotki/eslint-config": "7.0.0"
|
|
115
|
+
"vitest": "4.1.11"
|
|
100
116
|
},
|
|
101
117
|
"engines": {
|
|
102
118
|
"node": ">=24 <25",
|