inlined twoslash `filename` tag doesnt seem to be passed through to included snippets
oveddan opened this issue · 0 comments
You can see a full example of this reprod in this repository
Given I have two snippets:
docs/snippets/config.ts
:
import { zora } from "viem/chains";
import { http, createPublicClient } from "viem";
export const publicClient = createPublicClient({
// this will determine which chain to interact with
chain: zora,
transport: http(),
});
and another snippet that imports that code at docs/snippets/example.ts
:
import { publicClient } from "./config";
console.log(publicClient);
I'm attempting to import both with vocs, and use twoslash but run into issues.
Ideally I can have the markdown look like this:
But this results in a twoslash error:
Cannot find module './config' or its corresponding type declarations.
If I try to add twoslash include instructions to example.ts
like:
// @filename: config.ts
// [!include ~/snippets/config.ts]
// @filename: example.ts
// ---cut---
import { publicClient } from "./config";
console.log(publicClient);
I get an error:
example.ts
[2305] 107 - Module '"./config"' has no exported member 'publicClient'.
If I inline that code, the issue goes away:
It seems like the only way to get the issue to go away while being able to import the file is explicitly setting the external files inline, like:
Would it be possible to pass through the included files from the codegroup to included files?
Or is there another recommended approach for including snippets that include other snippets?