Skip to content

Commit abb690a

Browse files
committed
fix(napi/oxlint): call create with rule as this (#12536)
Call JS plugin rules' `create` methods with the rule object as `this` - to match ESLint's API.
1 parent 977d3ba commit abb690a

File tree

2 files changed

+26
-22
lines changed

2 files changed

+26
-22
lines changed

napi/oxlint2/src-js/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,9 @@ function lintFile([filePath, bufferId, buffer, ruleIds]) {
176176
initCompiledVisitor();
177177
for (let i = 0; i < ruleIds.length; i++) {
178178
const ruleId = ruleIds[i];
179-
const { rule: { create }, context } = registeredRules[ruleId];
179+
const { rule, context } = registeredRules[ruleId];
180180
setupContextForFile(context, i, filePath);
181-
const visitor = create(context);
181+
const visitor = rule.create(context);
182182
addVisitorToCompiled(visitor);
183183
}
184184
const needsVisit = finalizeCompiledVisitor();

napi/oxlint2/test/fixtures/context_properties/test_plugin/index.js

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,34 @@ const relativePath = sep === '/'
88
? path => path.slice(PARENT_DIR_PATH_LEN)
99
: path => path.slice(PARENT_DIR_PATH_LEN).replace(/\\/g, '/');
1010

11+
const rule = {
12+
create(context) {
13+
context.report({
14+
message: `id: ${context.id}`,
15+
node: SPAN,
16+
});
17+
18+
context.report({
19+
message: `filename: ${relativePath(context.filename)}`,
20+
node: SPAN,
21+
});
22+
23+
context.report({
24+
message: `physicalFilename: ${relativePath(context.physicalFilename)}`,
25+
node: SPAN,
26+
});
27+
28+
if (this !== rule) context.report({ message: 'this !== rule', node: SPAN });
29+
30+
return {};
31+
},
32+
};
33+
1134
export default {
1235
meta: {
1336
name: "context-plugin",
1437
},
1538
rules: {
16-
"log-context": {
17-
create(context) {
18-
context.report({
19-
message: `id: ${context.id}`,
20-
node: SPAN,
21-
});
22-
23-
context.report({
24-
message: `filename: ${relativePath(context.filename)}`,
25-
node: SPAN,
26-
});
27-
28-
context.report({
29-
message: `physicalFilename: ${relativePath(context.physicalFilename)}`,
30-
node: SPAN,
31-
});
32-
33-
return {};
34-
},
35-
},
39+
"log-context": rule,
3640
},
3741
};

0 commit comments

Comments
 (0)