feat(node): stabilize detecting if CJS via "type": "commonjs" in a package.json (#26439)

This will respect `"type": "commonjs"` in a package.json to determine if
`.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to
be ESM it will be loaded as ESM though.
This commit is contained in:
David Sherret 2024-11-13 10:10:09 -05:00 committed by GitHub
parent 6a4c6d83ba
commit f091d1ad69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
119 changed files with 1244 additions and 616 deletions

View file

@ -15,8 +15,8 @@ use crate::errors::CanonicalizingPkgJsonDirError;
use crate::errors::ClosestPkgJsonError;
use crate::errors::PackageJsonLoadError;
// todo(dsherret): this isn't exactly correct and we should change it to instead
// be created per worker and passed down as a ctor arg to the pkg json resolver
// it would be nice if this was passed down as a ctor arg to the package.json resolver,
// but it's a little bit complicated to do that, so we just maintain a thread local cache
thread_local! {
static CACHE: RefCell<HashMap<PathBuf, PackageJsonRc>> = RefCell::new(HashMap::new());
}