profile
viewpoint
Anatoli Papirovski apapirovski Toronto, ON I do JavaScript & Go things. Node.js Core Collaborator and TSC Member. Work @postmates (he/him)

nodejs/node-core-utils 110

CLI tools for Node.js Core collaborators

apapirovski/babel 0

:tropical_fish: Babel is a compiler for writing next generation JavaScript.

apapirovski/DefinitelyTyped 0

The repository for high quality TypeScript type definitions.

apapirovski/emotion 0

style as a function of state

apapirovski/end-of-stream 0

Call a callback when a readable/writable/duplex stream has completed or failed.

apapirovski/libuv 0

Cross-platform asynchronous I/O

apapirovski/node 0

Node.js JavaScript runtime :sparkles::turtle::rocket::sparkles:

apapirovski/node-core-utils 0

CLI tools for Node.js Core collaborators

apapirovski/node-templating-benchmark 0

Node.js templating benchmark (React, Nunjucks, ES6)

apapirovski/react 0

A declarative, efficient, and flexible JavaScript library for building user interfaces.

issue commentnodejs/TSC

TSC consensus on Async storage API in core

+1, same as @jasnell

mhdawson

comment created time in a month

pull request commentnodejs/node

async_hooks: remove internal only error checking

The latest CI posted above passed without any issues.

apapirovski

comment created time in a month

issue commentnodejs/node

http2: sessionError vs aborted

Likely means these clients don’t gracefully terminate their sessions. Unfortunately lack if conformance with the spec is rather common.

ronag

comment created time in a month

issue commentnodejs/TSC

Node.js future directions - any interest in online or in person summit?

Very big +1 from me. I think a focused summit on this topic would be very productive. Ideally it's in person much like the diagnostics summit.

mhdawson

comment created time in a month

Pull request review commentnodejs/TSC

doc: add minutes for meeting Jan 8 2020

