Skip to content

Commit 26435a1

Browse files
committed
perf(linter/plugins): small perf optimizations (#14420)
Follow-on after #14415 and #14416. Perf micro-optimizations.
1 parent b2de44f commit 26435a1

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { Fix, FixFn } from './fix.ts';
66
import type { SourceCode } from './source_code.ts';
77
import type { Location, Ranged } from './types.ts';
88

9-
const { hasOwn } = Object;
9+
const { hasOwn, keys: ObjectKeys } = Object;
1010

1111
// Diagnostic in form passed by user to `Context#report()`
1212
export type Diagnostic = DiagnosticWithNode | DiagnosticWithLoc | DiagnosticWithMessageId;
@@ -161,8 +161,7 @@ export class Context {
161161
// Resolve message from messageId if present
162162
let message: string;
163163
if (hasOwn(diagnostic, 'messageId')) {
164-
const diagWithMessageId = diagnostic as DiagnosticWithMessageId;
165-
message = resolveMessage(diagWithMessageId.messageId, internal);
164+
message = resolveMessage((diagnostic as DiagnosticWithMessageId).messageId, internal);
166165
} else {
167166
message = diagnostic.message;
168167
if (typeof message !== 'string') {
@@ -249,15 +248,14 @@ export class Context {
249248
*/
250249
function resolveMessage(messageId: string, internal: InternalContext): string {
251250
const { messages } = internal;
252-
253-
if (!messages) {
251+
if (messages === null) {
254252
throw new Error(`Cannot use messageId '${messageId}' - rule does not define any messages in meta.messages`);
255253
}
256254

257255
if (!hasOwn(messages, messageId)) {
258256
throw new Error(
259257
`Unknown messageId '${messageId}'. Available messages: ${
260-
Object.keys(messages).map((msg) => `'${msg}'`).join(', ')
258+
ObjectKeys(messages).map((msg) => `'${msg}'`).join(', ')
261259
}`,
262260
);
263261
}

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,10 @@ async function loadPluginImpl(path: string): Promise<PluginDetails> {
134134
}
135135

136136
// Extract messages for messageId support
137-
if (ruleMeta.messages != null) {
138-
if (typeof ruleMeta.messages !== 'object' || Array.isArray(ruleMeta.messages)) {
139-
throw new TypeError('Invalid `meta.messages` - must be an object');
140-
}
141-
messages = ruleMeta.messages;
137+
const inputMessages = ruleMeta.messages;
138+
if (inputMessages != null) {
139+
if (typeof inputMessages !== 'object') throw new TypeError('`meta.messages` must be an object if provided');
140+
messages = inputMessages;
142141
}
143142
}
144143

0 commit comments

Comments
 (0)