microsoft / microsoft/TypeScript

Auto-imports don’t work in content-mappers without existing import

Open
#64,119 0 comments 0 reactions 1 assignee View on GitHub

@andrewbranch is already working on this.

Since Sep 1, 2026.

Domain: Content Mappers Needs Investigation
Dominant language
Go
Stars
111k
Forks
14.3k
Avg merge
2d 4h
Merged PRs (30d)
132

Description

### 🔎 Search Terms

`content-mapper`

### 🕗 Version & Regression Information

- I was unable to test this on prior versions because content mappers aren’t even released yet :)

### ⏯ Playground Link

n/a

### 💻 Code

https://github.com/remcohaszing/mdx-content-mapper/tree/auto-import-issue

Specifically, https://github.com/remcohaszing/mdx-content-mapper/commit/04037c2bd2d959adefd2d3f0b11a070139e5028d

### 🙁 Actual behavior

Automatic imports work, if the statement to insert it to is already present. However, if the import statement isn’t present yet, then TypeScript won’t generate the statement.

This works:

Image

This does not:

Image

### 🙂 Expected behavior

Automatic imports always work.

### Additional information about the issue

I tried to make this work by pushing an empty verbatim mapping to the start of the virtual content, like below. The virtual content may start with `'// @ts-check\n'`. In this case, the mapping is placed after that comment.

```js
let esm = checkMdx ? '// @ts-check\n' : ''
esmMappings.push([
0,
0,
esm.length,
0,
/** @satisfies {SpanMapKind.Verbatim} */ (0),
/** @satisfies {SpanMapFeature.AutoInsert} */ (131_072)
])
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.