Skip to content

Commit 2948654

Browse files
committed
refactor(linter/plugins): do not lazy-load visitor keys
1 parent 88ec1bd commit 2948654

File tree

5 files changed

+5
-12
lines changed

5 files changed

+5
-12
lines changed

.github/generated/ast_changes_watch_list.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ src:
55
- '.github/generated/ast_changes_watch_list.yml'
66
- 'apps/oxlint/src-js/generated/constants.ts'
77
- 'apps/oxlint/src-js/generated/deserialize.js'
8-
- 'apps/oxlint/src-js/generated/keys.js'
8+
- 'apps/oxlint/src-js/generated/keys.ts'
99
- 'apps/oxlint/src-js/generated/type_ids.ts'
1010
- 'apps/oxlint/src-js/generated/types.d.ts'
1111
- 'apps/oxlint/src-js/generated/visitor.d.ts'

apps/oxlint/scripts/build.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ const parserFilePaths = [
3333
'generated/lazy/type_ids.js',
3434
'generated/lazy/walk.js',
3535
'generated/deserialize/ts_range_loc_parent_no_parens.js',
36-
'generated/visit/keys.js',
3736
];
3837
3938
for (const parserFilePath of parserFilePaths) {
@@ -44,7 +43,7 @@ for (const parserFilePath of parserFilePaths) {
4443
// Copy files from `src-js/generated` to `dist/generated`
4544
console.log('Copying generated files...');
4645

47-
const generatedFilePaths = ['deserialize.js', 'keys.js'];
46+
const generatedFilePaths = ['deserialize.js'];
4847
for (const filePath of generatedFilePaths) {
4948
copyFile(join(oxlintDirPath, 'src-js/generated', filePath), join(distDirPath, 'generated', filePath));
5049
}
File renamed without changes.

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { createRequire } from 'node:module';
21
import { DATA_POINTER_POS_32, SOURCE_LEN_OFFSET } from '../generated/constants.js';
32

43
// We use the deserializer which removes `ParenthesizedExpression`s from AST,
54
// and with `range`, `loc`, and `parent` properties on AST nodes, to match ESLint
65
// @ts-expect-error we need to generate `.d.ts` file for this module
76
import { deserializeProgramOnly } from '../../dist/generated/deserialize.js';
87

8+
import visitorKeys from '../generated/keys.js';
99
import {
1010
getLineColumnFromOffset,
1111
getNodeLoc,
@@ -19,8 +19,6 @@ import type { Program } from '../generated/types.d.ts';
1919
import type { Scope, ScopeManager, Variable } from './scope.ts';
2020
import type { BufferWithArrays, Comment, Node, NodeOrToken, Ranged, Token } from './types.ts';
2121

22-
const require = createRequire(import.meta.url);
23-
2422
const { max } = Math;
2523

2624
// Text decoder, for decoding source text from buffer
@@ -38,9 +36,6 @@ export let sourceText: string | null = null;
3836
let sourceByteLen: number = 0;
3937
export let ast: Program | null = null;
4038

41-
// Lazily populated when `SOURCE_CODE.visitorKeys` is accessed.
42-
let visitorKeys: { [key: string]: string[] } | null = null;
43-
4439
/**
4540
* Set up source for the file about to be linted.
4641
* @param bufferInput - Buffer containing AST
@@ -120,8 +115,6 @@ export const SOURCE_CODE = Object.freeze({
120115

121116
// Get visitor keys to traverse this AST.
122117
get visitorKeys(): { [key: string]: string[] } {
123-
// This is the path relative to `plugins.js` file in `dist` directory
124-
if (visitorKeys === null) visitorKeys = require('./generated/keys.js').default;
125118
return visitorKeys;
126119
},
127120

tasks/ast_tools/src/generators/estree_visit.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ impl Generator for ESTreeVisitGenerator {
7474
code: walk,
7575
},
7676
Output::Javascript {
77-
path: format!("{OXLINT_APP_PATH}/src-js/generated/keys.js"),
77+
// This file is also valid as TS
78+
path: format!("{OXLINT_APP_PATH}/src-js/generated/keys.ts"),
7879
code: visitor_keys,
7980
},
8081
Output::Javascript {

0 commit comments

Comments
 (0)