javascript - TypeScript | Detektera om import är en katalog


Jag försöker skapa ett TypeScript-plugin (baserat på https://github.com/nvandamme/typescript-transformer-append-js-extension) som lägger till .js-ändelsen till en importerad/exporterad fil eller lägger till index.js till en importerad/exporterad katalog:

// Before
import hello from './world';
import { test } from './directory';

// After
import hello from './world.js';
import { test } from './directory/index.js';

Följande kod fungerar (endast) för importerade/exporterade filer:

import typescript from "typescript";

export default function transformer(_: typescript.Program) {
  return (transformationContext: typescript.TransformationContext) =>
    (sourceFile: typescript.SourceFile) => {
      function visitNode(node: typescript.Node): typescript.VisitResult<typescript.Node> {
        if (shouldMutateModuleSpecifier(node)) {
          const newModuleSpecifier = typescript.factory.createStringLiteral(
            `${node.moduleSpecifier.text}.js`,
          );

          if (typescript.isImportDeclaration(node)) {
            return typescript.factory.updateImportDeclaration(
              node,
              node.modifiers,
              node.importClause,
              newModuleSpecifier,
              undefined,
            );
          }

          if (typescript.isExportDeclaration(node)) {
            return typescript.factory.updateExportDeclaration(
              node,
              node.modifiers,
              false,
              node.exportClause,
              newModuleSpecifier,
              undefined,
            );
          }
        }

        return typescript.visitEachChild(node, visitNode, transformationContext);
      }

      return typescript.visitNode(sourceFile, visitNode);
    };
}

Jag vet inte hur man upptäcker om importdeklarationen är en katalog.
Finns det en inbyggd funktion, en nodes egenskap, eller finns det andra metoder som har denna kunskap?
Tack!