summaryrefslogtreecommitdiff
path: root/ext/node
AgeCommit message (Collapse)Author
2023-07-24refactor(ext/node): CjsCodeAnalyzer - analyze_cjs optionally pass source ↵David Sherret
text (#19896)
2023-07-24fix(node_compat): Wrap require resolve exports in try catch block (#19592)Vedant Pandey
Potentially closes #19499
2023-07-24fix(ext/node): inspector with seggregated globals (#19917)Luca Casonato
V8 doesn't like having internal slots on the "real" globalThis object. This commit works around this limitation by storing the inner globalThis objects for segregated globals in a context slot.
2023-07-22chore: update commonjs loading docs (#19904)sigmaSd
2023-07-21fix(node/http): add encrypted field to FakeSocket (#19886)Leo Kettmeir
Fixes #19557
2023-07-20chore: forward v1.35.2 release commit to main (#19887)denobot
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-07-19feat(ext/node): properly segregate node globals (#19307)Luca Casonato
Code run within Deno-mode and Node-mode should have access to a slightly different set of globals. Previously this was done through a compile time code-transform for Node-mode, but this is not ideal and has many edge cases, for example Node's globalThis having a different identity than Deno's globalThis. This commit makes the `globalThis` of the entire runtime a semi-proxy. This proxy returns a different set of globals depending on the caller's mode. This is not a full proxy, because it is shadowed by "real" properties on globalThis. This is done to avoid the overhead of a full proxy for all globalThis operations. The globals between Deno-mode and Node-mode are now properly segregated. This means that code running in Deno-mode will not have access to Node's globals, and vice versa. Deleting a managed global in Deno-mode will NOT delete the corresponding global in Node-mode, and vice versa. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Aapo Alasuutari <aapo.alasuutari@gmail.com>
2023-07-19fix(node/http): call callback after request is sent (#19871)Leo Kettmeir
Fixes #19762
2023-07-19fix(node/net): Server connection callback include socket value (#19779)Leo Kettmeir
2023-07-18fix(ext/node): check if resource can be used with write_vectored (#19868)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/19766 Fixes https://github.com/denoland/deno/issues/19846
2023-07-18fix(node): add process.dlopen API (#19860)Bartek Iwańczuk
Fixes https://github.com/denoland/deno/issues/19830
2023-07-17fix(npm): support dynamic import of Deno TS from npm package (#19858)David Sherret
Closes #19843
2023-07-17fix(node): improve error message requiring non-npm es module (#19856)David Sherret
Closes #19842 Closes #16913
2023-07-17fix(node): improve require esm error messages (#19853)David Sherret
Part of #19842. Closes #19583 Closes #16913
2023-07-17fix(ext/node): fix stream/promises export (#19820)await-ovo
2023-07-12chore: forward 1.35.1 back to main (#19814)David Sherret
2023-07-11fix(node/http): add destroy to FakeSocket (#19796)Leo Kettmeir
Closes #19782
2023-07-11fix(node/http): allow callback in first argument of end call (#19778)Leo Kettmeir
Closes #19762
2023-07-10fix(node/http): server use FakeSocket and add end method (#19660)Leo Kettmeir
Fixes #19324
2023-07-08chore: upgrade to dprint 0.39 (#19768)David Sherret
2023-07-07perf(ext/node): native vectored write for server streams (#19752)Divy Srivastava
``` # main $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 106182.250000 Msg/sec: 110279.750000 ^C # this PR $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 131632.250000 Msg/sec: 134754.250000 ^C ```
2023-07-06perf(node/async_hooks): optimize AsyncLocalStorage (#19729)Bartek Iwańczuk
This makes the implementation of "AsyncLocalStorage" from "node:async_hooks" 3.5x faster than before for noop benchmark (measuring baseline overhead). It's still 3.5x slower than not using `AsyncLocalStorage` and 1.64x slower than using noop promise hooks.
2023-07-05perf(ext/node): optimize net streams (#19678)Divy Srivastava
~4.5x improvement in `npm:ws` echo benchmark: ``` $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 101083.750000 Msg/sec: 103606.000000 ^C $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 24906.750000 Msg/sec: 28478.000000 ^C ```
2023-07-051.35.0 (#19717)denobot
Bumped versions for 1.35.0 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-07-04fix(ext/node): Define performance.timeOrigin as getter property (#19714)await-ovo
2023-07-03fix(npm): escape export identifier in double quoted string (#19694)await-ovo
2023-07-02fix(ext/node): ignore cancelled timer when node timer refresh (#19637)await-ovo
For timers that have already executed clearTimeout, there is no need to recreate a new timer when refresh is executed again.
2023-07-02refactor: rename built-in node modules from ext:deno_node/ to node: (#19680)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/19510
2023-07-01fix(npm): handle more reserved words as cjs exports (#19672)David Sherret
Closes #19665
2023-06-30fix(node/http): add setKeepAlive to FakeSocket (#19659)Leo Kettmeir
Closes #19535
2023-06-27fix: lint on main branch (#19622)Bartek Iwańczuk
2023-06-27chore(ext/node): disable prefer-primordials on a per-file basis (#19553)Kenta Moriuchi
2023-06-27test(ext/node): port crypto_test.ts from deno_std (#19561)Felipe Baltor
2023-06-26chore: fix typos (#19572)Martin Fischer
2023-06-26fix(ext/node): remove path.toFileUrl (#19536)Ryan Clements
2023-06-24fix(ext/node): support brotli APIs (#19223)Divy Srivastava
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-23fix(serde_v8): Do not coerce values in serde_v8 (#19569)Divy Srivastava
Fixes #19568 Values are not coerced to the desired type during deserialisation. This makes serde_v8 stricter. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-22refactor(serde_v8): split ZeroCopyBuf into JsBuffer and ToJsBuffer (#19566)Bartek Iwańczuk
`ZeroCopyBuf` was convenient to use, but sometimes it did hide details that some copies were necessary in certain cases. Also it made it way to easy for the caller to pass around and convert into different values. This commit splits `ZeroCopyBuf` into `JsBuffer` (an array buffer coming from V8) and `ToJsBuffer` (a Rust buffer that will be converted into a V8 array buffer). As a result some magical conversions were removed (they were never used) limiting the API surface and preparing for changes in #19534.
2023-06-22refactor(npm): remove needless resolve_nv_ref_from_pkg_req_ref on ↵David Sherret
NpmResolver (#19582)
2023-06-16fix(ext/node): remove fromFileUrl from "node:path" (#19504)Ryan Clements
2023-06-16chore: forward v1.34.3 release commit to main (#19526)denobot
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-15fix(node): Worker constructor doesn't check type: module of package.json ↵Vedant Pandey
(#19480)
2023-06-15refactor(ext/fetch): simplify fetch ops (#19494)Bartek Iwańczuk
Addresses feedback from https://github.com/denoland/deno/pull/19412#discussion_r1227912676
2023-06-14chore(ext/node): bring back changes to ClientRequest.onSocket (#19509)Leo Kettmeir
Reverts denoland/deno#19426
2023-06-13fix(node/buffer): make slice be the same as subarray (#19481)Leo Kettmeir
2023-06-13fix(ext/node): handle 'upgrade' responses (#19412)Bartek Iwańczuk
This commit adds support for "upgrade" events in "node:http" "ClientRequest". Currently only "Websocket" upgrades are handled. Thanks to this change package like "npm:puppeteer" and "npm:discord" should work. Closes https://github.com/denoland/deno/issues/18913 Closes https://github.com/denoland/deno/issues/17847
2023-06-13feat(node): HTTPS server (#19362)Leo Kettmeir
2023-06-12feat: Adaptations to support OpenBSD port (#19153)VlkrS
2023-06-09chore: forward v1.34.2 release commit to main (#19434)denobot
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-08chore(ext/node): revert changes to ClientRequest.onSocket (#19426)Bartek Iwańczuk
Partially reverts https://github.com/denoland/deno/pull/19340 because it causes hangs in some situations.