David Sherret
279030f2b8
fix(npm): improve declaration resolution for filename with different extensions ( #19966 )
...
postcss was importing `./index.js` from `./index.d.mts` where there also
existed a `./index.d.ts`.
Closes #19575
2023-07-28 11:24:22 -04:00
David Sherret
cfc0c80642
fix(node): package path not exported error - add if types resolution was occurring ( #19963 )
2023-07-27 16:27:01 +00:00
Bartek Iwańczuk
06209f824c
perf: cache node resolution when accesing a global ( #19930 )
...
Reclaims some of the performance hit introduced by
https://github.com/denoland/deno/pull/19307 .
2023-07-25 23:43:00 +02:00
David Sherret
b09af6a424
fix(npm): support dynamic import of Deno TS from npm package ( #19858 )
...
Closes #19843
2023-07-17 17:17:58 -04:00
David Sherret
7a9f7f3419
fix(node): improve require esm error messages ( #19853 )
...
Part of #19842 .
Closes #19583
Closes #16913
2023-07-17 14:00:44 -04:00
David Sherret
1301a03b51
refactor(npm): remove needless resolve_nv_ref_from_pkg_req_ref on NpmResolver ( #19582 )
2023-06-22 11:50:48 +02:00
Bartek Iwańczuk
e72485fb17
fix(node): conditional exports edge case ( #19082 )
...
Fixes https://github.com/denoland/deno/issues/18743
2023-05-10 23:55:48 +02:00
David Sherret
df1ca4a158
refactor(ext/fs): deno_fs::FileSystem
- conditional Send + Sync
( #18993 )
...
This allows for having a conditional `Send + Sync` on the file system trait for Deploy.
2023-05-08 11:02:02 -04:00
David Sherret
a6c47ee740
refactor(ext/node): combine deno_node::Fs
with deno_fs::FileSystem
( #18991 )
2023-05-05 16:44:24 +00:00
Bartek Iwańczuk
b8d0e616ea
fix(npm): canonicalize search directory when looking for package.json ( #18981 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2023-05-04 00:48:23 +00:00
David Sherret
5b4a9b48ae
refactor(ext/node): enforce interior mutable for NodePermissions
to remove clones ( #18831 )
...
We can make `NodePermissions` rely on interior mutability (which the
`PermissionsContainer` is already doing) in order to not have to clone
everything all the time. This also reduces the chance of an accidental
`borrow` while `borrrow_mut`.
2023-04-24 21:07:48 -04:00
David Sherret
aa286fdecb
refactor(ext/node): allow injecting NodeFs
from CLI ( #18829 )
...
This allows providing a `NodeFs` as part of the `WorkerOptions`.
2023-04-24 19:44:35 -04:00
David Sherret
a615eb3b56
refactor(node): move most of cli/node to ext/node ( #18797 )
...
This is just a straight refactor and I didn't do any cleanup in
ext/node. After this PR we can start to clean it up and make things
private that don't need to be public anymore.
2023-04-21 21:02:46 -04:00
Yiyu Lin
d790ea7d53
refactor(cli,ext,ops): cleanup regex
with lazy-regex
( #17296 )
...
- bump deps: the newest `lazy-regex` need newer `oncecell` and
`regex`
- reduce `unwrap`
- remove dep `lazy_static`
- make more regex cached
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-13 03:08:01 +02:00
Bartek Iwańczuk
339165bd95
refactor(ext/node): add more methods to 'NodeFs' trait ( #18604 )
...
Added more methods to `ext/node/clippy.toml` that are not allowed
to be used in the crate.
Prerequisite for https://github.com/denoland/deno/pull/18544
2023-04-06 15:08:14 +02:00
Bartek Iwańczuk
913e2875c1
refactor(ext/node): add NodeEnv::Fs associated type ( #18484 )
...
This commit adds associated type to "NodeEnv" trait, called "Fs".
The "Fs" type has a trait bound on "NodeFs", which specifies APIs
required for all ops and resolution APIs to function.
A "RealFs" implementation of "NodeFs" is exported from the "deno_node"
crate, that provides a default implementation for the trait.
All code in "deno_node" extension was changed to use the "NodeFs" trait
to handle file system operations, instead of relying on APIs from the
standard library.
2023-03-30 03:20:31 +02:00
Geert-Jan Zwiers
58ec963bf1
refactor: simplify to string calls ( #18011 )
2023-03-04 08:05:07 -04:00
David Sherret
f5840bdcd3
chore: upgrade to Rust 1.67 ( #17548 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-01-27 10:43:16 -05:00
Kiryl Dziamura
934ed8e7d1
fix(npm): use original node regex in npm resolution ( #17404 )
...
Fixes regex for matching conditional exports in a package.
Updated to the same regex Node.js uses.
2023-01-14 00:57:24 +01:00
Bartek Iwańczuk
636352e0ca
fix(npm): allow to read package.json if permissions are granted ( #17209 )
...
This commit changes signature of "deno_core::ModuleLoader::resolve" to pass
an enum indicating whether or not we're resolving a specifier for dynamic import.
Additionally "CliModuleLoader" was changes to store both "parent permissions" (or
"root permissions") as well as "dynamic permissions" that allow to check for permissions
in top-level module load an dynamic imports.
Then all code paths that have anything to do with Node/npm compat are now checking
for permissions which are passed from module loader instance associated with given
worker.
2023-01-10 14:35:44 +01:00
David Sherret
d1cdf65b10
fix(npm): handle declaration file resolution where packages incorrectly define "types" last in "exports" ( #17290 )
...
Closes #17279
2023-01-06 12:57:52 -05:00
David Sherret
10e4b2e140
chore: update copyright year to 2023 ( #17247 )
...
Yearly tradition of creating extra noise in git.
2023-01-02 21:00:42 +00:00
linbingquan
f46df3e359
chore: update to Rust 1.66.0 ( #17078 )
2022-12-17 23:20:15 +01:00
David Sherret
9e977cd6aa
fix(npm): improve exports resolution when type checking ( #17071 )
...
Closes #17012
2022-12-15 21:15:25 -05:00
David Sherret
b1e29d1bd0
fix(npm): improve package.json exports support for types ( #16880 )
2022-11-30 23:07:32 +00:00
David Sherret
d3299c2d6c
fix(npm): don't resolve JS files when resolving types ( #16854 )
...
Closes #16851
2022-11-28 17:48:56 -05:00
David Sherret
823a5f6015
fix(npm/types): resolve main entrypoint declaration file when no types entry ( #16791 )
...
Closes #16782
2022-11-24 19:13:51 +01:00
David Sherret
a57134de38
fix(npm): handle directory resolution when resolving declaration files ( #16706 )
...
Also fixes resolving specifiers like `./something.generated` in
declaration files.
Closes #16695
2022-11-19 10:40:01 -05:00
Bartek Iwańczuk
1416713cb3
fix(npm): using types for packages with subpath ( #16656 )
...
For CommonJS packages we were not trying different extensions for files
specified as subpath of the package ([package_name]/[subpath]).
This commit fixes that.
2022-11-16 20:41:27 +01:00
David Sherret
bcfe279fba
feat(unstable/npm): initial type checking of npm specifiers ( #16332 )
2022-10-21 15:20:18 +00:00
David Sherret
716005a0d4
feat(npm): add flag for creating and resolving npm packages to a local node_modules folder ( #15971 )
2022-09-22 11:17:02 -04:00
David Sherret
73efed218f
refactor(npm): create general use NpmPackageResolver
( #15882 )
2022-09-13 11:59:01 -04:00
David Sherret
98454c1eb8
fix(npm): support cjs resolution of package subpath with package.json ( #15855 )
2022-09-12 15:47:54 -04:00
Bartek Iwańczuk
f2448c5de2
fix(npm): conditional exports in npm: specifiers ( #15778 )
2022-09-06 12:56:34 +02:00
David Sherret
5f251b283b
fix(npm): prefer importing esm from esm ( #15676 )
2022-08-30 14:09:22 -04:00
Bartek Iwańczuk
2851a98072
fix(npm): conditional exports with wildcards ( #15652 )
2022-08-29 19:15:20 +02:00
Bartek Iwańczuk
5268fa0e0f
fix(unstable): various resolution bugs for npm: specifiers ( #15546 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-08-24 14:54:20 +02:00
David Sherret
87f80ff6be
feat(unstable): initial support for npm specifiers ( #15484 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-08-20 11:31:33 -04:00