diff --git a/.github/generated/ast_changes_watch_list.yml b/.github/generated/ast_changes_watch_list.yml index 73b1083625d71..7ce02d990a698 100644 --- a/.github/generated/ast_changes_watch_list.yml +++ b/.github/generated/ast_changes_watch_list.yml @@ -5,7 +5,7 @@ src: - '.github/generated/ast_changes_watch_list.yml' - 'apps/oxlint/src-js/generated/constants.ts' - 'apps/oxlint/src-js/generated/deserialize.js' - - 'apps/oxlint/src-js/generated/keys.js' + - 'apps/oxlint/src-js/generated/keys.ts' - 'apps/oxlint/src-js/generated/type_ids.ts' - 'apps/oxlint/src-js/generated/types.d.ts' - 'apps/oxlint/src-js/generated/visitor.d.ts' diff --git a/apps/oxlint/scripts/build.js b/apps/oxlint/scripts/build.js index 1d4bb04ceeffa..1010d91322acd 100755 --- a/apps/oxlint/scripts/build.js +++ b/apps/oxlint/scripts/build.js @@ -33,7 +33,6 @@ const parserFilePaths = [ 'generated/lazy/type_ids.js', 'generated/lazy/walk.js', 'generated/deserialize/ts_range_loc_parent_no_parens.js', - 'generated/visit/keys.js', ]; for (const parserFilePath of parserFilePaths) { @@ -44,7 +43,7 @@ for (const parserFilePath of parserFilePaths) { // Copy files from `src-js/generated` to `dist/generated` console.log('Copying generated files...'); -const generatedFilePaths = ['deserialize.js', 'keys.js']; +const generatedFilePaths = ['deserialize.js']; for (const filePath of generatedFilePaths) { copyFile(join(oxlintDirPath, 'src-js/generated', filePath), join(distDirPath, 'generated', filePath)); } diff --git a/apps/oxlint/src-js/generated/keys.js b/apps/oxlint/src-js/generated/keys.ts similarity index 100% rename from apps/oxlint/src-js/generated/keys.js rename to apps/oxlint/src-js/generated/keys.ts diff --git a/apps/oxlint/src-js/plugins/source_code.ts b/apps/oxlint/src-js/plugins/source_code.ts index 0ffad9f119899..49a2d29e6facb 100644 --- a/apps/oxlint/src-js/plugins/source_code.ts +++ b/apps/oxlint/src-js/plugins/source_code.ts @@ -1,4 +1,3 @@ -import { createRequire } from 'node:module'; import { DATA_POINTER_POS_32, SOURCE_LEN_OFFSET } from '../generated/constants.js'; // We use the deserializer which removes `ParenthesizedExpression`s from AST, @@ -6,6 +5,7 @@ import { DATA_POINTER_POS_32, SOURCE_LEN_OFFSET } from '../generated/constants.j // @ts-expect-error we need to generate `.d.ts` file for this module import { deserializeProgramOnly } from '../../dist/generated/deserialize.js'; +import visitorKeys from '../generated/keys.js'; import { getLineColumnFromOffset, getNodeLoc, @@ -19,8 +19,6 @@ import type { Program } from '../generated/types.d.ts'; import type { Scope, ScopeManager, Variable } from './scope.ts'; import type { BufferWithArrays, Comment, Node, NodeOrToken, Ranged, Token } from './types.ts'; -const require = createRequire(import.meta.url); - const { max } = Math; // Text decoder, for decoding source text from buffer @@ -38,9 +36,6 @@ export let sourceText: string | null = null; let sourceByteLen: number = 0; export let ast: Program | null = null; -// Lazily populated when `SOURCE_CODE.visitorKeys` is accessed. -let visitorKeys: { [key: string]: string[] } | null = null; - /** * Set up source for the file about to be linted. * @param bufferInput - Buffer containing AST @@ -120,8 +115,6 @@ export const SOURCE_CODE = Object.freeze({ // Get visitor keys to traverse this AST. get visitorKeys(): { [key: string]: string[] } { - // This is the path relative to `plugins.js` file in `dist` directory - if (visitorKeys === null) visitorKeys = require('./generated/keys.js').default; return visitorKeys; }, diff --git a/tasks/ast_tools/src/generators/estree_visit.rs b/tasks/ast_tools/src/generators/estree_visit.rs index 2105f03b7dbe4..e839cfcf83466 100644 --- a/tasks/ast_tools/src/generators/estree_visit.rs +++ b/tasks/ast_tools/src/generators/estree_visit.rs @@ -74,7 +74,8 @@ impl Generator for ESTreeVisitGenerator { code: walk, }, Output::Javascript { - path: format!("{OXLINT_APP_PATH}/src-js/generated/keys.js"), + // This file is also valid as TS + path: format!("{OXLINT_APP_PATH}/src-js/generated/keys.ts"), code: visitor_keys, }, Output::Javascript {