1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-11 18:17:48 -05:00
Commit graph

4742 commits

Author SHA1 Message Date
David Sherret
8ca92f5ca2 fix(lsp): preload documents when deno.documentPreloadLimit changes (#19103) 2023-05-11 21:53:36 -04:00
David Sherret
a193794eab feat(lsp): ability to configure document pre-load limit (#19097)
Adds a `deno.preloadLimit` option (ex. `"deno.preloadLimit": 2000`)
which specifies how many file entries to traverse on the file system
when the lsp loads or its configuration changes.

Closes #18955
2023-05-11 17:26:32 -04:00
David Sherret
90ed487965 fix(lsp): hard to soft error when unable to get completion info (#19091) 2023-05-11 17:26:31 -04:00
David Sherret
ba7fd57616 fix(cli): upgrade to Typescript 5.0.4 (#19090) 2023-05-11 17:26:31 -04:00
Nayeem Rahman
14bf8dc506 fix(console): handle error when inspecting promise-like (#19083)
Fixes
https://discord.com/channels/684898665143206084/684911491035430919/1105900195406958672.

This was caused by: 
- A `TypeError` from `core.getPromiseDetails()` for promise-likes which
also lead to that code path.
- Swallowing internal formatting errors by returning `undefined`. I've
made it so that a special message is formatted in that case instead
(note that this case is fixed now):
![image](https://github.com/denoland/deno/assets/29990554/65bb9612-60b2-4e31-bf5e-e20976601593)
2023-05-11 17:26:30 -04:00
Nayeem Rahman
89d0f0c4e3 fix(runtime): ChildProcess::kill() doesn't require additional perms (#15339)
Fixes #15217.
2023-05-11 17:26:30 -04:00
Marvin Hagemeister
ff1403c0a1 fix(node): expose channels in worker_threads (#19086)
This PR ensures that node's `worker_threads` module exports
`MessageChannel`, `MessagePort` and the `BroadcastChannel` API. Fixing
these won't make `esbuild` work, but brings us one step closer 🎉

Fixes #19028 .
2023-05-11 17:26:30 -04:00
David Sherret
75735fbf7f feat(compile): unstable npm and node specifier support (#19005)
This is the initial support for npm and node specifiers in `deno
compile`. The npm packages are included in the binary and read from it via
a virtual file system. This also supports the `--node-modules-dir` flag,
dependencies specified in a package.json, and npm binary commands (ex.
`deno compile --unstable npm:cowsay`)

Closes #16632
2023-05-11 17:26:30 -04:00
Marvin Hagemeister
56a9a2a990 feat(node): add Module.runMain() (#19080)
This PR adds the missing `Module.runMain()` function which is required
for tools like `ts-node`.

Fixes #19033
2023-05-11 17:26:29 -04:00
Bartek Iwańczuk
610936f5b2 fix(node): conditional exports edge case (#19082)
Fixes https://github.com/denoland/deno/issues/18743
2023-05-11 17:26:29 -04:00
David Sherret
72512c95c1 fix(dts): align seekSync position arg with seek (#19077)
Closes #19060
2023-05-11 17:26:29 -04:00
Matt Mastracci
e6e0fa752d refactor(core): http_next generic over request extractor (#19071) 2023-05-11 17:26:28 -04:00
Matt Mastracci
a650318c0c feat(ext/http): Automatic compression for Deno.serve (#19031)
`Content-Encoding: gzip` support for `Deno.serve`. This doesn't support
Brotli (`br`) yet, however it should not be difficult to add. Heuristics
for compression are modelled after those in `Deno.serveHttp`.

Tests are provided to ensure that the gzip compression is correct. We
chunk a number of different streams (zeros, hard-to-compress data,
already-gzipped data) in a number of different ways (regular, random,
large/small, small/large).
2023-05-11 17:26:28 -04:00
David Sherret
69aea93d54 fix(vendor): better handling of redirects (#19063)
Closes #17582
Closes #19057
2023-05-11 17:26:28 -04:00
Luca Casonato
575150b463 fix(core): let V8 drive extension ESM loads (#18997)
This now allows circular imports across extensions.

Instead of load + eval of all ESM files in declaration order, all files
are only loaded. Eval is done recursively by V8, only evaluating
files that are listed in `Extension::esm_entry_point` fields.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-11 17:26:27 -04:00
David Sherret
65e5d884d8 perf(fmt): faster formatting for minified object literals (#19050)
Has fix for
https://github.com/dprint/dprint-plugin-typescript/issues/520
2023-05-11 17:26:27 -04:00
Matt Mastracci
5e848f0d1b fix(ext/http): Ensure Deno.serve works across --watch restarts (#18998)
Fixes #16699 and #18960 by ensuring that we release our HTTP
`spawn_local` tasks when the HTTP resource is dropped.

Because our cancel handle was being projected from the resource via
`RcMap`, the resource was never `Drop`ped. By splitting the handle out
into its own `Rc`, we can avoid keeping the resource alive and let it
drop to cancel everything.
2023-05-11 17:26:26 -04:00
David Sherret
6ced6c8e85 refactor(ext/node): combine deno_node::Fs with deno_fs::FileSystem (#18991) 2023-05-11 17:26:25 -04:00
David Sherret
59fbdc4a93 refactor(ext/fs): boxed deno_fs::FileSystem (#18945)
1. Boxed `File` and `FileSystem` to allow more easily passing this
through the CLI code (as shown within this pr).
2. `StdFileResource` is now `FileResource`. `FileResource` now contains
an `Rc<dyn File>`.
2023-05-11 17:26:25 -04:00
denobot
c2a61a4192
1.33.2 (#18988)
Bumped versions for 1.33.2

Please ensure:
- [x] Target branch is correct (`vX.XX` if a patch release, `main` if
minor)
- [x] Crate versions are bumped correctly
- [x] deno_std version is incremented in the code (see
`cli/deno_std.rs`)
- [ ] Releases.md is updated correctly (think relevancy and remove
reverts)

To make edits to this PR:
```shell
git fetch upstream release_1_33.2 && git checkout -b release_1_33.2 upstream/release_1_33.2
```

cc @levex

---------

Co-authored-by: levex <levex@users.noreply.github.com>
Co-authored-by: Levente Kurusa <lkurusa@kernelstuff.org>
2023-05-04 16:39:05 +02:00
Bartek Iwańczuk
d59ace37e4
docs: update Deno.Writer docstring (#18987)
Closes
https://github.com/denoland/deno/issues/18985#issuecomment-1534493623
2023-05-04 16:19:39 +02:00
Luca Casonato
22f4385301
refactor(ext/node): remove NodeEnv trait (#18986) 2023-05-04 16:19:37 +02:00
Nayeem Rahman
979742dee5
fix(core): allow esm extensions not included in snapshot (#18980)
Fixes #18979.

This changes the predicate for allowing `ext:` specifier resolution from
`snapshot_loaded_and_not_snapshotting` to `ext_resolution_allowed` which
is only set to true during the extension module loading phase. Module
loaders as used in core
are now declared as `ExtModuleLoader` rather than `dyn ModuleLoader`.
2023-05-04 16:19:31 +02:00
Nayeem Rahman
434c80bd62
fix(test): disable preventDefault() for beforeunload event (#18911)
Fixes #18910.
2023-05-04 16:19:29 +02:00
Luca Casonato
675aa94d12
fix(ext/kv): throw on the Kv constructor (#18978)
Closes #18963

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-04 16:19:27 +02:00
kang
69732aeb6d
fix(docs): replace "e.g." with "i.e." in seek()/seekSync() comment (#18964)
Clarify calculation of number "9" in `seek()`/`seekSync()` comment of
lib.deno.ns.d.ts by replacing "e.g." with "i.e."
2023-05-04 16:19:24 +02:00
Luca Casonato
3b5adb13de
fix(ext/kv): KvU64#valueOf and KvU64 inspect (#18656)
`new Deno.KvU64(1n) + 2n == 3n` is now true.

`new Deno.KvU64(1n)` is now inspected as `[Deno.KvU64: 1n]`
(`Object(1n)` is inspected as `[BigInt: 1n]`).

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-04 16:19:17 +02:00
Bartek Iwańczuk
3b36c36715
perf: use jemalloc as global allocator (#18957)
Follow up to https://github.com/denoland/deno/pull/18875 that enables
`jemalloc` as a global allocator for the Deno CLI.
2023-05-04 16:19:14 +02:00
Yarden Shoham
4ab6c672d4
docs(lib): document Deno.Command requires the allow-run permission (#18958) 2023-05-04 16:19:09 +02:00
Bartek Iwańczuk
8f46dc2c0f
chore: release extension crates, unpin tokio (#18954) 2023-05-04 16:19:04 +02:00
Kenta Moriuchi
ec1fb08a88
refactor(core): Use ObjectHasOwn instead of ObjectPrototypeHasOwnProperty (#18952)
ES2022 `Object.hasOwn` can be used in snapshot, so I migrate to use it.
2023-05-04 16:19:02 +02:00
Bartek Iwańczuk
797f0ef42e
fix(npm): canonicalize filename before returning (#18948)
This commit changes how paths for npm packages are handled,
by canonicalizing them when resolving. This is done so that instead
of returning
"node_modules/<package_name>@<version>/node_modules/<dep>/index.js"
(which is a symlink) we "node_modules/<dep>@<dep_version>/index.js.

Fixes https://github.com/denoland/deno/issues/18924
Fixes https://github.com/bluwy/create-vite-extra/issues/31

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2023-05-04 16:18:57 +02:00
Michael Lazarev
fae7643648
docs: correct example of piping the output of a subprocess to a file (#18933)
Fixes #18909
2023-05-04 16:18:52 +02:00
David Sherret
9c646ac6ed
perf: lazily create RootCertStore (#18938) 2023-05-04 16:18:49 +02:00
David Sherret
6df6024506
refactor(cli): remove ProcState - add CliFactory (#18900)
This removes `ProcState` and replaces it with a new `CliFactory` which
initializes our "service structs" on demand. This isn't a performance
improvement at the moment for `deno run`, but might unlock performance
improvements in the future.
2023-05-04 16:18:43 +02:00
David Sherret
2fed39ebf9
perf: lazily retrieve ppid (#18940)
This is very apparent on Windows.

Before: 45.74ms (Hello world)
After: 33.92ms

Closes #18939
2023-05-04 16:18:40 +02:00
David Sherret
0ddad2486c
refactor(cli): use CliMainWorker in standalone (#18880)
Uses `CliMainWorker` in all the cli code.
2023-05-04 16:18:32 +02:00
Divy Srivastava
3bd154efee
perf(ext/web): fast path for ws events (#18905)
- Do not use `ReflectHas` in `isNode`.
- Avoid copying handler array when handlers.length == 1
- Avoid searching for path target when path.length == 1

```
Linux divy-2 5.19.0-1022-gcp #24~22.04.1-Ubuntu SMP Sun Apr 23 09:51:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
32GiB System memory
Intel(R) Xeon(R) CPU @ 3.10GHz

# main + https://github.com/denoland/deno/pull/18904
Msg/sec: 89326.750000
Msg/sec: 90320.000000
Msg/sec: 89576.250000

# this patch
Msg/sec: 97250.000000
Msg/sec: 97125.500000
Msg/sec: 97964.500000
```
2023-05-04 16:18:24 +02:00
David Sherret
4eca9d717a
refactor(cli): remove Clone on ProcState (#18874)
Slowly phasing this out.
2023-05-04 16:18:22 +02:00
David Sherret
1cef6fa7fa
fix(fmt/json): support formatting number with exponent and no sign (#18894)
Numbers with an exponent and no sign (ex. `1e1`) would fail to parse.
2023-05-04 16:18:19 +02:00
Kenta Moriuchi
084e7c9560
fix(ext/url): throw TypeError for empty argument (#18896)
Fixes #18893
2023-05-04 16:18:15 +02:00
Leo Kettmeir
fcb0ae62e9
refactor: remove ext/console/01_colors.js (#18927) 2023-05-04 16:18:12 +02:00
Matt Mastracci
dcd59e0974
perf(core): async op pseudo-codegen and performance work (#18887)
Performance:

```
async_ops.js: 760k -> 1030k (!)
async_ops_deferred.js: 730k -> 770k
Deno.serve bench: 118k -> 124k
WS test w/ third_party/prebuilt/mac/load_test 100 localhost 8000 0 0: unchanged

Startup time: approx 0.5ms slower (13.7 -> 14.2ms)
```
2023-05-04 16:18:10 +02:00
Leo Kettmeir
5f22a37f93
refactor: merge Deno & Node inspectors (#18691) 2023-05-04 16:17:51 +02:00
Luca Casonato
d9dfffa4c8
fix(ext/kv): stricter structured clone serializer (#18914) 2023-05-04 16:17:46 +02:00
denobot
d5f52ef7ac
1.33.1 (#18895)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 19:05:46 +02:00
Bartek Iwańczuk
142c1ab9fc
fix(ext/websocket): restore op_ws_send_ping (#18891)
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-04-28 16:48:00 +02:00
Nayeem Rahman
0b296c6378
fix(repl): don't panic on undefined exception (#18888)
Fixes regression from #18878 where `Promise.reject()`,
`Promise.reject(undefined)` and `reportError(undefined)` panic in the
REPL.
Fixes `throw undefined` printing `Uncaught Unknown exception` instead of
`Uncaught undefined`.
2023-04-28 15:21:55 +02:00
Luca Casonato
84b921555f
fix(ext/fetch): subview Uint8Array in Req/Resp (#18890) 2023-04-28 14:26:21 +02:00
denobot
39ece1fe0d
1.33.0 (#18879)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 01:18:57 +02:00