Skip to content

Commit ab5c6d5

Browse files
committed
Move cactbot eslint plugin to separate file
1 parent c395418 commit ab5c6d5

2 files changed

Lines changed: 35 additions & 22 deletions

File tree

eslint.config.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
import js from '@eslint/js';
22
import stylisticPlugin from '@stylistic/eslint-plugin';
33
import { defineConfig } from 'eslint/config';
4-
import importPlugin, { flatConfigs as importPluginConfig } from 'eslint-plugin-import-x';
4+
import { flatConfigs as importPluginConfig } from 'eslint-plugin-import-x';
55
import preferArrowFunctionsPlugin from 'eslint-plugin-prefer-arrow-functions';
66
import unicornPlugin from 'eslint-plugin-unicorn';
77
import globals from 'globals';
88
import tseslint from 'typescript-eslint';
99

10-
import cactbotLocaleOrder from './eslint/cactbot-locale-order';
11-
import cactbotOutputStrings from './eslint/cactbot-output-strings';
12-
import cactbotPartyMemberPropertyAccess from './eslint/cactbot-party-member-property-access';
13-
import cactbotResponseDefaultSeverities from './eslint/cactbot-response-default-severities';
14-
import cactbotTimelineTriggers from './eslint/cactbot-timeline-triggers';
15-
import cactbotTriggerPropertyOrder from './eslint/cactbot-trigger-property-order';
16-
import cactbotTriggersetPropertyOrder from './eslint/cactbot-triggerset-property-order';
10+
import cactbotLintPlugin from './eslint/plugin';
1711

1812
type Config = ReturnType<typeof defineConfig>[number];
1913

@@ -120,20 +114,6 @@ const fixedGoogleConfig: Config = {
120114
},
121115
};
122116

123-
// @TODO: Move this to a separate file in eslint folder, convert all these rules to typescript
124-
type RuleModule = (typeof importPlugin.rules)[string];
125-
const cactbotLintPlugin = {
126-
rules: {
127-
'locale-order': cactbotLocaleOrder as unknown as RuleModule,
128-
'output-strings': cactbotOutputStrings as unknown as RuleModule,
129-
'party-member-property-access': cactbotPartyMemberPropertyAccess as unknown as RuleModule,
130-
'response-default-severities': cactbotResponseDefaultSeverities as unknown as RuleModule,
131-
'timeline-triggers': cactbotTimelineTriggers as unknown as RuleModule,
132-
'trigger-property-order': cactbotTriggerPropertyOrder as unknown as RuleModule,
133-
'triggerset-property-order': cactbotTriggersetPropertyOrder as unknown as RuleModule,
134-
},
135-
};
136-
137117
// General rules for all files.
138118
const rules: Config['rules'] = {
139119
'arrow-spacing': [

eslint/plugin.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { RuleDefinition } from '@eslint/core';
2+
import { ESLint } from 'eslint';
3+
4+
import cactbotLocaleOrder from './cactbot-locale-order';
5+
import cactbotOutputStrings from './cactbot-output-strings';
6+
import cactbotPartyMemberPropertyAccess from './cactbot-party-member-property-access';
7+
import cactbotResponseDefaultSeverities from './cactbot-response-default-severities';
8+
import cactbotTimelineTriggers from './cactbot-timeline-triggers';
9+
import cactbotTriggerPropertyOrder from './cactbot-trigger-property-order';
10+
import cactbotTriggersetPropertyOrder from './cactbot-triggerset-property-order';
11+
12+
const lintRules: Record<string, RuleDefinition> = {
13+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
14+
'locale-order': cactbotLocaleOrder,
15+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
16+
'output-strings': cactbotOutputStrings,
17+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
18+
'party-member-property-access': cactbotPartyMemberPropertyAccess,
19+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
20+
'response-default-severities': cactbotResponseDefaultSeverities,
21+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
22+
'timeline-triggers': cactbotTimelineTriggers,
23+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
24+
'trigger-property-order': cactbotTriggerPropertyOrder,
25+
// @ts-expect-error TSESLint and ESLint rule types are structurally incompatible
26+
'triggerset-property-order': cactbotTriggersetPropertyOrder,
27+
};
28+
29+
const plugin: ESLint.Plugin = {
30+
rules: lintRules,
31+
};
32+
33+
export default plugin;

0 commit comments

Comments
 (0)