`paperwork()` returns no dependencies for `.mts` and `.cts` files

Abierto Apto para principiantes
#167 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
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, node.js, typescript

Línea de trabajo

Empieza por rastrear cómo paperwork() deduce el tipo de archivo y cómo getDetective selecciona un parser para archivos .ts; compara esas rutas con .mts y .cts. Los ejemplos del issue reproducen las dependencias que faltan e incluyen los resultados esperados. Añade compatibilidad con esas extensiones y verifica que se detecten los imports .mts y .cts mostrados, mientras se mantiene intacto el comportamiento existente para .ts y .mjs.

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

Descripción

precinct.paperwork() returns [] for TypeScript files with the .mts or .cts extension, while the same content in a .ts file is parsed. Tools built on precinct (dependency-tree, madge) therefore see no dependencies in these files.

// a.mts (a.ts has the same content)
import { b } from "./b.mts";
export const a: number = b + 1;
// c.cts
const { b } = require("./b.cjs");
const c: number = b;
module.exports = { c };
// check.mjs
import { paperwork } from "precinct";
for (const f of ["a.ts", "a.mts", "c.cts", "d.mjs"]) console.log(f, paperwork(f, { includeCore: false }));

d.mjs contains import fs from "node:fs"; import x from "./x.js";.

$ node check.mjs
a.ts [ './b.mts' ]
a.mts []
c.cts []
d.mjs [ './x.js' ]

Expected: a.mts [ './b.mts' ] and c.cts [ './b.cjs' ].

With madge 8.0.0, madge("a.mts", { fileExtensions: ["mts", "ts"] }) gives {"a.mts":[]}, and a.ts gives {"a.ts":["b.mts"],"b.mts":[]}.

Tested with precinct 13.0.1 (also 12.3.2 as used by dependency-tree 11.5.0) and main (f9512ad), Node.js 26.13.0.

Cause: paperwork sets type to the extension without the dot (mts, cts), and getDetective has no case for these, so no detective runs. Mapping them to ts (or .cts with mixedImports) like .cjs is mapped to commonjs would fix it.

Credit: https://ucsbplse.github.io/

Lenguaje dominante
JavaScript
Estrellas
234
Forks
36
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 dependents/node-precinct

Todos los issues de dependents/node-precinct

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.