Skip to content

Document how to use tsconfig-related APIs in the wikiΒ #56050

Open
@thepassle

Description

@thepassle

πŸ”Ž Search Terms

"createProgram" "compiler" "compiler api" "js files createProgram" "js compiler api" "js files compiler" "programmatic compiler js"

πŸ•— Version & Regression Information

Give my project:

my-project/
β”œβ”€ src/
β”‚  β”œβ”€ index.js
β”œβ”€ tsconfig.json

The following code:

import ts from 'typescript';

let tsConfigFile = ts.findConfigFile(
  process.cwd(),
  ts.sys.fileExists,
  "tsconfig.json"
);
const { config } = ts.readConfigFile(tsConfigFile, ts.sys.readFile);

const program = ts.createProgram(['src/index.js'], config);

program.getSourceFiles().forEach((sf) => {
  console.log(1, sf.fileName);
});

Where tsconfig.json looks like:

{
  "compilerOptions": {
    "strict": true,
    "outDir": "./dist-types",
    "target": "ESNext",
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "NodeNext",
    "module": "NodeNext",
    "lib": ["ESNext", "DOM"],
    "declaration": true,
    "emitDeclarationOnly": true,
    "allowJs": true,
    "checkJs": true,
    "skipLibCheck": true,
    "verbatimModuleSyntax": true
  },
  "include": [
    "src/index.js"
  ],
  "exclude": ["node_modules"],
}

Outputs:

1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.es5.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.dom.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.scripthost.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.decorators.d.ts
1 /Users/au87xu/cem-typescript-issue/node_modules/typescript/lib/lib.decorators.legacy.d.ts

but src/index.js is missing from the source files. I feel like this did work in the past, or at least should work on regular js files as well.

⏯ Playground Link

n/a

πŸ’» Code

// Your code here

πŸ™ Actual behavior

ts.createProgram does not include src/index.js

πŸ™‚ Expected behavior

ts.createProgram does include src/index.js

Additional information about the issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    DocsThe issue relates to how you learn TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions