markdown-to-jsx
markdown-to-jsx copied to clipboard
Cannot access ambient const enums when 'isolatedModules' is enabled.
You currently cannot use RuleType
in any conditions if you have isolatedModules
enabled.
Hmm, what's the fix? I don't use isolatedModules
in the tsconfig.json
for this library
Hi there,
I'm also encountering this issue, both in my source code when e.g. checking the RuleType
of a given node:
Cannot access ambient const enums when 'isolatedModules' is enabled. ts(2748)
But more importantly when running tests with Jest, tests of code involving RuleType
fail with the following error:
TypeError: Cannot read properties of undefined (reading 'htmlBlock') Jest
From what I could gather, the official recommendation from TypeScript is to completely avoid the use of const enums, including publishing ambient const enums: https://blog.beraliv.dev/2022-09-10-with-or-without-enums#ambient-const-enum-pitfalls.
Perhaps it would be worth considering converting RuleType to a simple object instead of an enum?
Thanks for this library, it's really great that it's so small!
Perhaps it would be worth considering converting RuleType to a simple object instead of an enum?
Yeah, I think that's the way to go. Would you be interested in submitting a PR? Have a bunch of life stuff going on atm so not sure when I will be able to work on this.
Hello @quantizor, sure I can take a look, also quite busy but I think it could be worth it! I'll try to tackle it in the coming weeks and keep you updated on my progress.
Hi there @quantizor, sorry for the long wait, but I finally had some time to look into refactoring the const enum
for the RuleType
into an object. I created a PR here : https://github.com/quantizor/markdown-to-jsx/pull/594
It would be great if you could have a look, the changes are fairly minor and should not impact the usage of the library at all.
Let me know what you think, I hope this approach makes sense and can make the library easier to integrate with different bundling setups.