0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-30 09:08:00 -04:00
Commit graph

10235 commits

Author SHA1 Message Date
David Sherret
7496bd8b0c
chore: various improvements to tests (#21222) 2023-11-24 03:03:24 +01:00
denobot
d3fb7d1a48
1.38.2 (#21229) 2023-11-17 13:15:07 +09:00
Bartek Iwańczuk
2b31634d61
feat(unstable): Workspaces support (#20410)
This commit adds unstable workspace support. This is extremely
bare-bones and
minimal first-pass at this.

With this change `deno.json` supports specifying `workspaces` key, that
accepts a list of subdirectories. Each workspace can have its own import
map. It's required to specify a `"name"` and `"version"` properties in the
configuration file for the workspace:

```jsonc
// deno.json
{
  "workspaces": [
     "a",
     "b"
  },
  "imports": {
    "express": "npm:express@5"
   }
}
```
``` jsonc
// a/deno.json
{
  "name": "a",
  "version": "1.0.2",
  "imports": {
    "kleur": "npm:kleur"
  }
}
```
```jsonc
// b/deno.json
{
  "name": "b",
  "version": "0.51.0",
  "imports": {
    "chalk": "npm:chalk"
  }
}
```

`--unstable-workspaces` flag is required to use this feature:
```
$ deno run --unstable-workspaces mod.ts
```

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2023-11-17 11:30:53 +09:00
David Sherret
dcacdcd727
fix(doc): issue discovering re-exports of re-exports sometimes (#21223) 2023-11-17 11:30:49 +09:00
David Sherret
e95d5cc7dc
fix(npm): support cjs entrypoint in node_modules folder (#21224)
Closes #21109
2023-11-17 11:30:46 +09:00
Igor Zinkovsky
66c64ac511
feat(ext/cron) modify Deno.cron API to make handler arg last (#21225)
This PR changes the `Deno.cron` API:
* Marks the existing function as deprecated
* Introduces 2 new overloads, where the handler arg is always last:
```ts
Deno.cron(
  name: string,
  schedule: string,
  handler: () => Promise<void> | void,
)

Deno.cron(
  name: string,
  schedule: string,
  options?: { backoffSchedule?: number[]; signal?: AbortSignal },
  handler: () => Promise<void> | void,
)
```

This PR also fixes a bug, when other crons continue execution after one
of the crons was closed using `signal`.
2023-11-17 11:30:43 +09:00
Matt Mastracci
fdc50d1592
feat(ext/net): use rustls_tokio_stream (#21205)
Fixes #21121 and #19498

Migrates fully to rustls_tokio_stream. We no longer need to maintain our
own TlsStream implementation to properly support duplex.

This should fix a number of errors with TLS and websockets, HTTP and
"other" places where it's failing.
2023-11-17 11:30:38 +09:00
Bartek Iwańczuk
f96d89bf7a
fix: use short git hash for deno version (#21218) 2023-11-17 11:30:35 +09:00
Bolat Azamat
205ac412a7
fix(cli): Allow executable name start with digit (#21214) 2023-11-17 11:30:31 +09:00
Divy Srivastava
0d8c9f8ef1
perf: static bootstrap options in snapshot (#21213)
Closes https://github.com/denoland/deno/issues/21133
2023-11-17 11:30:26 +09:00
Yoshiya Hinosawa
0764451e51
fix(runtime): fix Deno.noColor when stdout is not tty (#21208) 2023-11-17 11:30:22 +09:00
Nayeem Rahman
8c50df360f
feat(lsp): upgrade check on init and notification (#21105) 2023-11-17 11:30:19 +09:00
Divy Srivastava
0e91ce6b79
perf: move jupyter esm out of main snapshot (#21163)
Towards https://github.com/denoland/deno/issues/21136
2023-11-17 11:30:16 +09:00
David Sherret
3f17633de9
chore: switch compile tests over to the TestBuilder (#21180) 2023-11-17 11:30:13 +09:00
Divy Srivastava
1a2d8cfc98
refactor: snapshot module for deno_runtime (#21162)
Closes #21134
2023-11-17 11:30:06 +09:00
Bartek Iwańczuk
a85b3e7938
fix(ext/node): add APIs perf_hook.performance (#21192)
Required for Next.js.
2023-11-17 11:30:03 +09:00
Kenta Moriuchi
8bf1437f48
fix(ext/web): webstorage has trap for symbol (#21090) 2023-11-17 11:30:00 +09:00
Matt Mastracci
ce44871e80
chore: bump deno_core (#21188)
Fixes https://github.com/denoland/deno/issues/21176
2023-11-17 11:29:56 +09:00
Bartek Iwańczuk
255b41cd79
Revert "fix(ext/console): fix inspecting iterators error. (#20720)" (#21191)
This reverts commit 0209f7b469.

Reverting because it causes failures on `main`:
https://github.com/denoland/deno/pull/20720#issuecomment-1809166755
2023-11-17 11:29:51 +09:00
David Sherret
e58e9da8df
chore: remove duplicate esnext.dispoable (#21184) 2023-11-17 11:29:48 +09:00
Laurence Rowe
102af421ac
refactor(ext/http): Use HttpRecord as response body to track until body completion (#20822)
Use HttpRecord as response body so requests can be tracked all the way
to response body completion.

This allows Request properties to be accessed while the response body is
streaming.

Graceful shutdown now awaits a future instead of async spinning waiting
for requests to finish.

On the minimal benchmark this refactor improves performance an
additional 2% over pooling alone for a net 3% increase over the previous
deno main branch.

Builds upon https://github.com/denoland/deno/pull/20809 and
https://github.com/denoland/deno/pull/20770.

---------

Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-17 11:29:44 +09:00
Chen Su
7e19fee4c4
fix(ext/console): fix inspecting iterators error. (#20720)
Fixes #19776 and #20676.
2023-11-17 11:29:41 +09:00
Matt Mastracci
9b07557bfb
chore(cli): unflake signal test (#21185)
If these tests do eventually break, they'll time out.
2023-11-17 11:29:37 +09:00
Leo Kettmeir
0235f4b589
chore: update wpt (#21178)
For #20849
2023-11-17 11:29:33 +09:00
Matt Mastracci
83fa25653a
chore(ext/web): use a non-resource stream for textDecoderStreamCleansUpOnCancel (#21181)
Follow-up fix to #21074
2023-11-17 11:29:30 +09:00
Laurence Rowe
2980cb5e5b
perf(ext/http): Object pooling for HttpRecord and HeaderMap (#20809)
Reuse existing existing allocations for HttpRecord and response
HeaderMap where possible.

At request end used allocations are returned to the pool and the pool
and the pool sized to 1/8th the current number of inflight requests.

For http1 hyper will reuse the response HeaderMap for the following
request on the connection.

Builds upon https://github.com/denoland/deno/pull/20770

---------

Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-17 11:29:26 +09:00
David Sherret
60c6052060
fix(install): should work with non-existent relative root (#21161)
Closes #21160
2023-11-17 11:29:15 +09:00
Laurence Rowe
ebc9b2bfb8
refactor(ext/http): refer to HttpRecord directly using v8::External (#20770)
Makes the JavaScript Request use a v8:External opaque pointer to
directly refer to the Rust HttpRecord.

The HttpRecord is now reference counted. To avoid leaks the strong count
is checked at request completion.

Performance seems unchanged on the minimal benchmark. 118614 req/s this
branch vs 118564 req/s on main, but variance between runs on my laptop
is pretty high.

---------

Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-17 11:29:10 +09:00
Divy Srivastava
b0fe699680
perf: lazy bootstrap options - first pass (#21164)
Move most runtime options to be lazily loaded. Constant options will be
covered in a different PR.

Towards https://github.com/denoland/deno/issues/21133
2023-11-17 11:29:07 +09:00
Kenta Moriuchi
c72f5fced0
feat(ext/web): add AbortSignal.any() (#21087)
Fixes #18944
2023-11-17 11:29:02 +09:00
Nayeem Rahman
bfe9c9e1ba
fix(lsp): update tsconfig after refreshing settings on init (#21170) 2023-11-17 11:28:56 +09:00
Florian Schwalm
7dc8c4e2a3
fix(ext/web): Prevent TextDecoderStream resource leak on stream cancellation (#21074)
This PR uses the new `cancel` method of `TransformStream` to properly
clean up the internal `TextDecoder` used in `TextDecoderStream` if the
stream is cancelled.

Fixes #13142

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-11-17 11:28:50 +09:00
Divy Srivastava
bd91d05b5a
perf: snapshot runtime ops (#21127)
Closes https://github.com/denoland/deno/issues/21135

~1ms startup time improvement

---------

Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2023-11-17 11:28:44 +09:00
Matt Mastracci
fbe26f1091
chore(ext/node): use libz-sys w/zlib-ng feature in node (#21158)
We only want one zlib dependency.

Zlib dependencies are reorganized so they use a hidden
`__vendored_zlib_ng` flag in cli that enables zlib-ng for both libz-sys
(used by ext/node) and flate2 (used by deno_web).
2023-11-17 11:28:39 +09:00
Kenta Moriuchi
4f8d2f3a37
fix(ext/node): Re-enable alloc max size test (#21059)
Ref #21036
2023-11-17 11:28:33 +09:00
Jacob Hummer
f155ca7a62
fix(node/http): export globalAgent (#21081)
Fixes #21080 
Fixes #18312

---------

Signed-off-by: Jacob Hummer <jcbhmr@outlook.com>
2023-11-17 11:28:27 +09:00
Tareque Md Hanif
407230fec3
chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128)
Migrate to use `Promise.withResolvers()` instead of `deferred` in some
of the tests in `cli/tests/unit/`.
Issue: #21041
2023-11-17 11:28:22 +09:00
Divy Srivastava
6e4aa70335
fix(ext/node): implement process.geteuid (#21151)
Fixes #21097
2023-11-17 11:27:54 +09:00
David Sherret
f2d94b6ef0
fix: improve deno doc --lint error messages (#21156)
This also updates deno_graph, which has the JSR change to use "exports".
It's not yet useful atm, so I've made this PR a fix about the deno doc
--lint error message improvements. I'll do a follow-up PR that adds
exports to the deno.json
2023-11-17 11:27:51 +09:00
Matt Mastracci
a6e5bdd968
chore: disable default features for denokv_sqlite (#21155)
Fix for https://github.com/Homebrew/homebrew-core/pull/153128
2023-11-17 11:27:45 +09:00
Matt Mastracci
276e4125fc
perf(cli): strace mode for ops (undocumented) (#21131)
Example usage:

```
# Trace every op except op_*tick*
cargo run -- run --unstable -A --strace-ops=-tick '/Users/matt/Documents/github/deno/deno/ext/websocket/autobahn/autobahn_server.js

# Trace any op matching op_*http*
cargo run -- run --unstable -A --strace-ops=http ...
```

Example output:

```
[    11.478] op_ws_get_buffer                        : Dispatched Slow
[    11.478] op_ws_get_buffer                        : Completed Slow
[    11.478] op_ws_send_binary                       : Dispatched Fast
[    11.478] op_ws_send_binary                       : Completed Fast
[    11.478] op_ws_next_event                        : Dispatched Async
[    11.478] op_try_close                            : Dispatched Fast
[    11.478] op_try_close                            : Completed Fast
[    11.478] op_timer_handle                         : Dispatched Fast
[    11.478] op_timer_handle                         : Completed Fast
[    11.478] op_sleep                                : Dispatched Asyn
```
2023-11-17 11:27:40 +09:00
Divy Srivastava
59b1e7d235
chore: use pure rust secp256k1 crate (#21154)
Saves ~40s in fresh debug build
2023-11-17 11:27:35 +09:00
Divy Srivastava
862edad5ae
chore: use internal namespace in 40_testing.js (#21141)
Towards #21136 

- [x] assign serializePermissions, setTimeout and setExitHandler APIs to
internal namespace
- [x] remove usage of assert
2023-11-17 11:27:30 +09:00
Divy Srivastava
6e962ee0c4
chore: give suggestion on PR open failure (#21145) 2023-11-17 11:27:22 +09:00
Divy Srivastava
c38f84387a
chore: remove primordial usage from 40_testing.js (#21140)
Towards #21136
2023-11-17 11:27:16 +09:00
Divy Srivastava
0e7ad0388b
1.38.1 (#21143)
Co-authored-by: littledivy <littledivy@users.noreply.github.com>
2023-11-10 17:16:23 +05:30
Igor Zinkovsky
f4305433dc
fix(test) reduce queue persistence test time from 60 secs to 6 secs (#21142)
This PR reduces the time to run `queue persistence with inflight
messages` test from 60 seconds down to about 6 seconds.

The test simulates a crash to ensure that inflight messages are cleaned
up and re-queued when the new process starts. Since messages are
considered dead after 5 seconds of being queued, reopening the db within
5 seconds does not re-queue the messages on startup (they do get
re-queued after 60 seconds, which is the cleanup frequency). By waiting
for 5 seconds before reopening the db, the test ensures that the cleanup
happens quickly when the db is opened.
2023-11-10 11:28:38 +01:00
Bartek Iwańczuk
612b7dfcc7
fix(node/child_process): properly normalize stdio for 'spawnSync' (#21103)
Closes https://github.com/denoland/deno/issues/20782
2023-11-10 05:59:39 +00:00
Matt Mastracci
9010b8df53
perf: remove knowledge of promise IDs from deno (#21132)
We can move all promise ID knowledge to deno_core, allowing us to better
experiment with promise implementation in deno_core.

`{un,}refOpPromise(promise)` is equivalent to
`{un,}refOp(promise[promiseIdSymbol])`
2023-11-09 13:57:26 -07:00
Divy Srivastava
c4029f6af2
fix(node): implement createPrivateKey (#20981)
Towards #18455
2023-11-09 23:26:59 +05:30