+# Node.js Foundation Technical Steering Committee (TSC) Meeting 2020-01-08
+
+
+## Links
+
+
+* **Recording**:  https://youtu.be/owCRMkiAWWY
+* **GitHub Issue**: https://github.com/nodejs/TSC/issues/796
+* **Minutes Google Doc**: $MINUTES_DOC$
+
+
+## Present
+
+* Anatoli Papirovski @apapirovski (TSC)
+* Beth Griggs @BethGriggs (TSC)
+* Сковорода Никита Андреевич @ChALkeR (TSC)
+* Colin Ihrig @cjihrig (TSC)
+* Gireesh Punathil @gireeshpunathil (TSC)
+* James Snell @jasnell (TSC)
+* Matteo Collina @mcollina (TSC)
+* Michael Dawson @mhdawson (TSC)
+* Michaël Zasso @targos (TSC)
+* Sam Roberts @sam-github (TSC)
+* Tobias Nießen @tniessen (TSC)
+
+## Agenda
+
+### Announcements
+
+
+* Matteo.  Work for next collaborator summit is starting (Austin in July). If you want to get
+  involved this is the issue to look at: https://github.com/openjs-foundation/summit/issues/236
+
+### CPC and Board Meeting Updates
+
+* Michael some progress on new build resources based on request to board. Some names from
+  Microsoft forwarded to me, will be connecting them to build WG
+*  CPC
+  * Matteo: email sent with respect to 2nd director (what are our TSC/Commcom thoughts on what that
+    director seat would be used for next year as it was only dedicated to the Node.js project for the 
+    first year)
+ 
+*Extracted from **tsc-agenda** labeled issues and pull requests from the **nodejs org** prior to the meeting.
+
+### nodejs/node
+
+* doc: add runkit embeds [#30241](https://github.com/nodejs/node/pull/30241)
+  * CommComm has agreed that website will/can use runkit.
+  * PR to add runkit embed to our documentation
+  * Matteo, added to agenda as we should discuss a new dependency for our repo
+  * If outage, then just looks the same as it would today.
+  * Background: https://github.com/nodejs/website-redesign/issues/12
+  * There are some concerns from the TSC.
+    * Its the first external dependency and there was some discussion about the risk of code/JavaScript 
+      that comes from outside the repo
+    * executing JavaScript code from their domain in our region.
+    * tracking our users
+    * what happens if there are outages (seems like it degrades nicely to just show the code)
+    * redirecting users 
+    * do we need to warn people that some content is coming from outside
+    * can we make it optional to enable runkit.
+    * Asked in issue if we can get somebody to come to meeting to discuss
+
+* async-hooks: introduce async-storage API [#26540](https://github.com/nodejs/node/pull/26540)
+  * 2 competing PRs, objection indicating that it should be in user land
+  * Matteo, does think should be in core
+  * Michael, also leans towards having in core
+  * Ask is that more TSC members review/weigh in on the issue
+
+* http2: make compat finished match http/1 [#24347](https://github.com/nodejs/node/pull/24347)
+  * waiting on review from  James
+  * Anatoli was worked through issue with Ronag, believes it is ready to go no, so unblocked.

has worked through

ready to go now

mhdawson

comment created time in a month

Pull request review commentnodejs/TSC

doc: add minutes for meeting Jan 8 2020

+# Node.js Foundation Technical Steering Committee (TSC) Meeting 2020-01-08
+
+
+## Links
+
+
+* **Recording**:  https://youtu.be/owCRMkiAWWY
+* **GitHub Issue**: https://github.com/nodejs/TSC/issues/796
+* **Minutes Google Doc**: $MINUTES_DOC$
+
+
+## Present
+
+* Anatoli Papirovski @apapirovski (TSC)
+* Beth Griggs @BethGriggs (TSC)
+* Сковорода Никита Андреевич @ChALkeR (TSC)
+* Colin Ihrig @cjihrig (TSC)
+* Gireesh Punathil @gireeshpunathil (TSC)
+* James Snell @jasnell (TSC)
+* Matteo Collina @mcollina (TSC)
+* Michael Dawson @mhdawson (TSC)
+* Michaël Zasso @targos (TSC)
+* Sam Roberts @sam-github (TSC)
+* Tobias Nießen @tniessen (TSC)
+
+## Agenda
+
+### Announcements
+
+
+* Matteo.  Work for next collaborator summit is starting (Austin in July). If you want to get
+  involved this is the issue to look at: https://github.com/openjs-foundation/summit/issues/236
+
+### CPC and Board Meeting Updates
+
+* Michael some progress on new build resources based on request to board. Some names from
+  Microsoft forwarded to me, will be connecting them to build WG
+*  CPC
+  * Matteo: email sent with respect to 2nd director (what are our TSC/Commcom thoughts on what that
+    director seat would be used for next year as it was only dedicated to the Node.js project for the 
+    first year)
+ 
+*Extracted from **tsc-agenda** labeled issues and pull requests from the **nodejs org** prior to the meeting.
+
+### nodejs/node
+
+* doc: add runkit embeds [#30241](https://github.com/nodejs/node/pull/30241)
+  * CommComm has agreed that website will/can use runkit.
+  * PR to add runkit embed to our documentation
+  * Matteo, added to agenda as we should discuss a new dependency for our repo
+  * If outage, then just looks the same as it would today.
+  * Background: https://github.com/nodejs/website-redesign/issues/12
+  * There are some concerns from the TSC.
+    * Its the first external dependency and there was some discussion about the risk of code/JavaScript 
+      that comes from outside the repo
+    * executing JavaScript code from their domain in our region.
+    * tracking our users
+    * what happens if there are outages (seems like it degrades nicely to just show the code)
+    * redirecting users 
+    * do we need to warn people that some content is coming from outside
+    * can we make it optional to enable runkit.
+    * Asked in issue if we can get somebody to come to meeting to discuss
+
+* async-hooks: introduce async-storage API [#26540](https://github.com/nodejs/node/pull/26540)
+  * 2 competing PRs, objection indicating that it should be in user land
+  * Matteo, does think should be in core
+  * Michael, also leans towards having in core
+  * Ask is that more TSC members review/weigh in on the issue
+
+* http2: make compat finished match http/1 [#24347](https://github.com/nodejs/node/pull/24347)
+  * waiting on review from  James
+  * Anatoli was worked through issue with Ronag, believes it is ready to go no, so unblocked.
+* process: add CLI opt to hide experimental warnings[31000]( https://github.com/nodejs/node/pull/31000)
+  * TSC members asked that we discuss this week to get started.
+  * James, sets bad precedent, we have the warnings as we don’t want people to use them in 
+    production. So not easy to hide them on their own.
+  * Gireesh, counter argument is forcing people to suppress all of them is worse, once people
+    know they are using experimental features then do they need to have them displayed every
+    time.
+  * Michael, is it that suppress startup warnings, 
+  * Anatoli not all experimental warnings are at startup.
+  * James, would be better if we could switch off specific warnings. Would require identifier for
+    each warning.
+  * Michael/Anatoli suggestion of excluding specific warnings.

agree with suggestion...

mhdawson

comment created time in a month

pull request commentnodejs/node

http2: make compat finished match http/1

review cb behaviour when ending and destroyed. Is ´onStreamCloseResponse` required?

Yup, it is. We need to trigger those events in the HEAD case, as well as cleanup the proxy socket and other junk since otherwise they're mutually referencing each other and could cause memory leaks.

ronag

comment created time in a month

push eventapapirovski/node

Anatoli Papirovski

commit sha b2b98e5c9b3637243a772f290d40d70179066a42

fixup

view details

push time in a month

issue commentnodejs/node

13.5 broke tap's error handling

Haven't forgotten about this btw. Slightly bigger change but should have it done soon.

isaacs

comment created time in a month

pull request commentnodejs/node

async_hooks: remove internal only error checking

Sorry for the delay @Trott @BridgeAR — didn't want to do the lazy fix and didn't have time with my move to get around to this until now. This test can now run with workers too.

apapirovski

comment created time in a month

push eventapapirovski/node

Anatoli Papirovski

commit sha deb5e67d051ce4ce8b3afdc3700b10ce60fa1b70

fixup

view details

push time in a month

Pull request review commentnodejs/node

http2: make compat finished match http/1

 const {   const server = createServer(mustCall((request, response) => {     response.writeHead(HTTP_STATUS_OK, { foo: 'bar' });     response.stream.on('close', mustCall(() => {-      response.end(mustCall());+      response.end(mustNotCall());

This change is incorrect... the cb should still fire even after the underlying stream closes.

ronag

comment created time in a month

pull request commentnodejs/node

http2: make compat finished match http/1

The main problem and the reason for me not being able to really respond here is that my test suite for express no longer works with newer version of Node. Trying to figure out how to get that monkeypatched mess to work is a huge ordeal and despite spending time on it, I haven't been able to get it to work.

So there are two options here:

  1. People can trust me that I didn't just write that code for no reason, which will necessitate an actual investigation and trying to get those tests to work again.
  2. We can land this and have the compatibility mode get worse... 🤷‍♂

Express & related modules have by far the most comprehensive suite that tests for "unexpected" and "edge-case" behavior of http, hence my original usage of it when working on improving the http2 compatibility mode.

ronag

comment created time in a month

pull request commentnodejs/node

http2: make compat finished match http/1

I'm no longer blocking this but I still do not believe this is correct. Since I haven't found the time to make that clearer, I can't in good conscience keep blocking this.

ronag

comment created time in a month

issue commentnodejs/node

13.5 broke tap's error handling

A couple of options:

  1. Revert, but then the reproduction instead becomes having your test throw in a nextTick. It's still wrong and broken.

  2. Rip out async hooks resolution out of _fatalException and instead have a wrapper that isn't monkey patchable and calls _fatalException. That's ultimately likely the more correct solution.

If there are no objections for 2, I'll get something coded up tomorrow.

isaacs

comment created time in 2 months

issue commentnodejs/node

13.5 broke tap's error handling

Hrmmm... this is problematic. Patching _fatalException in this way also means any errors in nextTick & such will result in the same async stack corruption.

The problem is that the expectation was ever set that this is a valid behaviour, since it just isn't.

isaacs

comment created time in 2 months

delete branch apapirovski/node

delete branch : next-tick-stuffs

delete time in 2 months

PR closed nodejs/node

process: remove TickInfo C++ blocked lib / src

Judging by a variety of benchmarks (http, nextTick, etc.), there does not appear to be any particular performance benefit from maintaining this state to avoid this call into JavaScript.

In absence of that performance reason, it makes more sense to just simplify this (rather complex) code.

Perhaps a controversial change... and I'll also run most of the benchmarks in CI to try and get as much visibility into the impact.

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [ ] tests and/or benchmarks are included
  • [ ] documentation is changed or added
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -118

5 comments

7 changed files

apapirovski

pr closed time in 2 months

pull request commentnodejs/node

process: remove TickInfo

As per above, cleaning up some other code first then will bring this back, don't want the PR just sitting around until then.

apapirovski

comment created time in 2 months

pull request commentnodejs/node

async_hooks: remove internal only error checking

Not sure but CI results suggest that running tools/testpy --worker might produce a relevant failure?

Kinda. I just overestimated the ability to remove the current common.skip so I guess back to having that in there.

apapirovski

comment created time in 2 months

pull request commentnodejs/node

process: remove TickInfo

The nice thing about this PR is that I'm finding all the places we're missing set_can_call_into_js(false) 🤣Separate PR to fix that coming up.

apapirovski

comment created time in 2 months

pull request commentnodejs/node

process: remove TickInfo

FWIW the ones I did run that should've been negatively affected are both timers-depth and immediates-depth. Those repeatedly call into JS from C++ but I actually see a performance improvement rather than a regression.

apapirovski

comment created time in 2 months

pull request commentnodejs/node

process: remove TickInfo

I’m surprised that this optimization isn’t worth it … http or nextTick seem to be candidates where there’s usually a nextTick scheduled during the callback, so that’s maybe not a fair benchmark? :)

Yeah, I've run a few different benchmarks. As you mentioned, the ones I called out mostly schedule a good number of nextTicks. I'll keep running the rest of the benchmark suite locally and on CI.

apapirovski

comment created time in 2 months

Pull request review commentnodejs/node

process: remove TickInfo

 void InternalCallbackScope::Close() {     return;   } -  TickInfo* tick_info = env_->tick_info();-   if (!env_->can_call_into_js()) return;    auto weakref_cleanup = OnScopeLeave([&]() { env_->RunWeakRefCleanup(); }); -  if (!tick_info->has_tick_scheduled()) {-    MicrotasksScope::PerformCheckpoint(env_->isolate());-  }-   // Make sure the stack unwound properly. If there are nested MakeCallback's   // then it should return early and not reach this code.   if (env_->async_hooks()->fields()[AsyncHooks::kTotals]) {     CHECK_EQ(env_->execution_async_id(), 0);     CHECK_EQ(env_->trigger_async_id(), 0);   } -  if (!tick_info->has_tick_scheduled() && !tick_info->has_rejection_to_warn()) {-    return;-  }-   HandleScope handle_scope(env_->isolate());   Local<Object> process = env_->process_object(); -  if (!env_->can_call_into_js()) return;

There's one above (line 104), I don't think we do anything that would change the state of it between there and here now? (Prior to that it was the microtask queue.)

apapirovski

comment created time in 2 months

PR opened nodejs/node

Reviewers
process: remove TickInfo

Judging by a variety of benchmarks (http, nextTick, etc.), there does not appear to be any particular performance benefit from maintaining this state to avoid this call into JavaScript.

In absence of that performance reason, it makes more sense to just simplify this (rather complex) code.

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [ ] tests and/or benchmarks are included
  • [ ] documentation is changed or added
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -118

0 comment

7 changed files

pr created time in 2 months

create barnchapapirovski/node

branch : next-tick-stuffs

created branch time in 2 months

PR opened nodejs/node

async_hooks: remove internal only error checking

This error checking is mostly unnecessary and is just a Node core developer nicety, rather than something that is needed for the user-land. It can be safely removed without any practical impact while making nextTick, timers, immediates and AsyncResource substantially faster.

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [ ] tests and/or benchmarks are included
  • [ ] documentation is changed or added
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+11 -108

0 comment

4 changed files

pr created time in 2 months

create barnchapapirovski/node

branch : remove-internal-ah-type-validation

created branch time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {-    const state = this[kState];-     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (typeof cb !== 'function')-      cb = nop;--    let err;-    if (state.ending) {-      err = new ERR_STREAM_WRITE_AFTER_END();-    } else if (state.destroyed) {-      err = new ERR_STREAM_DESTROYED('write');-    } else if (state.closed) {-      err = new ERR_HTTP2_INVALID_STREAM();-    }--    if (err) {-      process.nextTick(cb, err);+    if (this[kState].ending) {+      const err = new ERR_STREAM_WRITE_AFTER_END();+      if (typeof cb === 'function')+        process.nextTick(cb, err);       this.destroy(err);-      return;+      return false;+    } else if (this[kState].closed) {

(It was mentioned in the linked issue, hence me bringing it up.)

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {       encoding = 'utf8';     } -    if (this[kState].closed) {+    if (this[kState].ending) {+      const err = new ERR_STREAM_WRITE_AFTER_END();+      if (typeof cb === 'function')+        process.nextTick(cb, err);+      this.destroy(err);+      return false;+    } else if (this[kState].closed) {       const err = new ERR_HTTP2_INVALID_STREAM();       if (typeof cb === 'function')         process.nextTick(cb, err);-      else-        throw err;-      return;+      this.destroy(err);+      return false;+    } else if (this[kState].destroyed) {+      return false;

I think this could look similar to how it did before with const state = this[kState] and let err and then one block to do the repeated nextTick & destroy stuff. That part seemed cleaner to me.

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {-    const state = this[kState];-     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (typeof cb !== 'function')-      cb = nop;--    let err;-    if (state.ending) {-      err = new ERR_STREAM_WRITE_AFTER_END();-    } else if (state.destroyed) {-      err = new ERR_STREAM_DESTROYED('write');-    } else if (state.closed) {-      err = new ERR_HTTP2_INVALID_STREAM();-    }--    if (err) {-      process.nextTick(cb, err);+    if (this[kState].ending) {+      const err = new ERR_STREAM_WRITE_AFTER_END();+      if (typeof cb === 'function')+        process.nextTick(cb, err);       this.destroy(err);-      return;+      return false;+    } else if (this[kState].closed) {

My other outstanding question regarding closed stands. Might be good to get @jasnell @addaleax to weigh in too. Seems like this existing error is not in the spirit of compatibility which could cause people issues...

(Could also be left for a separate PR.)

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {+    const state = this[kState];+     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (this[kState].closed) {-      const err = new ERR_HTTP2_INVALID_STREAM();-      if (typeof cb === 'function')-        process.nextTick(cb, err);-      else-        throw err;+    if (typeof cb !== 'function')+      cb = nop;++    let err;+    if (state.ending) {+      err = new ERR_STREAM_WRITE_AFTER_END();+    } else if (state.destroyed) {+      err = new ERR_STREAM_DESTROYED('write');

To expand on this: right now http1 will only error with ERR_STREAM_WRITE_AFTER_END if you explicitly call end. In all other cases it just fails silently. We probably also need to remove the state.closed error to get closer to compatibility.

ronag

comment created time in 2 months

PR opened nodejs/node

Reviewers
async_hooks: proper handling for AH in runInAsyncScope

We should never try to manually run emitAfter in case of an error, the exception handler will do it for us, if we're going to recover.

This PR expands on the fix in https://github.com/nodejs/node/pull/30087

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [ ] tests and/or benchmarks are included
  • [ ] documentation is changed or added
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+7 -9

0 comment

1 changed file

pr created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    destroy(err) {-    if (this[kState].closed)+    const stream = this[kStream];

No real reason to make this a variable, right?

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {+    const state = this[kState];+     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (this[kState].closed) {-      const err = new ERR_HTTP2_INVALID_STREAM();-      if (typeof cb === 'function')-        process.nextTick(cb, err);-      else-        throw err;+    if (typeof cb !== 'function')+      cb = nop;++    let err;+    if (state.ending) {+      err = new ERR_STREAM_WRITE_AFTER_END();+    } else if (state.destroyed) {+      err = new ERR_STREAM_DESTROYED('write');

This is explicitly different from http which fails silently when the socket is destroyed but we're not aware of it actually being closed. That presents a problem if we think about it from a compatibility perspective.

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {+    const state = this[kState];+     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (this[kState].closed) {-      const err = new ERR_HTTP2_INVALID_STREAM();-      if (typeof cb === 'function')-        process.nextTick(cb, err);-      else-        throw err;+    if (typeof cb !== 'function')+      cb = nop;++    let err;+    if (state.ending) {+      err = new ERR_STREAM_WRITE_AFTER_END();

Do we want HTTP2 specific errors?

ronag

comment created time in 2 months

Pull request review commentnodejs/node

http2: make HTTP2ServerResponse.write more streams compliant

 class Http2ServerResponse extends Stream {   }    write(chunk, encoding, cb) {+    const state = this[kState];+     if (typeof encoding === 'function') {       cb = encoding;       encoding = 'utf8';     } -    if (this[kState].closed) {-      const err = new ERR_HTTP2_INVALID_STREAM();-      if (typeof cb === 'function')-        process.nextTick(cb, err);-      else-        throw err;+    if (typeof cb !== 'function')

I'm not sure there's a benefit to nop callback vs just moving this check to process.nextTick(cb, err);.

ronag

comment created time in 2 months

create barnchapapirovski/node

branch : simplify-run-in-async-scope

created branch time in 2 months

pull request commentnodejs/node

http2: fix graceful session close

@lundibundi I can spend a little bit of time digging into this over the next week. I'll need to dig up my notes but I went in this direction at one point and abandoned it because of the same Windows problems. 😞

lundibundi

comment created time in 2 months

delete branch apapirovski/node

delete branch : remove-unnecessary-bind

delete time in 2 months

push eventapapirovski/node

Anatoli Papirovski

commit sha a560c73dc8bf44f7a4645c5ddecec8dbdd575dff

http2: remove unnecessary bind from setImmediate

view details

Anatoli Papirovski

commit sha d077f007a253377f92be96c64414800c1a23372a

cluster: remove unnecessary bind

view details

push time in 2 months

pull request commentnodejs/node

timers: allow timers to be used as primitives

This will PR will land one day... maybe... I hope 😞

apapirovski

comment created time in 2 months

pull request commentnodejs/node

timers: do less work in insert

CI: https://ci.nodejs.org/job/node-test-pull-request/27640/

apapirovski

comment created time in 2 months

push eventapapirovski/node

cclauss

commit sha 99f80604ad1dc9bfeb2b0b7bb77f51c06cd919db

tools: fix Python 3 issues in gyp/generator/make.py PR-URL: https://github.com/nodejs/node/pull/29214 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

cclauss

commit sha d937b029a99064514965def31ef226dc959e1597

tools: fix Python 3 issues in tools/icu/icutrim.py PR-URL: https://github.com/nodejs/node/pull/29213 Reviewed-By: Steven R Loomis <srloomis@us.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

Brian White

commit sha f0c8898fb5e8b133001bbea42f1288805d4d4802

buffer: improve equals() performance PR-URL: https://github.com/nodejs/node/pull/29199 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Christian Clauss

commit sha 6afd1a3dc183eb0edfde878df7a655cc58caece4

tools: fix mixup with bytes.decode() and str.encode() We want to read a bytes file and decode the contents as utf-8 so we can compare against a utf-8 pattern. PR-URL: https://github.com/nodejs/node/pull/29208 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Brian White

commit sha 775048d54c6f190cbc8c0b55c0b53d2ba9d4d028

buffer: correct concat() error message PR-URL: https://github.com/nodejs/node/pull/29198 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Daniel Bevenius

commit sha db3fdfbcb68bb83fab9c0f3c9cb282e41297fa70

build: move tooltest to before jstest target This commit moves the tooltest target to come before the jstest target to make the console output consistent with it was before I introduced the tooltest target. Currently the output looks like this which is might give the impression that only one test was run: /Applications/Xcode.app/Contents/Developer/usr/bin/make -s tooltest . ---------------------------------------------------------------------- Ran 1 test in 0.000s Compared to the usual: [03:58|% 100|+ 2739|- 0]: Done PR-URL: https://github.com/nodejs/node/pull/29220 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

cjihrig

commit sha 6c5ca74c9313e52cd5bba351d558f75240eb3fd6

test: fix 'timeout' typos I don't think so, Tim. PR-URL: https://github.com/nodejs/node/pull/29234 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

MattIPv4

commit sha 6726f567d7110c0e3f402babb6e0bbdfd2a97156

gyp: remove semicolons (Python != JavaScript) PR-URL: https://github.com/nodejs/node/pull/29228 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Ben Noordhuis

commit sha ceace1f96eb0862a2944bc38c2e897974169f622

crypto: handle i2d_SSL_SESSION() error return i2d_SSL_SESSION() can return a value <= 0 when the session is malformed or otherwise invalid. Handle that case. This change comes without a regression test because I couldn't figure out a good way to generate an existing but invalid session in a timely fashion. Fixes: https://github.com/nodejs/node/issues/29202 PR-URL: https://github.com/nodejs/node/pull/29225 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Giorgos Ntemiris

commit sha eeea3fb91b8dd177cf284a9cf7de0aec008c4e84

fs: allow passing true to emitClose option Allow passing true for emitClose option for fs streams. Fixes: https://github.com/nodejs/node/issues/29177 PR-URL: https://github.com/nodejs/node/pull/29212 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Rich Trott

commit sha cb9212695507c552ae08cbfdbefd0055c708c307

test: add `emitClose: true` tests for fs streams PR-URL: https://github.com/nodejs/node/pull/29212 Fixes: https://github.com/nodejs/node/issues/29177 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Rich Trott

commit sha 47ff44e08e3a7e7a734fcd87c0043e47589aa545

doc: add emitClose option for fs streams PR-URL: https://github.com/nodejs/node/pull/29212 Fixes: https://github.com/nodejs/node/issues/29177 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Saúl Ibarra Corretgé

commit sha 2fc87685d90ea9a8ad21d2f4515eaf329d71b3f1

module: avoid passing unnecessary loop reference It's a sync request, which doesn't require the loop parameter to be set. PR-URL: https://github.com/nodejs/node/pull/29275 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Robert Nagy

commit sha 4e188b3c63f0488be03a1f723b9b50720c76fed4

stream: async iterator destroy compat async iterator should not depend on internal API for better compat with streamlike objects. PR-URL: https://github.com/nodejs/node/pull/29176 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Robert Nagy

commit sha f39ad8a91fe43a4bfc427915a5bf2b749f00c048

http: fix event listener leak Fixes: https://github.com/nodejs/node/issues/29239 PR-URL: https://github.com/nodejs/node/pull/29245 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

view details

Trivikram Kamat

commit sha 824b3e2a552560322730d3baeae2d6e116c7bcd0

doc: indicate that Http2ServerResponse extends Stream Also removes the redundant statement explained by "extends Stream". PR-URL: https://github.com/nodejs/node/pull/29254 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Trivikram Kamat

commit sha 31c3fc075b471882f6c4ecfc322d857516c8b016

doc: indicate that Http2ServerRequest extends Readable PR-URL: https://github.com/nodejs/node/pull/29253 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Trivikram Kamat

commit sha 2b1bcba385af380e3eaffd44315c83d3c0201cfe

doc: add missing extends Http2Session Adds missing extends Http2Session for ClientHttp2Session and ServerHttp2Session. PR-URL: https://github.com/nodejs/node/pull/29252 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

cjihrig

commit sha 53816cce699d02fb28a49b258e1fbc474568bbf8

fs: add recursive option to rmdir() This commit adds a recursive option to fs.rmdir(), fs.rmdirSync(), and fs.promises.rmdir(). The implementation is a port of the npm module rimraf. PR-URL: https://github.com/nodejs/node/pull/29168 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Ben Coe <bencoe@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Vse Mozhet Byt

commit sha 9d21b0395cc248a0e5537a11cc84f61919eccca6

doc: fix nits in esm.md * ```mjs -> ```js as our linting of doc code fragments does not recognize this tag, IIRC. * Add semicolons to a code fragment. * Fix ASCII sorting in bottom references. PR-URL: https://github.com/nodejs/node/pull/29242 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>

view details

push time in 2 months

push eventapapirovski/node

Anatoli Papirovski

commit sha e99a42ba5353a4250615fd0493d10baf59031c89

lib: remove unnecessary bind from stream_base Add the ability to pass arguments to setUnrefTimeout and as a result, make it possible to remove a bind in http & http2 hot path.

view details

Anatoli Papirovski

commit sha c35927e2c947f8c208b6d08b732b92f6af5bfca7

http2: remove unnecessary bind from setImmediate

view details

Anatoli Papirovski

commit sha 193f0c256c1bb0647add4b341b5a73e1d241b917

cluster: remove unnecessary bind

view details

push time in 2 months

pull request commentnodejs/node

lib: remove unnecessary bind

Well, this is a blast from the past. Thought I merged it...

CI: https://ci.nodejs.org/job/node-test-pull-request/27637/

apapirovski

comment created time in 2 months

push eventapapirovski/node

Christian Clauss

commit sha 6afd1a3dc183eb0edfde878df7a655cc58caece4

tools: fix mixup with bytes.decode() and str.encode() We want to read a bytes file and decode the contents as utf-8 so we can compare against a utf-8 pattern. PR-URL: https://github.com/nodejs/node/pull/29208 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Brian White

commit sha 775048d54c6f190cbc8c0b55c0b53d2ba9d4d028

buffer: correct concat() error message PR-URL: https://github.com/nodejs/node/pull/29198 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Daniel Bevenius

commit sha db3fdfbcb68bb83fab9c0f3c9cb282e41297fa70

build: move tooltest to before jstest target This commit moves the tooltest target to come before the jstest target to make the console output consistent with it was before I introduced the tooltest target. Currently the output looks like this which is might give the impression that only one test was run: /Applications/Xcode.app/Contents/Developer/usr/bin/make -s tooltest . ---------------------------------------------------------------------- Ran 1 test in 0.000s Compared to the usual: [03:58|% 100|+ 2739|- 0]: Done PR-URL: https://github.com/nodejs/node/pull/29220 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

cjihrig

commit sha 6c5ca74c9313e52cd5bba351d558f75240eb3fd6

test: fix 'timeout' typos I don't think so, Tim. PR-URL: https://github.com/nodejs/node/pull/29234 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

MattIPv4

commit sha 6726f567d7110c0e3f402babb6e0bbdfd2a97156

gyp: remove semicolons (Python != JavaScript) PR-URL: https://github.com/nodejs/node/pull/29228 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Ben Noordhuis

commit sha ceace1f96eb0862a2944bc38c2e897974169f622

crypto: handle i2d_SSL_SESSION() error return i2d_SSL_SESSION() can return a value <= 0 when the session is malformed or otherwise invalid. Handle that case. This change comes without a regression test because I couldn't figure out a good way to generate an existing but invalid session in a timely fashion. Fixes: https://github.com/nodejs/node/issues/29202 PR-URL: https://github.com/nodejs/node/pull/29225 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Giorgos Ntemiris

commit sha eeea3fb91b8dd177cf284a9cf7de0aec008c4e84

fs: allow passing true to emitClose option Allow passing true for emitClose option for fs streams. Fixes: https://github.com/nodejs/node/issues/29177 PR-URL: https://github.com/nodejs/node/pull/29212 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Rich Trott

commit sha cb9212695507c552ae08cbfdbefd0055c708c307

test: add `emitClose: true` tests for fs streams PR-URL: https://github.com/nodejs/node/pull/29212 Fixes: https://github.com/nodejs/node/issues/29177 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Rich Trott

commit sha 47ff44e08e3a7e7a734fcd87c0043e47589aa545

doc: add emitClose option for fs streams PR-URL: https://github.com/nodejs/node/pull/29212 Fixes: https://github.com/nodejs/node/issues/29177 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Saúl Ibarra Corretgé

commit sha 2fc87685d90ea9a8ad21d2f4515eaf329d71b3f1

module: avoid passing unnecessary loop reference It's a sync request, which doesn't require the loop parameter to be set. PR-URL: https://github.com/nodejs/node/pull/29275 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Robert Nagy

commit sha 4e188b3c63f0488be03a1f723b9b50720c76fed4

stream: async iterator destroy compat async iterator should not depend on internal API for better compat with streamlike objects. PR-URL: https://github.com/nodejs/node/pull/29176 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Robert Nagy

commit sha f39ad8a91fe43a4bfc427915a5bf2b749f00c048

http: fix event listener leak Fixes: https://github.com/nodejs/node/issues/29239 PR-URL: https://github.com/nodejs/node/pull/29245 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

view details

Trivikram Kamat

commit sha 824b3e2a552560322730d3baeae2d6e116c7bcd0

doc: indicate that Http2ServerResponse extends Stream Also removes the redundant statement explained by "extends Stream". PR-URL: https://github.com/nodejs/node/pull/29254 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Trivikram Kamat

commit sha 31c3fc075b471882f6c4ecfc322d857516c8b016

doc: indicate that Http2ServerRequest extends Readable PR-URL: https://github.com/nodejs/node/pull/29253 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Trivikram Kamat

commit sha 2b1bcba385af380e3eaffd44315c83d3c0201cfe

doc: add missing extends Http2Session Adds missing extends Http2Session for ClientHttp2Session and ServerHttp2Session. PR-URL: https://github.com/nodejs/node/pull/29252 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

cjihrig

commit sha 53816cce699d02fb28a49b258e1fbc474568bbf8

fs: add recursive option to rmdir() This commit adds a recursive option to fs.rmdir(), fs.rmdirSync(), and fs.promises.rmdir(). The implementation is a port of the npm module rimraf. PR-URL: https://github.com/nodejs/node/pull/29168 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Ben Coe <bencoe@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Vse Mozhet Byt

commit sha 9d21b0395cc248a0e5537a11cc84f61919eccca6

doc: fix nits in esm.md * ```mjs -> ```js as our linting of doc code fragments does not recognize this tag, IIRC. * Add semicolons to a code fragment. * Fix ASCII sorting in bottom references. PR-URL: https://github.com/nodejs/node/pull/29242 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>

view details

Brian White

commit sha 8292b280ec9e6b8c2444cbe49350facc77f5fefa

net: allow reading data into a static buffer Co-Authored-By: Anna Henningsen <anna@addaleax.net> PR-URL: https://github.com/nodejs/node/pull/25436 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

Daniel Bevenius

commit sha 0e715dea84d67a24624516c730aa71ed04971727

src: remove unused using declarations This commit removes unused using declarations in src/node_contextify.cc. PR-URL: https://github.com/nodejs/node/pull/29222 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

Robert Nagy

commit sha 033037cec99b3b20cfec25fcebd5ee68fbb30ad4

stream: avoid unecessary nextTick If we are not going to emit 'close' then there is no reason to schedule it. PR-URL: https://github.com/nodejs/node/pull/29194 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

push time in 2 months

issue commentopenjs-foundation/summit

Summit Topic: Node.js Streams promise support

That's much neater haha

which is arguably confusing

Yeah, I was just taking off from where Jeremiah left it. I can see why some people would want to have the option to not get unhandled rejections in certain scenarios when using the promisified API.

(Also need to handle the error event which I forgot to do, but yeah...)

mcollina

comment created time in 2 months

issue commentopenjs-foundation/summit

Summit Topic: Node.js Streams promise support

@benjamingr nope, meant that to be as is...

The implementation you've posted will reject a promise regardless. Avoiding that was an explicit design decision.

mcollina

comment created time in 2 months

issue commentopenjs-foundation/summit

Summit Topic: Node.js Streams promise support

I feel like something like this works reasonably well, whether you care about errors or not:

Writable.prototype.write[promisify.custom] = () =>
  function promisifiedWrite(chunk, encoding) {
    let syncErr;
    const needDrain = !this.write(chunk, encoding, (err) => {
      syncErr = err
    });

    const stream = this;
    return {
      then() {
        if (syncErr) {
          throw err;
        }

        if (needDrain) {
          return new Promise((resolve, reject) => {
            stream.once('error', reject);
            stream.once('drain', () => {
              stream.removeEventListener(reject);
              resolve();
            });
          });
        }
      }
    };
  };
mcollina

comment created time in 2 months

pull request commentnodejs/admin

travel fund request: @apapirovski for montreal collab summit

@nodejs/tsc @nodejs/community-committee please review

apapirovski

comment created time in 3 months

push eventnodejs/admin

Anatoli Papirovski

commit sha 1cc93f501c3f19264c7915fd1fe4d261d1eb3855

fixup

view details

push time in 3 months

PR opened nodejs/admin

travel fund request: @apapirovski for montreal collab summit

WIP. Will update once I have the hotel costs.

+1 -0

0 comment

1 changed file

pr created time in 3 months

create barnchnodejs/admin

branch : apapirovski/travel-fund

created branch time in 3 months

issue commentnodejs/TSC

Node.js Foundation Technical Steering Committee (TSC) Meeting 2019-11-27

Sick with the flu so can’t make it 😞

mhdawson

comment created time in 3 months

pull request commentnodejs/node

console,util: revert #23162

Reverting this makes sense to me. Reverting a semver-major, given that 12 is an LTS line, doesn’t. I think more of this discussion needs to cover that point.

BridgeAR

comment created time in 4 months

pull request commentnodejs/node

timers: always set _destroyed

@Fishrock123 yup, totally!

Fishrock123

comment created time in 5 months

pull request commentnodejs/node

timers: always set _destroyed

You’re probably thinking of https://github.com/nodejs/node/pull/27345/files. I’m still intending to merge. Personal things have been im the way.

Fishrock123

comment created time in 5 months

issue commentnodejs/TSC

Nominating @BethGriggs to the TSC

+1

MylesBorins

comment created time in 5 months

more