Skip to content

Expose resolvedModules property of SourceFile #33994

Open
@suguanYang

Description

@suguanYang

TypeScript Version: 3.6.4

Code

import * as ts from 'typescript'

function createCompilerHost(): ts.CompilerHost {
  function fileExists(fileName: string): boolean {
    return ts.sys.fileExists(fileName)
  }

  function readFile(fileName: string): string | undefined {
    return ts.sys.readFile(fileName)
  }

  function getSourceFile(
    fileName: string,
    languageVersion: ts.ScriptTarget,
  ) {
    const sourceText = ts.sys.readFile(fileName)
    return sourceText !== undefined
      ? ts.createSourceFile(fileName, sourceText, languageVersion)
      : undefined
  }

  function resolveModuleNames(moduleNames) {
    return moduleNames.map(() => undefined)
  }

  return {
    getSourceFile,
    getDefaultLibFileName: () => 'lib.d.ts',
    writeFile: (fileName, content) => ts.sys.writeFile(fileName, content),
    getCurrentDirectory: () => ts.sys.getCurrentDirectory(),
    getDirectories: path => ts.sys.getDirectories(path),
    getCanonicalFileName: fileName =>
      ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(),
    getNewLine: () => ts.sys.newLine,
    useCaseSensitiveFileNames: () => ts.sys.useCaseSensitiveFileNames,
    fileExists,
    readFile,
    resolveModuleNames,
  }

}

const options = {
  module: ts.ModuleKind.ES2015,
  target: ts.ScriptTarget.ES5,
}
const host = createCompilerHost()
const sourceFiles = ts.createProgram(['./test.ts'], options, host).getSourceFiles()
const matchsFile = sourceFiles
  .filter(s => {
    return s.resolvedModules.has('typescript')
  })

Expected behavior:
Property 'resolvedModules' should exist on type 'SourceFile'

Actual behavior:
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIRelates to the public API for TypeScriptAwaiting More FeedbackThis means we'd like to hear from more people who would be helped by this featureSuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions