@isentinel/eslint-config 3.0.0-beta.4 → 3.0.0-beta.6
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/README.md +14 -0
- package/dist/chunk-BLXvPPr8.js +30 -0
- package/dist/cli.js +8 -5
- package/dist/dist-BZ6CjJ0d.js +96 -0
- package/dist/index.d.ts +53 -6
- package/dist/index.js +115 -89
- package/dist/lib-BHBu_Td_.js +10936 -0
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -117,6 +117,20 @@ set:
|
|
|
117
117
|
}
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
Alternatively, you can install `@isentinel/tsconfig` from pnpm:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
pnpm install --save-dev @isentinel/tsconfig
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
And use it in your `tsconfig.json`:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"extends": "@isentinel/tsconfig/roblox"
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
120
134
|
### ESLint
|
|
121
135
|
|
|
122
136
|
The `ts/no-non-null-assertion` rule is enabled by default, which will warn you
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
|
|
3
|
+
//#region rolldown:runtime
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __commonJS = (cb, mod) => function() {
|
|
11
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
15
|
+
key = keys[i];
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: ((k) => from[k]).bind(null, key),
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { __commonJS, __require, __toESM };
|
package/dist/cli.js
CHANGED
|
@@ -11,7 +11,7 @@ import { execSync } from "node:child_process";
|
|
|
11
11
|
|
|
12
12
|
//#region package.json
|
|
13
13
|
var name = "@isentinel/eslint-config";
|
|
14
|
-
var version = "3.0.0-beta.
|
|
14
|
+
var version = "3.0.0-beta.6";
|
|
15
15
|
var description = "iSentinel's ESLint config";
|
|
16
16
|
var keywords = [
|
|
17
17
|
"eslint-config",
|
|
@@ -59,6 +59,7 @@ var dependencies = {
|
|
|
59
59
|
"@eslint/markdown": "catalog:prod",
|
|
60
60
|
"@isentinel/dict-rbxts": "catalog:prod",
|
|
61
61
|
"@isentinel/dict-roblox": "catalog:prod",
|
|
62
|
+
"@isentinel/eslint-plugin-comment-length": "catalog:prod",
|
|
62
63
|
"@prettier/plugin-oxc": "catalog:prod",
|
|
63
64
|
"@shopify/eslint-plugin": "catalog:prod",
|
|
64
65
|
"@stylistic/eslint-plugin": "catalog:prod",
|
|
@@ -73,7 +74,6 @@ var dependencies = {
|
|
|
73
74
|
"eslint-plugin-antfu": "catalog:prod",
|
|
74
75
|
"eslint-plugin-arrow-return-style-x": "catalog:prod",
|
|
75
76
|
"eslint-plugin-better-max-params": "catalog:prod",
|
|
76
|
-
"eslint-plugin-comment-length": "catalog:prod",
|
|
77
77
|
"eslint-plugin-de-morgan": "catalog:prod",
|
|
78
78
|
"eslint-plugin-format-lua": "catalog:prod",
|
|
79
79
|
"eslint-plugin-import-lite": "catalog:prod",
|
|
@@ -105,6 +105,7 @@ var devDependencies = {
|
|
|
105
105
|
"@eslint-react/eslint-plugin": "catalog:peer",
|
|
106
106
|
"@eslint/config-inspector": "catalog:dev",
|
|
107
107
|
"@isentinel/eslint-config": "workspace:*",
|
|
108
|
+
"@isentinel/tsconfig": "catalog:dev",
|
|
108
109
|
"@stylistic/eslint-plugin-migrate": "catalog:dev",
|
|
109
110
|
"@types/fs-extra": "catalog:dev",
|
|
110
111
|
"@types/node": "catalog:dev",
|
|
@@ -113,10 +114,12 @@ var devDependencies = {
|
|
|
113
114
|
"@vitest/eslint-plugin": "catalog:peer",
|
|
114
115
|
"bumpp": "catalog:dev",
|
|
115
116
|
"eslint": "catalog:peer",
|
|
117
|
+
"eslint-plugin-erasable-syntax-only": "catalog:peer",
|
|
116
118
|
"eslint-plugin-eslint-plugin": "catalog:peer",
|
|
117
119
|
"eslint-plugin-jest": "catalog:peer",
|
|
118
120
|
"eslint-plugin-n": "catalog:peer",
|
|
119
121
|
"eslint-plugin-react-roblox-hooks": "catalog:peer",
|
|
122
|
+
"eslint-plugin-unused-imports": "catalog:dev",
|
|
120
123
|
"eslint-typegen": "catalog:dev",
|
|
121
124
|
"esno": "catalog:dev",
|
|
122
125
|
"execa": "catalog:dev",
|
|
@@ -471,7 +474,7 @@ async function updateEslintFiles(result) {
|
|
|
471
474
|
const pathESLintIgnore = path.join(cwd, ".eslintignore");
|
|
472
475
|
const pathPackageJSON = path.join(cwd, "package.json");
|
|
473
476
|
const packageContent = await fsp.readFile(pathPackageJSON, "utf-8");
|
|
474
|
-
const configFileName = JSON.parse(packageContent)
|
|
477
|
+
const configFileName = JSON.parse(packageContent)["type"] === "module" ? "eslint.config.js" : "eslint.config.mjs";
|
|
475
478
|
const pathFlatConfig = path.join(cwd, configFileName);
|
|
476
479
|
const eslintIgnores = [];
|
|
477
480
|
if (fs.existsSync(pathESLintIgnore)) {
|
|
@@ -513,7 +516,7 @@ async function updatePackageJson(result) {
|
|
|
513
516
|
const parsedPackage = JSON.parse(packageContent);
|
|
514
517
|
parsedPackage.devDependencies ??= {};
|
|
515
518
|
parsedPackage.devDependencies["@isentinel/eslint-config"] = `^${version}`;
|
|
516
|
-
parsedPackage.devDependencies
|
|
519
|
+
parsedPackage.devDependencies["eslint"] ??= versionsMap.eslint;
|
|
517
520
|
const addedPackages = [];
|
|
518
521
|
for (const framework of result.frameworks) if (framework in dependenciesMap) for (const dep of dependenciesMap[framework]) {
|
|
519
522
|
parsedPackage.devDependencies[dep] = versionsMap[dep];
|
|
@@ -548,7 +551,7 @@ async function updateVscodeSettings(result) {
|
|
|
548
551
|
//#endregion
|
|
549
552
|
//#region src/cli/run.ts
|
|
550
553
|
async function run(options = {}) {
|
|
551
|
-
const argumentSkipPrompt = !!(process.env
|
|
554
|
+
const argumentSkipPrompt = !!(process.env["SKIP_PROMPT"] ?? "") || options.yes;
|
|
552
555
|
const argumentTemplate = options.frameworks?.map((framework) => framework.trim()).filter((framework) => {
|
|
553
556
|
return frameworks.includes(framework);
|
|
554
557
|
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createRequire } from "module";
|
|
2
|
+
|
|
3
|
+
//#region node_modules/.pnpm/eslint-plugin-unused-imports@4.2.0_@typescript-eslint+eslint-plugin@8.39.1_@typescript-_d725b5966c09a4e636f423644baea633/node_modules/eslint-plugin-unused-imports/dist/index.mjs
|
|
4
|
+
var commaFilter = { filter: (token) => token.value === "," };
|
|
5
|
+
var includeCommentsFilter = { includeComments: true };
|
|
6
|
+
function makePredicate(isImport, addFixer) {
|
|
7
|
+
return (problem, context) => {
|
|
8
|
+
const sourceCode = context.sourceCode || context.getSourceCode();
|
|
9
|
+
const { parent } = problem.node ?? sourceCode.getNodeByRangeIndex(sourceCode.getIndexFromLoc(problem.loc.start));
|
|
10
|
+
return parent ? /^Import(|Default|Namespace)Specifier$/.test(parent.type) == isImport ? Object.assign(problem, addFixer?.(parent, sourceCode)) : false : isImport ? false : problem;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
var unusedVarsPredicate = makePredicate(false);
|
|
14
|
+
var unusedImportsPredicate = makePredicate(true, (parent, sourceCode) => ({ fix(fixer) {
|
|
15
|
+
const grandParent = parent.parent;
|
|
16
|
+
if (!grandParent) return null;
|
|
17
|
+
if (grandParent.specifiers.length === 1) {
|
|
18
|
+
const nextToken = sourceCode.getTokenAfter(grandParent, includeCommentsFilter);
|
|
19
|
+
const newLinesBetween = nextToken ? nextToken.loc.start.line - grandParent.loc.start.line : 0;
|
|
20
|
+
const endOfReplaceRange = nextToken ? nextToken.range[0] : grandParent.range[1];
|
|
21
|
+
const count = Math.max(0, newLinesBetween - 1);
|
|
22
|
+
return [fixer.remove(grandParent), fixer.replaceTextRange([grandParent.range[1], endOfReplaceRange], "\n".repeat(count))];
|
|
23
|
+
}
|
|
24
|
+
if (parent !== grandParent.specifiers[grandParent.specifiers.length - 1]) {
|
|
25
|
+
const comma = sourceCode.getTokenAfter(parent, commaFilter);
|
|
26
|
+
const prevNode = sourceCode.getTokenBefore(parent);
|
|
27
|
+
return [
|
|
28
|
+
fixer.removeRange([prevNode.range[1], parent.range[0]]),
|
|
29
|
+
fixer.remove(parent),
|
|
30
|
+
fixer.remove(comma)
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
if (grandParent.specifiers.filter((specifier) => specifier.type === "ImportSpecifier").length === 1) {
|
|
34
|
+
const start = sourceCode.getTokenBefore(parent, commaFilter);
|
|
35
|
+
const end = sourceCode.getTokenAfter(parent, { filter: (token) => token.value === "}" });
|
|
36
|
+
return fixer.removeRange([start.range[0], end.range[1]]);
|
|
37
|
+
}
|
|
38
|
+
return fixer.removeRange([sourceCode.getTokenBefore(parent, commaFilter).range[0], parent.range[1]]);
|
|
39
|
+
} }));
|
|
40
|
+
function createRuleWithPredicate(name, baseRule, predicate) {
|
|
41
|
+
return {
|
|
42
|
+
...baseRule,
|
|
43
|
+
meta: {
|
|
44
|
+
...baseRule.meta,
|
|
45
|
+
fixable: "code",
|
|
46
|
+
docs: {
|
|
47
|
+
...baseRule.meta?.docs,
|
|
48
|
+
url: `https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/${name}.md`
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
create(context) {
|
|
52
|
+
return baseRule.create(Object.create(context, { report: {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
value(problem) {
|
|
55
|
+
const result = predicate(problem, context);
|
|
56
|
+
if (result) context.report(result);
|
|
57
|
+
}
|
|
58
|
+
} }));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
var rule;
|
|
63
|
+
var require2 = createRequire(import.meta.url);
|
|
64
|
+
function getBaseRule() {
|
|
65
|
+
if (!rule) rule = getRuleFromTSLintPlugin() ?? getRuleFromTSLint() ?? getESLintBaseRule();
|
|
66
|
+
return rule;
|
|
67
|
+
}
|
|
68
|
+
function getRuleFromTSLintPlugin() {
|
|
69
|
+
try {
|
|
70
|
+
return require2("@typescript-eslint/eslint-plugin").rules["no-unused-vars"];
|
|
71
|
+
} catch (_) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function getRuleFromTSLint() {
|
|
76
|
+
try {
|
|
77
|
+
return require2("typescript-eslint").plugin.rules["no-unused-vars"];
|
|
78
|
+
} catch (_) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function getESLintBaseRule() {
|
|
83
|
+
return new (require2("eslint")).Linter({ configType: "eslintrc" }).getRules().get("no-unused-vars");
|
|
84
|
+
}
|
|
85
|
+
var no_unused_vars_default = createRuleWithPredicate("no-unused-vars", getBaseRule(), unusedVarsPredicate);
|
|
86
|
+
var no_unused_imports_default = createRuleWithPredicate("no-unused-imports", getBaseRule(), unusedImportsPredicate);
|
|
87
|
+
var index_default = {
|
|
88
|
+
meta: { name: "unused-imports" },
|
|
89
|
+
rules: {
|
|
90
|
+
"no-unused-vars": no_unused_vars_default,
|
|
91
|
+
"no-unused-imports": no_unused_imports_default
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
//#endregion
|
|
96
|
+
export { index_default as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Options, Options as PrettierOptions } from "prettier";
|
|
2
2
|
import { FlatConfigComposer } from "eslint-flat-config-utils";
|
|
3
3
|
import { FlatConfig } from "@eslint/compat";
|
|
4
|
+
import { Linter } from "eslint";
|
|
4
5
|
import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
|
|
5
6
|
import { ParserOptions } from "@typescript-eslint/parser";
|
|
6
7
|
import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
|
|
7
8
|
import { ESLintReactSettings } from "@eslint-react/shared";
|
|
8
|
-
import { Linter } from "eslint";
|
|
9
9
|
|
|
10
10
|
//#region src/typegen.d.ts
|
|
11
11
|
interface RuleOptions {
|
|
@@ -7353,6 +7353,16 @@ interface RuleOptions {
|
|
|
7353
7353
|
* @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/throw-new-error.md
|
|
7354
7354
|
*/
|
|
7355
7355
|
'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
|
|
7356
|
+
/**
|
|
7357
|
+
* Disallow unused variables
|
|
7358
|
+
* @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md
|
|
7359
|
+
*/
|
|
7360
|
+
'unused-imports/no-unused-imports'?: Linter.RuleEntry<UnusedImportsNoUnusedImports>;
|
|
7361
|
+
/**
|
|
7362
|
+
* Disallow unused variables
|
|
7363
|
+
* @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md
|
|
7364
|
+
*/
|
|
7365
|
+
'unused-imports/no-unused-vars'?: Linter.RuleEntry<UnusedImportsNoUnusedVars>;
|
|
7356
7366
|
/**
|
|
7357
7367
|
* Require calls to `isNaN()` when checking for `NaN`
|
|
7358
7368
|
* @see https://eslint.org/docs/latest/rules/use-isnan
|
|
@@ -14846,6 +14856,32 @@ type UnicornTemplateIndent = [] | [{
|
|
|
14846
14856
|
selectors?: string[];
|
|
14847
14857
|
comments?: string[];
|
|
14848
14858
|
}];
|
|
14859
|
+
// ----- unused-imports/no-unused-imports -----
|
|
14860
|
+
type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
|
|
14861
|
+
args?: ("all" | "after-used" | "none");
|
|
14862
|
+
argsIgnorePattern?: string;
|
|
14863
|
+
caughtErrors?: ("all" | "none");
|
|
14864
|
+
caughtErrorsIgnorePattern?: string;
|
|
14865
|
+
destructuredArrayIgnorePattern?: string;
|
|
14866
|
+
ignoreClassWithStaticInitBlock?: boolean;
|
|
14867
|
+
ignoreRestSiblings?: boolean;
|
|
14868
|
+
reportUsedIgnorePattern?: boolean;
|
|
14869
|
+
vars?: ("all" | "local");
|
|
14870
|
+
varsIgnorePattern?: string;
|
|
14871
|
+
})];
|
|
14872
|
+
// ----- unused-imports/no-unused-vars -----
|
|
14873
|
+
type UnusedImportsNoUnusedVars = [] | [(("all" | "local") | {
|
|
14874
|
+
args?: ("all" | "after-used" | "none");
|
|
14875
|
+
argsIgnorePattern?: string;
|
|
14876
|
+
caughtErrors?: ("all" | "none");
|
|
14877
|
+
caughtErrorsIgnorePattern?: string;
|
|
14878
|
+
destructuredArrayIgnorePattern?: string;
|
|
14879
|
+
ignoreClassWithStaticInitBlock?: boolean;
|
|
14880
|
+
ignoreRestSiblings?: boolean;
|
|
14881
|
+
reportUsedIgnorePattern?: boolean;
|
|
14882
|
+
vars?: ("all" | "local");
|
|
14883
|
+
varsIgnorePattern?: string;
|
|
14884
|
+
})];
|
|
14849
14885
|
// ----- use-isnan -----
|
|
14850
14886
|
type UseIsnan = [] | [{
|
|
14851
14887
|
enforceForSwitchCase?: boolean;
|
|
@@ -15078,7 +15114,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
15078
15114
|
onlyEquality?: boolean;
|
|
15079
15115
|
}];
|
|
15080
15116
|
// Names of all the configs
|
|
15081
|
-
type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
|
|
15117
|
+
type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/stylistic/ts' | 'isentinel/stylistic/js' | 'isentinel/stylistic/markdown-code' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
|
|
15082
15118
|
//#endregion
|
|
15083
15119
|
//#region src/types.d.ts
|
|
15084
15120
|
type Awaitable<T> = Promise<T> | T;
|
|
@@ -15324,7 +15360,16 @@ interface OptionsTestFramework {
|
|
|
15324
15360
|
/** Enable Vitest support. */
|
|
15325
15361
|
vitest?: boolean;
|
|
15326
15362
|
}
|
|
15327
|
-
type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptWithTypes);
|
|
15363
|
+
type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptErasableOnly & OptionsTypeScriptWithTypes);
|
|
15364
|
+
interface OptionsTypeScriptErasableOnly {
|
|
15365
|
+
/**
|
|
15366
|
+
* Enable erasable syntax only rules.
|
|
15367
|
+
*
|
|
15368
|
+
* @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only
|
|
15369
|
+
* @default false
|
|
15370
|
+
*/
|
|
15371
|
+
erasableOnly?: boolean;
|
|
15372
|
+
}
|
|
15328
15373
|
interface OptionsTypeScriptParserOptions {
|
|
15329
15374
|
/**
|
|
15330
15375
|
* Glob patterns for files that should be type aware.
|
|
@@ -15428,7 +15473,7 @@ declare function ignores(userIgnores?: Array<string>): Promise<Array<TypedFlatCo
|
|
|
15428
15473
|
declare function imports(options?: OptionsProjectType & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
15429
15474
|
//#endregion
|
|
15430
15475
|
//#region src/configs/javascript.d.ts
|
|
15431
|
-
declare function javascript(options?: OptionsIsInEditor & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
15476
|
+
declare function javascript(options?: OptionsIsInEditor & OptionsOverrides & OptionsRoblox & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
15432
15477
|
//#endregion
|
|
15433
15478
|
//#region src/configs/jsdoc.d.ts
|
|
15434
15479
|
declare function jsdoc(options?: JsDocOptions & OptionsProjectType & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
@@ -15512,7 +15557,7 @@ declare function stylistic(options?: StylisticConfig, prettierOptions?: Prettier
|
|
|
15512
15557
|
declare function toml(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
15513
15558
|
//#endregion
|
|
15514
15559
|
//#region src/configs/typescript.d.ts
|
|
15515
|
-
declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
|
|
15560
|
+
declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
|
|
15516
15561
|
//#endregion
|
|
15517
15562
|
//#region src/configs/unicorn.d.ts
|
|
15518
15563
|
declare function unicorn(options?: OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
|
|
@@ -15525,6 +15570,7 @@ declare const defaultPluginRenaming: {
|
|
|
15525
15570
|
"@eslint-react": string;
|
|
15526
15571
|
"@eslint-react/hooks-extra": string;
|
|
15527
15572
|
"@eslint-react/naming-convention": string;
|
|
15573
|
+
"@isentinel/eslint-plugin-comment-length": string;
|
|
15528
15574
|
"@stylistic": string;
|
|
15529
15575
|
"@typescript-eslint": string;
|
|
15530
15576
|
"arrow-return-style-x": string;
|
|
@@ -15569,6 +15615,7 @@ declare const GLOB_HTML = "**/*.htm?(l)";
|
|
|
15569
15615
|
declare const GLOB_XML = "**/*.xml";
|
|
15570
15616
|
declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
|
|
15571
15617
|
declare const GLOB_TESTS: string[];
|
|
15618
|
+
declare const GLOB_BUILD_TOOLS: string[];
|
|
15572
15619
|
declare const GLOB_ALL_SRC: string[];
|
|
15573
15620
|
declare const GLOB_EXCLUDE: string[];
|
|
15574
15621
|
//#endregion
|
|
@@ -15704,4 +15751,4 @@ declare function resolveWithDefaults<T>(value: boolean | T | undefined, defaults
|
|
|
15704
15751
|
*/
|
|
15705
15752
|
declare function shouldEnableFeature<T extends Record<string, any>>(options: boolean | T | undefined, key: keyof T, defaultValue?: boolean): boolean;
|
|
15706
15753
|
//#endregion
|
|
15707
|
-
export { Awaitable, type ConfigNames, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };
|
|
15754
|
+
export { Awaitable, type ConfigNames, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };
|