Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Resolve NodeNext TypeScript `.js` imports to TypeScript source files

Abierto Apto para principiantes
#100 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, typescript

Línea de trabajo

Empieza en CoderMind/scripts/rpg/dep_graph.py, en los rangos de resolución del resolver y de invoke-resolution citados en la issue, y después lee el test de invoke de TypeScript sin extensión en CoderMind/tests/test_multilingual_dep_graph.py. Añade un test de estilo NodeNext usando el repro proporcionado de a.ts y b.ts; se considera terminado cuando el import .js se resuelve a b.ts y están presentes tanto la arista de importación entre archivos como la arista de invoke.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

In a NodeNext/ESM TypeScript repo, relative imports such as import { b } from "./b.js" (the TypeScript-mandated form) remain unresolved, so the graph misses cross-file import and invoke edges. The resolver tries only the literal path when a specifier has an extension, so ./b.js is never tried as b.ts (resolver: https://github.com/microsoft/RPG-ZeroRepo/blob/f0947723cc07fe10fb0d6b14c8aa837847f57b0d/CoderMind/scripts/rpg/dep_graph.py#L2154-L2172 and invoke resolution: https://github.com/microsoft/RPG-ZeroRepo/blob/f0947723cc07fe10fb0d6b14c8aa837847f57b0d/CoderMind/scripts/rpg/dep_graph.py#L2225-L2239).

Minimal resolver-derived repro (not run):

repo/
  tsconfig.json
  src/a.ts
  src/b.ts

tsconfig.json: {"compilerOptions":{"module":"NodeNext","moduleResolution":"NodeNext"}}
src/a.ts: import { b } from "./b.js"; export function a() { return b(); }
src/b.ts: export function b() { return 1; }

Expected: import and invoke edges from src/a.ts to src/b.ts and from src/a.ts:a to src/b.ts:b. Actual: unresolved import and no cross-file invoke edge, as derived from reading the resolver, not from a run.

Suggested change:

         if extension:
             candidates.append(raw_path)
+            if extension in {".js", ".jsx", ".mjs", ".cjs"}:
+                stem = raw_path[:-len(extension)]
+                candidates.extend(
+                    f"{stem}{ext}" for ext in (".ts", ".tsx", ".mts", ".cts")
+                )

Please add a NodeNext-style test next to the existing extensionless TypeScript invoke test (https://github.com/microsoft/RPG-ZeroRepo/blob/f0947723cc07fe10fb0d6b14c8aa837847f57b0d/CoderMind/tests/test_multilingual_dep_graph.py#L156-L199). The audit report counted 241 relative .js imports as unresolved in the inspected repo. I can open a PR with the small resolver fix and test if useful.

This issue was AI-generated at the human operator's direction and reviewed by the operator before submission.

Lenguaje dominante
Python
Estrellas
553
Forks
43
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/RPG-ZeroRepo

Todos los issues de microsoft/RPG-ZeroRepo

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.