ts-node icon indicating copy to clipboard operation
ts-node copied to clipboard

Refactor fs (cache/tracing) layer into self-contained API

Open cspotcode opened this issue 5 years ago • 2 comments
trafficstars

We have multiple codepaths which both duplicate FS access code. Additionally, our source-map-support hook touches this FS caching layer.

Refactor into a single fs API which can be instantiated by a factory like createFsLayer() or createFsHost() and then used in all codepaths.

Having this layer may make future features, such as caching, easier to understand. For example, the fs layer can perform all writes into a cache, and all reads from either the cache or real filesystem, whichever is hit first.

cspotcode avatar Nov 22 '20 07:11 cspotcode

Wouldn't it be better to implement something like resolve? i mean pre resolved stuff and do not modify the cache? I think the best place to solve all that issues is the resolve part inside TS we need a way to supply configuration for that and there are hooks implmented in TS for custom reslovers i am not aware if they are exposed or not

But i think its worth investigation into that direction maybe that algins some how with import map support.

frank-dspeed avatar Jan 19 '21 05:01 frank-dspeed

I think we're talking about different things. For FS caching, necessary to take advantage of --incremental, we need a way to persist what the compiler attempts to write to the filesystem without interfering with normal tsc invocations.

cspotcode avatar Jan 19 '21 21:01 cspotcode