Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions packages/rslint-test-tools/rule-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
"status": "full",
"failing_case": []
},
{
"name": "array-callback-return",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "array-type",
"group": "@typescript-eslint",
Expand Down Expand Up @@ -87,6 +93,12 @@
"status": "full",
"failing_case": []
},
{
"name": "constructor-super",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "default-param-last",
"group": "@typescript-eslint",
Expand All @@ -99,24 +111,96 @@
"status": "full",
"failing_case": []
},
{
"name": "for-direction",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "getter-return",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-array-delete",
"group": "@typescript-eslint",
"status": "full",
"failing_case": []
},
{
"name": "no-async-promise-executor",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-await-in-loop",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-base-to-string",
"group": "@typescript-eslint",
"status": "full",
"failing_case": []
},
{
"name": "no-class-assign",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-compare-neg-zero",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-cond-assign",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-confusing-void-expression",
"group": "@typescript-eslint",
"status": "full",
"failing_case": []
},
{
"name": "no-const-assign",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-constant-binary-expression",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-constant-condition",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-constructor-return",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-debugger",
"group": "eslint",
"status": "partial-test",
"failing_case": []
},
{
"name": "no-duplicate-enum-values",
"group": "@typescript-eslint",
Expand Down
17 changes: 14 additions & 3 deletions scripts/gen-rule-manifest.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const path = require('path');

// Plugins root directory
const PLUGINS_DIR = path.join(__dirname, '../internal/plugins');
const CORE_RULES_DIR = path.join(__dirname, '../internal/rules');
const TEST_CONFIG_PATH = path.join(
__dirname,
'../packages/rslint-test-tools/rstest.config.mts',
Expand All @@ -18,6 +19,16 @@ const MANIFEST_PATH = path.join(
'../packages/rslint-test-tools/rule-manifest.json',
);

function getCoreRuleEntries() {
// Collect rule directories from internal/rules/*
if (!fs.existsSync(CORE_RULES_DIR)) return [];

return fs
.readdirSync(CORE_RULES_DIR, { withFileTypes: true })
.filter(d => d.isDirectory() && !d.name.startsWith('.'))
.map(d => ({ rule: d.name, group: 'eslint' }));
}

function getPluginRuleEntries() {
// Collect rule directories from internal/plugins/{plugin}/rules/*
if (!fs.existsSync(PLUGINS_DIR)) return [];
Expand Down Expand Up @@ -137,10 +148,10 @@ function getSkipCases(rule) {

function buildManifest() {
const included = getIncludedRules();
const pluginEntries = getPluginRuleEntries();
const ruleSet = new Set(pluginEntries.map(e => e.rule));
const ruleEntries = [...getPluginRuleEntries(), ...getCoreRuleEntries()];
const ruleSet = new Set(ruleEntries.map(e => e.rule));
const ruleToGroup = new Map();
for (const e of pluginEntries) ruleToGroup.set(e.rule, e.group);
for (const e of ruleEntries) ruleToGroup.set(e.rule, e.group);
const rules = Array.from(ruleSet)
.sort((a, b) => a.localeCompare(b))
.map(rule => {
Expand Down
Loading