0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-18 19:33:00 -05:00
Commit graph

1243 commits

Author SHA1 Message Date
Bartek Iwańczuk
fcfd4c09b5
wip after merge 2024-12-21 02:38:23 +01:00
Bartek Iwańczuk
d3e41a770a
Merge branch 'main' into lint_plugins 2024-12-21 02:28:39 +01:00
Marvin Hagemeister
26425a137b
feat(unstable): add JS linting plugin infrastructure (#27416)
This PR extracts the core part of
https://github.com/denoland/deno/pull/27203 to make it easier to review
and land in parts.

It contains:
-  The JS plugin code the deserializes and walks the buffer
- The Rust portion to serialize SWC to the buffer format (a bunch of
nodes are still todos, but imo these can land anytime later)
- Basic lint plugin types, without the AST node types to make this PR
easier to review
- Added more code comments to explain the format etc.


More fixes and changes will be done in follow-up PRs.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-12-21 00:58:03 +01:00
David Sherret
ece718eb3e
perf: upgrade to deno_semver 0.7 (#27426) 2024-12-20 21:14:37 +00:00
Bartek Iwańczuk
c30f3450c6
perf: don't store duplicate info for ops in the snapshot (#27430)
Mostly for changes from https://github.com/denoland/deno_core/pull/1010

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2024-12-20 17:43:03 +00:00
Marvin Hagemeister
351e79642a
fix(task): support tasks without commands (#27191)
Support running tasks that have no command and only dependencies. This
is useful for when you want to group tasks only.
2024-12-19 18:10:58 +00:00
Sean McArthur
b1c685f4b7
fix(ext/fetch): retry some http/2 errors (#27417)
This brings some of the HTTP/2 retry behavior from reqwest to
`ext/fetch`. It will retry very specific HTTP/2 errors once, if the body
is able to be used again.

Closes #27332
2024-12-18 23:04:29 +01:00
Marvin Hagemeister
13cc74dd59 clippy stuff 2024-12-18 15:29:27 +01:00
Marvin Hagemeister
5ea018aa58 improve conversion safety 2024-12-18 14:36:24 +01:00
Marvin Hagemeister
e296022d44 fix more types 2024-12-18 12:16:28 +01:00
Marvin Hagemeister
8d9f9ce5e2 fix: node name 2024-12-18 11:30:23 +01:00
Bartek Iwańczuk
53a680bded
Merge branch 'main' into lint_plugins 2024-12-18 05:35:56 +01:00
Bartek Iwańczuk
14e4064986
fix(task): properly handle task name wildcards with --recursive (#27396)
This commit fixes `deno task` by checking if the provided
task name actually has a wildcard char ("*").

Previously, if the "--recursive" flag was passed, the task name
was treated as a regex, which lead to a situation where exact task
name resulted in a regex that matched all tasks with the specific
prefix.

This commit fixes it, by checking if the provided task name, is an exact
name, or is it a wildcard match.

Closes https://github.com/denoland/deno/issues/27370
Closes https://github.com/denoland/deno/issues/27401
Closes https://github.com/denoland/deno/issues/27408
2024-12-18 03:32:37 +01:00
Nathan Whitaker
9d7174e434
fix(outdated): ensure "Latest" version is greater than "Update" version (#27390)
Fixes #27038.

Previously, for NPM packages the latest version was the version with the
"latest" tag. For JSR packages, the latest version was the greatest
version that matched a `*` version requirement. Unfortunately, that
doesn't work well with pre-release versions.

This PR changes it so that the latest version is always > the currently
requested version.
For NPM: if "latest" tag > current then "latest" tag; otherwise the
greatest version that is >= current
For JSR: greatest version >= current

This is the most reasonable behavior I could come up with. For example,

```
versions:
2.0.0-beta.2
2.0.0-beta.1
1.0.0 => "latest" tag

with a version req `^2.0.0-beta.1`

previously:
"Update" column => 2.0.0-beta.2
"Latest" column => 1.0.0

now:
"Update" column => 2.0.0-beta.2
"Latest" column => 2.0.0-beta.2
```
2024-12-17 23:56:03 +00:00
Marvin Hagemeister
6e70ba2c77 get selector integration working 2024-12-17 12:04:12 +01:00
Bartek Iwańczuk
f9add94e17
refactor(lint): renames and code flattening (#27386)
Working on loading plugin configuration for
https://github.com/denoland/deno/pull/27203
I encountered a lot of complexity, so did some drive-by cleanups to make
it easier to grok the code and have fewer duplicate names.
2024-12-17 01:35:26 +00:00
David Sherret
95928c46eb
refactor: extract out FileFetcher to deno_cache_dir (#27263) 2024-12-16 23:39:40 +00:00
Marvin Hagemeister
86fc6e64cb WIP 2024-12-16 16:17:02 +01:00
Marvin Hagemeister
f167277561 remove dead code 2024-12-15 22:57:55 +01:00
Marvin Hagemeister
3f9ee0d6df feat(lint): support visitor selector syntax 2024-12-15 22:56:50 +01:00
Marvin Hagemeister
ea11f95029 make js plugins independent of ast strucure 2024-12-15 19:18:30 +01:00
Nathan Whitaker
9d315f27ed
fix(outdated): support updating dependencies in external import maps (#27339)
Fixes #27331.

The support for it was already in `outdated`, but forgot to wire up the
updating part

Needs #27337
2024-12-13 12:25:05 -08:00
Marvin Hagemeister
65fcda4cd5 improve format 2024-12-13 11:38:35 +01:00
Marvin Hagemeister
f50bf9b064 refactor node handling 2024-12-13 00:33:44 +01:00
Marvin Hagemeister
c83f722039 Refactor binary ast 2024-12-12 22:16:49 +01:00
Marvin Hagemeister
76c1275200 fix traversal 2024-12-12 20:53:08 +01:00
David Sherret
4cfa34052d
fix(compile): analyze modules in directory specified in --include (#27296)
I ended up changing the file system implementation to determine
its root directory as the last step of building it instead of being the
first step which makes it much more reliable.
2024-12-12 18:07:35 +00:00
Marvin Hagemeister
8f104313ff more nodes 2024-12-12 15:20:36 +01:00
Marvin Hagemeister
7c7a888fa6 basic ts nodes 2024-12-12 13:28:35 +01:00
Marvin Hagemeister
2902ebaa6f refactor ast 2024-12-12 11:34:45 +01:00
Marvin Hagemeister
dda408b019 fix: clippy 2024-12-12 10:53:12 +01:00
Marvin Hagemeister
d9e506eb8d refactors 2024-12-12 10:42:38 +01:00
Marvin Hagemeister
dd75c31aa3 more_nodes 2024-12-12 10:22:21 +01:00
Marvin Hagemeister
499257cbf1 refactor 2024-12-12 04:19:11 +01:00
Marvin Hagemeister
a3421b9c0a more nodes 2024-12-12 01:35:57 +01:00
Marvin Hagemeister
17ad68bb53 more nodes 2024-12-11 17:47:46 +01:00
Marvin Hagemeister
8e56216adf more nodes 2024-12-11 17:41:33 +01:00
Marvin Hagemeister
a2b10d43f3 more nodes 2024-12-11 17:10:05 +01:00
David Sherret
c6fa62896d
fix(compile): output contents of embedded file system (#27302) 2024-12-11 09:40:50 -05:00
Marvin Hagemeister
3c19d0651b WIP 2024-12-11 12:47:45 +01:00
Marvin Hagemeister
20c477dc7d WIP 2024-12-11 11:02:21 +01:00
Nathan Whitaker
6f506208f6
feat(unstable): support caching npm dependencies only as they're needed (#27300)
Currently deno eagerly caches all npm packages in the workspace's npm
resolution. So, for instance, running a file `foo.ts` that imports
`npm:chalk` will also install all dependencies listed in `package.json`
and all `npm` dependencies listed in the lockfile.

This PR refactors things to give more control over when and what npm
packages are automatically cached while building the module graph.

After this PR, by default the current behavior is unchanged _except_ for
`deno install --entrypoint`, which will only cache npm packages used by
the given entrypoint. For the other subcommands, this behavior can be
enabled with `--unstable-npm-lazy-caching`


Fixes #25782.

---------

Signed-off-by: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com>
Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-12-10 18:24:23 -08:00
Bartek Iwańczuk
dd42a64c43
refactor(lint): manage schema files for linter in Deno repo (#27324)
This commit provides schema files for lint rules and lint tags
in this repo instead of pulling them from `deno_lint` repository.

A unit test was added to ensure all available rules are listed
in the schema file. A unit test for tags can be done once 
https://github.com/denoland/deno/pull/27162 lands.
2024-12-11 02:06:04 +01:00
Bartek Iwańczuk
7c8b55b584
fix(outdated): error when there are no config files (#27306)
This commit changes "deno outdated" subcommand to
error out if run in a directory that has no config file 
(including parent directories). This matches
"pnpm" behavior.

Also added tests for filtering that yields no results,
to ensure that it exists cleanly, that also matches "pnpm"
behavior.

Closes https://github.com/denoland/deno/issues/27287

---------

Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2024-12-10 23:25:29 +00:00
Marvin Hagemeister
ccabd64f6d WIP 2024-12-10 23:05:38 +01:00
Marvin Hagemeister
22681b428a WIP 2024-12-10 22:48:54 +01:00
Marvin Hagemeister
c039c51e90 WIP 2024-12-10 21:17:02 +01:00
Bartek Iwańczuk
7bab83d6c0
fix(outdated): respect --quiet flag for hints (#27317) 2024-12-10 18:22:42 +00:00
Bartek Iwańczuk
c3af09821a
fix(outdated): show a suggestion for updating (#27304)
Show command to update dependencies based on the output
of "deno outdated" command.

Closes https://github.com/denoland/deno/issues/27256
2024-12-10 14:41:16 +01:00
Marvin Hagemeister
99b9e726d4 WIP 2024-12-10 05:34:12 +01:00