We tell people to not fall for pitfalls but it's hard. Cyn just wasted an unknown number of hours because tsc autocompleted a Flux store import and created a duplicate copy of it. We should look into how ESLint plugins work and use one in here & in the sample extension.
Some ideas:
directive to mark a file as never to be imported directly (this one is easy)
enforcing the moonlight env globals to be used only in the right entrypoints (probably impossible)
checks for using an extension or mapped module without it marked as a dependency (would require lots of AST bullshit)
checks for using Spacepack in a Webpack module without the needs declared (probably very hard if not impossible)
We tell people to not fall for pitfalls but it's hard. Cyn just wasted an unknown number of hours because tsc autocompleted a Flux store import and created a duplicate copy of it. We should look into how ESLint plugins work and use one in here & in the sample extension.
Some ideas: