Skip to content

Commit ac95e7d

Browse files
committed
refactor(linter/plugins): make properties of RuleDetails immutable (#15481)
Types refactor. Mark properties of `RuleDetails` which are immutable after construction with `readonly`.
1 parent c96ce29 commit ac95e7d

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

apps/oxlint/src-js/plugins/load.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,17 @@ interface RuleDetailsBase {
5252
}
5353

5454
interface CreateRuleDetails extends RuleDetailsBase {
55-
rule: CreateRule;
56-
visitor: null;
57-
beforeHook: null;
58-
afterHook: null;
55+
readonly rule: CreateRule;
56+
readonly visitor: null;
57+
readonly beforeHook: null;
58+
readonly afterHook: null;
5959
}
6060

6161
interface CreateOnceRuleDetails extends RuleDetailsBase {
62-
rule: CreateOnceRule;
63-
visitor: Visitor;
64-
beforeHook: BeforeHook | null;
65-
afterHook: AfterHook | null;
62+
readonly rule: CreateOnceRule;
63+
readonly visitor: Visitor;
64+
readonly beforeHook: BeforeHook | null;
65+
readonly afterHook: AfterHook | null;
6666
}
6767

6868
// Absolute paths of plugins which have been loaded
@@ -167,7 +167,7 @@ async function loadPluginImpl(path: string, packageName?: string): Promise<Plugi
167167
// Create `RuleDetails` object for rule.
168168
const ruleDetails: RuleDetails = {
169169
rule: rule as CreateRule, // Could also be `CreateOnceRule`, but just to satisfy type checker
170-
context: null, // Filled in below
170+
context: null as Readonly<Context>, // Filled in below
171171
isFixable,
172172
messages,
173173
ruleIndex: 0,
@@ -205,9 +205,9 @@ async function loadPluginImpl(path: string, packageName?: string): Promise<Plugi
205205
afterHook = null;
206206
}
207207

208-
(ruleDetails as CreateOnceRuleDetails).visitor = visitor;
209-
(ruleDetails as CreateOnceRuleDetails).beforeHook = beforeHook;
210-
(ruleDetails as CreateOnceRuleDetails).afterHook = afterHook;
208+
(ruleDetails as Writable<CreateOnceRuleDetails>).visitor = visitor;
209+
(ruleDetails as Writable<CreateOnceRuleDetails>).beforeHook = beforeHook;
210+
(ruleDetails as Writable<CreateOnceRuleDetails>).afterHook = afterHook;
211211
}
212212

213213
registeredRules.push(ruleDetails);

0 commit comments

Comments
 (0)