diff --git a/src/plugins/babel/babel.ts b/src/plugins/babel/babel.ts index 4c202ec0..1f3fc32c 100644 --- a/src/plugins/babel/babel.ts +++ b/src/plugins/babel/babel.ts @@ -1,7 +1,7 @@ import { PluginItem } from "@babel/core"; import * as t from "@babel/types"; import { transformWithPlugins } from "../../babel-utils.js"; -import bautifier from "babel-plugin-transform-beautifier"; +import beautifier from "babel-plugin-transform-beautifier"; const convertVoidToUndefined: PluginItem = { visitor: { diff --git a/src/plugins/local-llm-rename/visit-all-identifiers.ts b/src/plugins/local-llm-rename/visit-all-identifiers.ts index 3cfe6eee..2b21d0f4 100644 --- a/src/plugins/local-llm-rename/visit-all-identifiers.ts +++ b/src/plugins/local-llm-rename/visit-all-identifiers.ts @@ -10,59 +10,61 @@ const traverse: typeof babelTraverse.default.default = ( type Visitor = (name: string, scope: string) => Promise; -export async function visitAllIdentifiers( +export async function visitAllIdentifiers +( code: string, visitor: Visitor, contextWindowSize: number, - onProgress?: (percentageDone: number) => void -) { - const ast = await parseAsync(code, { sourceType: "unambiguous" }); - const renames = new Set(); - const visited = new Set(); - - if (!ast) { - throw new Error("Failed to parse code"); - } + onProgress?: (percentageDone: number) => void +) + { + const ast = await parseAsync(code, { sourceType: "unambiguous" }); + const renames = new Set(); + const visited = new Set(); + + if (!ast) { + throw new Error("Failed to parse code"); + } - const scopes = await findScopes(ast); - const numRenamesExpected = scopes.length; + const scopes = await findScopes(ast); + const numRenamesExpected = scopes.length; - for (const smallestScope of scopes) { - if (hasVisited(smallestScope, visited)) continue; + for (const smallestScope of scopes) { + if (hasVisited(smallestScope, visited)) continue; - const smallestScopeNode = smallestScope.node; - if (smallestScopeNode.type !== "Identifier") { - throw new Error("No identifiers found"); - } + const smallestScopeNode = smallestScope.node; + if (smallestScopeNode.type !== "Identifier") { + throw new Error("No identifiers found"); + } - const surroundingCode = await scopeToString( - smallestScope, - contextWindowSize - ); - const renamed = await visitor(smallestScopeNode.name, surroundingCode); - if (renamed !== smallestScopeNode.name) { - let safeRenamed = toIdentifier(renamed); - while ( - renames.has(safeRenamed) || - smallestScope.scope.hasBinding(safeRenamed) - ) { - safeRenamed = `_${safeRenamed}`; + const surroundingCode = await scopeToString( + smallestScope, + contextWindowSize + ); + const renamed = await visitor(smallestScopeNode.name, surroundingCode); + if (renamed !== smallestScopeNode.name) { + let safeRenamed = toIdentifier(renamed); + while ( + renames.has(safeRenamed) || + smallestScope.scope.hasBinding(safeRenamed) + ) { + safeRenamed = `_${safeRenamed}`; + } + renames.add(safeRenamed); + + smallestScope.scope.rename(smallestScopeNode.name, safeRenamed); } - renames.add(safeRenamed); + markVisited(smallestScope, smallestScopeNode.name, visited); - smallestScope.scope.rename(smallestScopeNode.name, safeRenamed); + onProgress?.(visited.size / numRenamesExpected); } - markVisited(smallestScope, smallestScopeNode.name, visited); - - onProgress?.(visited.size / numRenamesExpected); - } - onProgress?.(1); + onProgress?.(1); - const stringified = await transformFromAstAsync(ast); - if (stringified?.code == null) { - throw new Error("Failed to stringify code"); - } - return stringified.code; + const stringified = await transformFromAstAsync(ast); + if (stringified?.code == null) { + throw new Error("Failed to stringify code"); + } + return stringified.code; } function findScopes(ast: Node): NodePath[] {