Arpad Borsos
Arpad Borsos
A third option would be… Something that I explained today walking over our SymCache/SourceMapCache binary formats: How about there wouldn’t be any kind of validation/transformation when reading these (internal)offsets from...
The expanded output looks like this: ```rust fn lazy() -> impl Future { {} #[allow(clippy::suspicious_else_formatting)] { let __tracing_attr_span; let __tracing_attr_guard; if tracing::Level::INFO = { ::tracing_core::metadata::Metadata::new( "hybrid", "lazy_futures", tracing::Level::INFO, Some("playground\\lazy-futures\\src\\main.rs"), Some(23u32),...
I don’t think I have fully solved this, unless someone else has done so in the meantime.
I can’t think of anything, except increase the maximum length ;-) We have the same limitations in native, and there we reserve space for `256` frames.
It just truncates at the bottom and stops unwinding when it reaches the limit.
So, the problem seems to be this: https://github.com/dividab/tsconfig-paths/blob/6beaeaf43ffeab1499d1a03e090cac3dc7d96777/src/mapping-entry.ts#L37-L44 `tsconfig-paths` adds a catch-all rules, and runs its own path resolution algorithm, which apparently is much slower than the one of nodejs...
Thanks, will do :-)
just tried commenting out the code and can confirm that removing the match-all cuts the `fs.statSync` time from ~2s to ~500ms, which indeed solves half of the problem (the other...
> allow the original module resolver to be run first, and if it wasn't able to locate the module then run the internal ts-config-paths resolver? Hm, in our specific usecase,...
Since I didn’t want this to break anything, the *default* is to still enable the match-all rule. You have to explicitly disable it: https://github.com/dividab/tsconfig-paths#register