microsoft / microsoft/TypeScript

Add native-preview API for capturing .d.ts emit output

Offen
#63,843 3 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @andrewbranch Auf GitHub ansehen
API Request
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

Hey folks, I’ve been experimenting with the native-preview JS API for TS-go API mode, and I’m getting a lot of value from the virtual filesystem callbacks, especially overriding `readFile` for typechecking.

I’m curious whether there are plans to expose declaration emit through this API as well.

Today, as far as I can tell, the JS API can ask for declaration diagnostics, and the CLI can emit `.d.ts` files, but there does not seem to be an API-mode equivalent that lets a JS caller capture emitted `.d.ts` contents while still using the virtual filesystem callbacks.

The use case is an orchestration layer that already supplies source contents through `readFile` callbacks. I want to extend this system to capture generated declaration text for storage/caching without writing to the real filesystem.

Concretely, I’m wondering whether an API roughly like this would be in scope:

```ts
const emittedFiles = new Map();

const api = new API({
fs: {
readFile: (filePath) => {
// Optionally provide source contents from a virtual FS.
},
writeFile: (filePath, content) => {
emittedFiles.set(filePath, content);
},
},
});

await api.emit({
project: "/path/to/tsconfig.json",
fileName: "foo.ts", // optional: omit for whole project
emitOnly: "dts",
compilerOptions: {
declaration: true,
emitDeclarationOnly: true,
noCheck: true,
declarationMap: false,
},
});

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.