profile
viewpoint
Denys Otrishko lundibundi @metarhia Kyiv, Ukraine

gazinaft/Kursach 4

My kursach for basics of programming

HowProgrammingWorks/Association 2

Associations: Aggregation and Composition

KirillEmets/NeuralNetwork 1

Это репозиторий с курсовой на 1 курсе

ffluffyhedgehog/yaacrl 0

Yet Another Audio Content Recognition Library

lightballer/date-lib 0

Library for simplify working with dates

lundibundi/activitywatch 0

Log what you do on your computer. Simple (yet powerful), extensible, no third parties.

lundibundi/aw-core 0

Core library for ActivityWatch

lundibundi/aw-watcher-web 0

Browser watcher for ActivityWatch

lundibundi/aw-webui 0

A webapp for ActivityWatch built in Vue.js

lundibundi/babel 0

🐠 Babel is a compiler for writing next generation JavaScript.

pull request commentnodejs/node

build: fix landed message for multiple commits in commit-queue

@Trott The only one is that I didn't test this explicitly on i.e. node-auto-test as I didn't yet have to to do so, but this should 'just work' :smile: so we can probably land it and fix issues later, it shouldn't cause any major issues if it fails (same goes for https://github.com/nodejs/node/pull/35206)

lundibundi

comment created time in 7 hours

pull request commentnodejs/node

stream: fix legacy pipe error handling

@ronag no it doesn't, it will only autosquash if used with --fixup git command see https://github.com/nodejs/node/pull/34969#issuecomment-683340555 for more information.

I've implemented https://github.com/nodejs/node-core-utils/pull/490 but it is not yet integrated into this repo. (also - https://github.com/nodejs/node/issues/34770)

ronag

comment created time in a day

Pull request review commentnodejs/node

doc: outline when origin is set to unhandledRejection

 added: * `err` {Error} The uncaught exception. * `origin` {string} Indicates if the exception originates from an unhandled   rejection or from synchronous errors. Can either be `'uncaughtException'` or-  `'unhandledRejection'`.+  `'unhandledRejection'`. The latter is only used in conjunction with the+[`--unhandled-rejections`][] flag set to `strict` or `throw` and+an unhandled rejection.

No problem, thanks for opening a PR =).

mlarcher

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentnodejs/node

doc: outline when origin is set to unhandledRejection

 added: * `err` {Error} The uncaught exception. * `origin` {string} Indicates if the exception originates from an unhandled   rejection or from synchronous errors. Can either be `'uncaughtException'` or-  `'unhandledRejection'`.+  `'unhandledRejection'`. The latter is only used in conjunction with the+[`--unhandled-rejections`][] flag set to `strict` or `throw` and+an unhandled rejection.
  [`--unhandled-rejections`][] flag set to `strict` or `throw` and
  an unhandled rejection.
mlarcher

comment created time in 2 days

startedtc39/proposal-upsert

started time in 2 days

push eventmetarhia/metadoc

Denys Otrishko

commit sha c367e171155d09b8af50fc02df04e6c28fc4805c

fix(changelog): add entry regarding prioritizedEntries fixes Refs: https://github.com/metarhia/metadoc/pull/105 PR-URL: https://github.com/metarhia/metadoc/pull/105

view details

Denys Otrishko

commit sha bd75b2351535cb783995c2400f0f974a05678f04

feat(github): add PULL_REQUEST_TEMPLATE PR-URL: https://github.com/metarhia/metadoc/pull/105

view details

push time in 8 days

PR opened metarhia/metatests

Improve benchmarking readme
+125 -39

0 comment

2 changed files

pr created time in 8 days

create barnchmetarhia/metatests

branch : improve-bench-readme

created branch time in 8 days

delete branch lundibundi/fastify-cli

delete branch : improve-ts-template

delete time in 8 days

delete branch metarhia/metatests

delete branch : improve-bench-output

delete time in 8 days

push eventmetarhia/metatests

Denys Otrishko

commit sha a4f319d1cf0c8b6eaf28e9dcabd00c5e34369489

feat(bench): improve speed bench output PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha 42816a51340ac10621ec9cbe9b25d123c33448de

feat(cli): slightly improve target option message and small reorder PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha de3527e7bd8d89b529a5192374428416685a9cbe

feat(bench): change listener contract for measure * cycle - same as done before, called when each run is finished * done - is now called when all runs for a given configuration are finished with (name, args, results) PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha fb29ff34dbed53288073c760e22640a35afea1b5

feat(cli): simplify bench output by aggregating results PR-URL: https://github.com/metarhia/metatests/pull/250

view details

push time in 8 days

PR merged metarhia/metatests

feat(bench): improve speed bench output

New speed output:

$ metatests speed benchmarks/cases/setVsArray.js --target size5.match
...
Speed test
searchSet      792317500ns   min          12621202.98 ops/s ±1.64%
searchArray    824139121ns +4.02%         12133873.69 ops/s ±1.19%

Old speed output

$ metatests speed benchmarks/cases/setVsArray.js --target size5.match
...
Speed test
searchSet......................726039154.......min
searchArray...................1351735530...+86.18%

New measure output (the old output is still available with --verbose)

$ metatests measure benchmarks/example/create.js
defineObject   32972630.18 ops/s ±3.85%
mixinObject    34238572.84 ops/s ±1.72%

Old measure output

$ metatests measure benchmarks/example/create.js
defineObject    n=1000000:              27190838ns, 36777093.81ops/s
defineObject    n=1000000:              30433772ns, 32858233.94ops/s
defineObject    n=1000000:              30466257ns, 32823198.47ops/s
defineObject    n=1000000:              30604932ns, 32674472.21ops/s
defineObject    n=1000000:              31591362ns, 31654222.44ops/s
defineObject    n=1000000:              30758265ns, 32511586.72ops/s
defineObject    n=1000000:              30378491ns, 32918027.43ops/s
defineObject    n=1000000:              29996100ns, 33337667.23ops/s
defineObject    n=1000000:              30555639ns, 32727183.35ops/s
defineObject    n=1000000:              31740639ns, 31505351.86ops/s
defineObject    n=1000000:              31576109ns, 31669513.18ops/s
defineObject    n=1000000:              30549053ns, 32734238.93ops/s
defineObject    n=1000000:              29693945ns, 33676899.45ops/s
defineObject    n=1000000:              30464988ns, 32824565.69ops/s
defineObject    n=1000000:              30087619ns, 33236262.4ops/s
defineObject    n=1000000:              31392956ns, 31854279.67ops/s
defineObject    n=1000000:              29608957ns, 33773563.86ops/s
defineObject    n=1000000:              40608643ns, 24625299.59ops/s
defineObject    n=1000000:              40201016ns, 24874993.21ops/s
defineObject    n=1000000:              33822013ns, 29566542.95ops/s
mixinObject     n=1000000:              29733543ns, 33632049.84ops/s
mixinObject     n=1000000:              33056377ns, 30251349.08ops/s
mixinObject     n=1000000:              35438258ns, 28218091.31ops/s
mixinObject     n=1000000:              32281742ns, 30977262.63ops/s
mixinObject     n=1000000:              33958784ns, 29447461.96ops/s
mixinObject     n=1000000:              32509604ns, 30760140.91ops/s
mixinObject     n=1000000:              31235763ns, 32014585.33ops/s
mixinObject     n=1000000:              31415716ns, 31831201.94ops/s
mixinObject     n=1000000:              31566123ns, 31679531.88ops/s
mixinObject     n=1000000:              31124214ns, 32129325.42ops/s
mixinObject     n=1000000:              29919812ns, 33422669.9ops/s
mixinObject     n=1000000:              30891851ns, 32370996.48ops/s
mixinObject     n=1000000:              35654862ns, 28046665.84ops/s
mixinObject     n=1000000:              32572663ns, 30700590.86ops/s
mixinObject     n=1000000:              34478141ns, 29003883.94ops/s
mixinObject     n=1000000:              33451602ns, 29893934.53ops/s
mixinObject     n=1000000:              32389873ns, 30873847.51ops/s
mixinObject     n=1000000:              32102164ns, 31150547.98ops/s
mixinObject     n=1000000:              31317254ns, 31931279.8ops/s
mixinObject     n=1000000:              31230215ns, 32020272.68ops/s
+232 -32

0 comment

9 changed files

lundibundi

pr closed time in 8 days

pull request commentfastify/fastify-cli

Fix fastify routes command

ping @fox1t @mcollina @Ethan-Arrowood I think this can be landed. =)

lundibundi

comment created time in 8 days

pull request commentfastify/fastify-cli

Improve ts template and bump fastify-plugin

ping @fox1t @mcollina @Ethan-Arrowood I think this can be landed. =)

lundibundi

comment created time in 8 days

pull request commentnodejs/node

events: simplify event target agnostic logic in on and once

@ruyadorno these changes were applied on top of other changes related to AbortController (https://github.com/nodejs/node/pull/34911). I think it shouldn't be backported since AbortController is semver-major.

lundibundi

comment created time in 8 days

PullRequestReviewEvent

push eventlundibundi/node

Denys Otrishko

commit sha 10a2f5b1803a2734e7e2c82e6317ad64fa526298

fixup! build: fix landed message for multiple commits in commit-queue

view details

push time in 8 days

Pull request review commentnodejs/node

build: fix landed message for multiple commits in commit-queue

 for pr in "$@"; do     git node land --abort --yes   else     rm output-    git push origin master+    git push $UPSTREAM $DEFAULT_BRANCH -    gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$(git rev-parse HEAD)"'"}'+    commits="$(git merge-base $UPSTREAM/$DEFAULT_BRANCH HEAD)...$(git rev-parse HEAD)"

Oh, that's right, it should be done before the push :+1:

lundibundi

comment created time in 8 days

PullRequestReviewEvent

Pull request review commentnodejs/node

build: add Commit Queue actions url to failure comment

 for pr in "$@"; do   if ! tail -n 10 output | grep '. Post "Landed in .*/pull/'"${pr}"; then     gitHubCurl "$(labelsUrl "$pr")" POST --data '{"labels": ["'"${COMMIT_QUEUE_FAILED_LABEL}"'"]}' -    jq -n --arg content "<details><summary>Commit Queue failed</summary><pre>$(cat output)</pre></details>" '{body: $content}' > output.json+    cqurl="Commit Queue action: $GITHUB_SERVER_URL/${OWNER}/${REPOSITORY}/actions/runs/$GITHUB_RUN_ID"

I agree, but since this is bash and everything is kind of 'messy' (imo) I'd prefer to have it right beside the place of usage if you don't mind.

lundibundi

comment created time in 8 days

PullRequestReviewEvent

PR opened nodejs/node

build: fix landed message for multiple commits in commit-queue

<!-- 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
  • [x] tests and/or benchmarks are included
  • [x] 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. -->

Anyone knows of a better way than git merge-base?

Refs: https://github.com/nodejs/node/issues/34770#issuecomment-693201987

/cc @mmarchini @targos

+6 -2

0 comment

1 changed file

pr created time in 8 days

push eventlundibundi/node

Denys Otrishko

commit sha 3cc188b5928ec1929aa544849e132ec0d9f83241

build: fix landed message for multiple commits in commit-queue

view details

push time in 8 days

create barnchlundibundi/node

branch : fix-cq-multiple-commits

created branch time in 8 days

PR opened nodejs/node

build: add Commit Queue actions url to failure comment

<!-- 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. --> Refs: https://docs.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables Refs: https://github.com/nodejs/node/issues/34770#issuecomment-691290938

Not tested yet. I guess I should land this to node-auto-test to verify that it works? /cc @mmarchini

+2 -1

0 comment

1 changed file

pr created time in 9 days

create barnchlundibundi/node

branch : add-url-to-cq

created branch time in 9 days

push eventlundibundi/node

Denys Otrishko

commit sha eb21b09c8e4a27ba8fc1337a2cbc8e93ecfee604

fixup! lib: change ERR_INVALID_ARG_VALUE error message

view details

push time in 9 days

Pull request review commentnodejs/node

lib: change ERR_INVALID_ARG_VALUE error message

 const dnsPromises = require('dns').promises;     {       code: 'ERR_INVALID_ARG_VALUE',       name: 'TypeError',-      message: `The argument 'rrtype' is invalid. Received '${rrtype}'`+      message: `The 'rrtype' is invalid. Received '${rrtype}' argument`

Oh, good catch. Do we have a make command to run all tests?

lundibundi

comment created time in 9 days

PullRequestReviewEvent

PR opened metarhia/metadoc

Fix changelog and add template
+17 -0

0 comment

2 changed files

pr created time in 9 days

create barnchmetarhia/metadoc

branch : fix-changelog-and-template

created branch time in 9 days

delete branch metarhia/metatests

delete branch : fix-changelog-entries

delete time in 10 days

push eventmetarhia/metatests

Denys Otrishko

commit sha ed6137e690a638a5b283f3a18771cee06fc089fd

fix(changelog): add missing entries for benchmarking changes PR-URL: https://github.com/metarhia/metatests/pull/251

view details

push time in 10 days

issue commentfastify/help

Documentation for newest Typescript bindings

I think this can be closed with https://github.com/fastify/fastify/pull/2554 being landed.

ouifi

comment created time in 10 days

pull request commentnodejs/node

doc: add note regarding file structure in src/README.md

ping @addaleax @nodejs/documentation, wdyt https://github.com/nodejs/node/pull/35000#issuecomment-684518217?

lundibundi

comment created time in 10 days

issue closednodejs/node

ERR_MODULE_NOT_FOUND for nested package.json

<!-- Thank you for reporting an issue.

This issue tracker is for bugs and issues found within Node.js core. If you require more general support please file an issue on our help repo. https://github.com/nodejs/help

Please fill in as much of the template below as you're able.

Version: output of node -v Platform: output of uname -a (UNIX), or version and 32 or 64-bit (Windows) Subsystem: if known, please specify affected core module name -->

  • Version: v14.2.0 (npm v6.14.4) and node v13.14.0 (npm v6.14.4)
  • Platform: macOS
  • Subsystem:

What steps will reproduce the bug?

  • npm install firebase
  • create a file index.mjs to import it using import * as firebase from 'firebase/app'
  • node index.mjs

How often does it reproduce? Is there a required condition?

Consistently

What is the expected behavior?

Load firebase/app correctly instead of throwing ERR_MODULE_NOT_FOUND

<!-- If possible please provide textual output instead of screenshots. -->

What do you see instead?

feiyangc-macbookpro:node feiyangc$ node index.mjs 
internal/modules/run_main.js:54
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/feiyangc/Projects/test/node/node_modules/firebase/app' imported from /Users/feiyangc/Projects/test/node/index.mjs
Did you mean to import firebase/app/dist/index.cjs.js?
    at finalizeResolution (internal/modules/esm/resolve.js:277:11)
    at packageResolve (internal/modules/esm/resolve.js:608:14)
    at moduleResolve (internal/modules/esm/resolve.js:655:14)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:748:11)
    at Loader.resolve (internal/modules/esm/loader.js:97:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:243:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)
    at link (internal/modules/esm/module_job.js:41:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

<!-- If possible please provide textual output instead of screenshots. -->

Additional information

  • import * as firebase from 'firebase/app' works fine in Node 10 with --experimental-modules.

  • require('firebase/app') works correctly in all versions of Node.

About the firebase package structure

firebase/app is a subfolder in the firebase package. It has its own package.json (firebase/app/package.json) which defines a main field that points to firebase/app/dist/index.cjs.js. The structure looks like:

node_modules
-- firebase
  -- app
     -- dist
       -- index.cjs.js
       -- package.json // the main field points to ./dist/index.cjs.js
  -- package.json

<!-- Tell us anything else you think we should know. -->

closed time in 10 days

Feiyang1

pull request commentfastify/fastify

fix: fastify plugin types exports

I think this test is okay, the issue is that it (the fact that these properties are exported from fastify itself and not just from plugin.ts) was not tested at all before.

lundibundi

comment created time in 10 days

delete branch metarhia/metadoc

delete branch : fix-priority-order

delete time in 10 days

push eventmetarhia/metadoc

Denys Otrishko

commit sha dffc814aa680aea1ccb019d3c608022ece885260

fix: prioritizedEntries class sort order Fixes: https://github.com/metarhia/metadoc/issues/104 PR-URL: https://github.com/metarhia/metadoc/pull/105

view details

push time in 10 days

PR merged metarhia/metadoc

fix: prioritizedEntries class sort order

Fixes: https://github.com/metarhia/metadoc/issues/104

/cc @SemenchenkoVitaliy

+92 -34

0 comment

4 changed files

lundibundi

pr closed time in 10 days

issue closedmetarhia/metadoc

prioritizedEntries doesn't correctly handle nested entries

Having a class name in prioritizedEntries will result in class declaration being properly prioritized but the class methods, properties etc will not be handled resulting in 'torn' declarations in the output file.

closed time in 10 days

lundibundi

push eventmetarhia/metatests

Denys Otrishko

commit sha 05880ee8eddc16696e44276e1d7f92486ddd4cd7

fix(changelog): add missing entries for benchmarking changes PR-URL: https://github.com/metarhia/metatests/pull/251

view details

push time in 10 days

push eventmetarhia/metadoc

Denys Otrishko

commit sha 44c3233b85300a61655eb8a6b665fa2fca48934d

fixup! fix: prioritizedEntries class sort order

view details

push time in 10 days

Pull request review commentfastify/fastify

docs: fix TS plugin documentation

 type TrustProxyFunction = (address: string, hop: number) => boolean /* Export all additional types */ export { FastifyRequest, RequestGenericInterface } from './types/request' export { FastifyReply } from './types/reply'-export { FastifyPluginCallback, FastifyPluginAsync, FastifyPluginOptions, FastifyPlugin } from './types/plugin'+export { FastifyPluginOptions, FastifyPlugin } from './types/plugin'

Done https://github.com/fastify/fastify/pull/2555.

lundibundi

comment created time in 10 days

PullRequestReviewEvent

PR opened fastify/fastify

fix: fastify plugin types exports

These were accidentally removed in https://github.com/fastify/fastify/pull/2554

<!-- 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/fastify/fastify/blob/master/CONTRIBUTING.md

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. -->

Checklist

Also adds tests to make sure these Types are exported.

+12 -2

0 comment

2 changed files

pr created time in 10 days

create barnchlundibundi/fastify

branch : fix-fastify-types-exports

created branch time in 10 days

Pull request review commentfastify/fastify

docs: fix TS plugin documentation

 type TrustProxyFunction = (address: string, hop: number) => boolean /* Export all additional types */ export { FastifyRequest, RequestGenericInterface } from './types/request' export { FastifyReply } from './types/reply'-export { FastifyPluginCallback, FastifyPluginAsync, FastifyPluginOptions, FastifyPlugin } from './types/plugin'+export { FastifyPluginOptions, FastifyPlugin } from './types/plugin'

Oh, now I see the issue. I don't know how these got removed. I'll put a PR to get them back

lundibundi

comment created time in 10 days

PullRequestReviewEvent

delete branch lundibundi/fastify

delete branch : fix-ts-doc-plugin

delete time in 10 days

Pull request review commentfastify/fastify

docs: fix TS plugin documentation

 type TrustProxyFunction = (address: string, hop: number) => boolean /* Export all additional types */ export { FastifyRequest, RequestGenericInterface } from './types/request' export { FastifyReply } from './types/reply'-export { FastifyPluginCallback, FastifyPluginAsync, FastifyPluginOptions, FastifyPlugin } from './types/plugin'+export { FastifyPluginOptions, FastifyPlugin } from './types/plugin'

I'm not sure I understand the message (it suggests to import the same thing), but could you verify that you are using most recent fastify-plugin version? (it should be fixed in 2.0.1 ->https://github.com/fastify/fastify-plugin/commit/d81e6a6b32effc6607e2e7b58c4365d1ec60dc61)

lundibundi

comment created time in 10 days

PullRequestReviewEvent

push eventmetarhia/iterator

bugagashenkj

commit sha d0b07ed8fd7eb5ca5e9115ba32464e25eb0d8e21

feat: implement AsyncIterator Refs: https://github.com/metarhia/metasync/issues/385 Refs: https://github.com/metarhia/metasync/issues/393 ORIGINAL-PR-URL: https://github.com/metarhia/metasync/pull/396 Refs: https://github.com/metarhia/metasync/issues/441 ORIGINAL-PR-URL: https://github.com/metarhia/metasync/pull/440 Co-authored-by: Timur Shemsedinov <timur.shemsedinov@gmail.com> Co-authored-by: Dmytro Nechai <nechaido@gmail.com> Co-authored-by: JuliaGerasymenko <gerasymenko.j.ke@gmail.com>

view details

bugagashenkj

commit sha b760419b81586b85ba0e32b20c8d135ef2f491fb

fix: missing argument in AsyncIterator.prototype.throttle ORIGINAL-PR-URL: https://github.com/metarhia/metasync/pull/424

view details

Vitaliy Semenchenko

commit sha e662bbe123ac5f54f8a2e6ec76a5ebff7306765e

docs: update documentation of AsyncIterator ORIGINAL-PR-URL: https://github.com/metarhia/metasync/pull/400

view details

push time in 11 days

push eventmetarhia/iterator

Denys Otrishko

commit sha cc1fc67fe8216602abb84c9e783093227aa10636

chore: initial commit

view details

Dmytro Nechai

commit sha 24e5edae8aaa57ce7ccc04ed3e177cc2b2d6d7ff

feat: add Iterator implementation Refs: https://github.com/metarhia/common/issues/122 ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/123 ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/185

view details

Denys Otrishko

commit sha 20d98009f45b924e103340597c1199b17348b38a

feat: implement Iterator.someCount(pred, count, thisArg) This will allow to avoid filtering the whole Iterator when you need to know if at least 'count' elements satisfy the predicate (this could be done with 'filter -> count' but that wouldn't provide an early exit in case of success). ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/187

view details

Denys Otrishko

commit sha 8827e09833d551cf2a3582850f875df6b2039706

fix: method Iterator.some with thisArg test It used every function instead of some. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/186

view details

Denys Otrishko

commit sha 8fb4be15fa9f706d4073e5b5857562bdebe10790

feat: implement takeWhile iterator method It will return the values from the iterator as long as they satisfy the predicate. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/188

view details

Mykola Bilochub

commit sha e42e520865719e18c13ba96271a935e8eddfc352

feat: implement count() method for Iterator ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/195

view details

Denys Otrishko

commit sha 705fca31ee8d2c1daeaa8f42e61b41f1af1579d0

feat: implement Iterator.enumerate to return [index, value] ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/209

view details

Denys Otrishko

commit sha c3e74680a1824573116f9f8b0f49ceddcd8ba4d8

feat: rename join to chain iterator This will be a bit more clear and allow to implement 'join' the similar to the definition in the Array. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/223

view details

Denys Otrishko

commit sha 88459ec38c5e1ac3cfb0db67324706d6cd432808

feat: implement Iterator.join similar to Array.join It also supports prefix and suffix parameters. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/223

view details

Mykola Bilochub

commit sha 17301c64922b43ea959a71d1c92348c698cb2f64

test: improve Iterator tests Add missing test cases for Iterator#zip() and Iterator#join(). ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/232

view details

Mykola Bilochub

commit sha 8f7b997173e8a835697380375c966de04fd2603c

feat: implement RangeIterator and Iterator.range() method ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/231

view details

Mykola Bilochub

commit sha 466680eea6435ab021ca8b6c75eae7c866bc3fcd

fix: method Iterator#includes() for non-number values ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/262

view details

Mykola Bilochub

commit sha dbac152f87a197d0615316b15cef3c7671106098

feat: add Symbol.toStringTag property to Iterator ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/271

view details

Vitaliy Semenchenko

commit sha 43bb512b5b520528797a6c527cb472e321ebc9ce

feat: update documentation Refs: https://github.com/metarhia/common/issues/67 ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/242

view details

Denys Otrishko

commit sha 49cbdffb8c1b5895cc22eb7e7e5e2d43e9759502

feat: make collectWith return the provided object This will make it consistent with other 'collection' methods. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/278

view details

Denys Otrishko

commit sha 3ff70908da83e154977fa2fc498c84b8a0527f3a

feat: implement Iterator#toObject() This is similar to the functionality Object.fromEntries() would offer. ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/277

view details

Denys Otrishko

commit sha a0dfe96467b41a0c25c0f5a2bf7c9b4e82f52cdb

feat: add Iterator iterEntries, iterKeys, iterValues utility methods ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/279

view details

Vitaliy Semenchenko

commit sha 409f5d8a745a0694361d78933d2c44006d5b2ad0

fix(doc): documentation of Iterator ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/283

view details

Denys Otrishko

commit sha 6af1f41f1fb2154bdee511e0a897862a75cb7052

feat: implement Iterator.filterMap enabling more efficient filter+map It will call mapper on every element just like .map but will also filter out values returned from mapper that match filterValue (undefined by default). ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/294

view details

Denys Otrishko

commit sha 68dd945f5aacdf26bca256be5bcc1007837262d4

feat: implement Iterator#skipWhile() to enable skipping by predicate ORIGINAL-PR-URL: https://github.com/metarhia/common/pull/293

view details

push time in 11 days

create barnchmetarhia/iterator

branch : master

created branch time in 11 days

created repositorymetarhia/iterator

Efficient and composable iteration

created time in 11 days

PullRequestReviewEvent

push eventlundibundi/fastify

Denys Otrishko

commit sha 0399908eff56d5bbaa81651e05510807d96e25d1

fixup! docs: fix TS plugin documentation

view details

push time in 11 days

PR opened metarhia/metatests

feat(docs): improve API in README.md

Depends on https://github.com/metarhia/metadoc/pull/105

+301 -295

0 comment

3 changed files

pr created time in 11 days

create barnchmetarhia/metatests

branch : improve-readme

created branch time in 11 days

push eventmetarhia/metadoc

Denys Otrishko

commit sha 3824746858e3f2ab718f799ea307cb779e8bab01

fixup! fix: prioritizedEntries class sort order

view details

push time in 11 days

PR opened metarhia/metadoc

fix: prioritizedEntries class sort order

Fixes: https://github.com/metarhia/metadoc/issues/104

/cc @SemenchenkoVitaliy

+77 -27

0 comment

4 changed files

pr created time in 11 days

create barnchmetarhia/metadoc

branch : fix-priority-order

created branch time in 11 days

issue openedmetarhia/metadoc

`prioritizedEntries` doesn't correctly handle nested entries

Having a class name in prioritizedEntries will result in class declaration being properly prioritized but the class methods, properties etc will not be handled resulting in 'torn' declarations in the output file.

created time in 11 days

create barnchmetarhia/metatests

branch : fix-changelog-entries

created branch time in 11 days

push eventmetarhia/metatests

Denys Otrishko

commit sha bba6896bdfaf9c58b6c1a9d1e4b7713fb5bdd6f1

feat(bench): improve speed bench output PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha 03d63c169645390dcdf666d8a76ddd706d330f26

feat(cli): slightly improve target option message and small reorder PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha 02b83574a8bb41cadd26ac5f689c478c7c568ba6

feat(bench): change listener contract for measure * cycle - same as done before, called when each run is finished * done - is now called when all runs for a given configuration are finished with (name, args, results) PR-URL: https://github.com/metarhia/metatests/pull/250

view details

Denys Otrishko

commit sha c535aee33c9b05efba448914e4f58632cba3993d

feat(cli): simplify bench output by aggregating results PR-URL: https://github.com/metarhia/metatests/pull/250

view details

push time in 11 days

PR opened fastify/fastify

docs: fix TS plugin documentation

Refs: https://github.com/fastify/help/issues/251

<!-- 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/fastify/fastify/blob/master/CONTRIBUTING.md

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. -->

Checklist

+36 -10

0 comment

2 changed files

pr created time in 11 days

create barnchlundibundi/fastify

branch : fix-ts-doc-plugin

created branch time in 11 days

PR opened metarhia/metatests

feat(bench): improve speed bench output
+144 -10

0 comment

4 changed files

pr created time in 12 days

create barnchmetarhia/metatests

branch : improve-bench-output

created branch time in 12 days

Pull request review commentnodejs/node

util: add util.parseArgs()

+'use strict';++const {+  ArrayIsArray,+  ArrayPrototypePush,+  ArrayPrototypeSlice,+  SafeSet,+  StringPrototypeReplace,+  StringPrototypeSplit,+  StringPrototypeStartsWith,+} = primordials;+const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes;++/**+ * Returns an Object representation of command-line arguments.+ *+ * Default behavior:+ * - All arguments are considered "boolean flags"; in the `options` property of+ *   returned object, the key is the argument (if present), and the value will+ *   be `true`.+ * - Uses `process.argv.slice(2)`, but can accept an explicit array of strings.+ * - Argument(s) specified in `opts.optionsWithValue` will have `string` values+ *   instead of `true`; the subsequent item in the `argv` array will be consumed+ *   if a `=` is not used+ * - "Bare" arguments (positionals) are those which do not begin with a `-` or+ *   `--` and those after a bare `--`; these will be returned as items of the+ *   `positionals` array+ * - The `positionals` array will always be present, even if empty.+ * - The `options` Object will always be present, even if empty.+ * @param {string[]} [argv=process.argv.slice(2)] - Array of script arguments as+ * strings+ * @param {Object} [options] - Options+ * @param {string[]|string} [opts.optionsWithValue] - This argument (or+ * arguments) expect a value+ * @param {string[]|string} [opts.multiOptions] - This argument (or arguments)+ * can be specified multiple times and its values will be concatenated into an+ * array+ * @returns {{options: Object, positionals: string[]}} Parsed arguments+ * @example+ * parseArgs(['--foo', '--bar'])+ *   // {options: { foo: true, bar: true }, positionals: []}+ * parseArgs(['--foo', '-b'])+ *   // {options: { foo: true, b: true }, positionals: []}+ * parseArgs(['---foo'])+ *   // {options: { foo: true }, positionals: []}+ * parseArgs(['--foo=bar'])+ *   // {options: { foo: true }, positionals: []}+ * parseArgs([--foo', 'bar'])+ *   // {options: {foo: true}, positionals: ['bar']}+ * parseArgs(['--foo', 'bar'], {optionsWithValue: 'foo'})+ *   // {options: {foo: 'bar'}, positionals: []}+ * parseArgs(['foo'])+ *   // {options: {}, positionals: ['foo']}+ * parseArgs(['--foo', '--', '--bar'])+ *   // {options: {foo: true}, positionals: ['--bar']}+ * parseArgs(['--foo=bar', '--foo=baz'])+ *   // {options: {foo: true}, positionals: []}+ * parseArgs(['--foo=bar', '--foo=baz'], {optionsWithValue: 'foo'})+ *   // {options: {foo: 'baz'}, positionals: []}+ * parseArgs(['--foo=bar', '--foo=baz'], {+ *   optionsWithValue: 'foo', multiOptions: 'foo'+ * }) // {options: {foo: ['bar', 'baz']}, positionals: []}+ * parseArgs(['--foo', '--foo'])+ *   // {options: {foo: true}, positionals: []}+ * parseArgs(['--foo', '--foo'], {multiOptions: ['foo']})+ *   // {options: {foo: [true, true]}, positionals: []}+ * parseArgs(['--very-wordy-option'])+ *   // {options: {'very-wordy-option': true}, positionals: []}+ */+const parseArgs = (+  argv = ArrayPrototypeSlice(process.argv, 2),+  options = { optionsWithValue: [] }+) => {+  if (!ArrayIsArray(argv)) {+    options = argv;+    argv = ArrayPrototypeSlice(process.argv, 2);+  }+  if (typeof options !== 'object' || options === null) {+    throw new ERR_INVALID_ARG_TYPE(+      'options',+      'object',+      options);+  }+  if (typeof options.optionsWithValue === 'string') {+    options.optionsWithValue = [options.optionsWithValue];+  }+  if (typeof options.multiOptions === 'string') {+    options.multiOptions = [options.multiOptions];+  }+  const optionsWithValue = new SafeSet(options.optionsWithValue || []);+  const multiOptions = new SafeSet(options.multiOptions || []);+  const result = { positionals: [], options: {} };++  let pos = 0;+  while (true) {+    const arg = argv[pos];+    if (arg === undefined) {+      return result;+    }

IIUC why not use clear loop condition instead?

  while (pos < argv.length) {
    const arg = argv[pos];
    ...
  }
  return result;
boneskull

comment created time in 12 days

Pull request review commentnodejs/node

util: add util.parseArgs()

 Otherwise, returns `false`. See [`assert.deepStrictEqual()`][] for more information about deep strict equality. +## `util.parseArgs([argv][, options])`+<!-- YAML+added: REPLACEME+-->++* `argv` {string[]|Object} (Optional) Array of argument strings; defaults

Nit:

* `argv` {string[]} (Optional) Array of argument strings; defaults

since this argument cannot be an object itself, it is only an object if it is options. I don't think that we include 'replacement/nested/optional' types in our docs in such cases. IMO it will only confuse the reader as it removes clear type-boundary between optional arguments.

boneskull

comment created time in 12 days

Pull request review commentnodejs/node

util: add util.parseArgs()

+'use strict';++const {+  ArrayIsArray,+  ArrayPrototypePush,+  ArrayPrototypeSlice,+  SafeSet,+  StringPrototypeReplace,+  StringPrototypeSplit,+  StringPrototypeStartsWith,+} = primordials;+const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes;++/**+ * Returns an Object representation of command-line arguments.+ *+ * Default behavior:+ * - All arguments are considered "boolean flags"; in the `options` property of+ *   returned object, the key is the argument (if present), and the value will+ *   be `true`.+ * - Uses `process.argv.slice(2)`, but can accept an explicit array of strings.+ * - Argument(s) specified in `opts.optionsWithValue` will have `string` values+ *   instead of `true`; the subsequent item in the `argv` array will be consumed+ *   if a `=` is not used+ * - "Bare" arguments (positionals) are those which do not begin with a `-` or+ *   `--` and those after a bare `--`; these will be returned as items of the+ *   `positionals` array+ * - The `positionals` array will always be present, even if empty.+ * - The `options` Object will always be present, even if empty.+ * @param {string[]} [argv=process.argv.slice(2)] - Array of script arguments as+ * strings+ * @param {Object} [options] - Options+ * @param {string[]|string} [opts.optionsWithValue] - This argument (or+ * arguments) expect a value+ * @param {string[]|string} [opts.multiOptions] - This argument (or arguments)
 * @param {string[]|string} [options.multiOptions] - This argument (or arguments)

And also above to better refer to the other argument?

boneskull

comment created time in 12 days

Pull request review commentnodejs/node

util: add util.parseArgs()

 Otherwise, returns `false`. See [`assert.deepStrictEqual()`][] for more information about deep strict equality. +## `util.parseArgs([argv][, options])`+<!-- YAML+added: REPLACEME+-->++* `argv` {string[]|Object} (Optional) Array of argument strings; defaults+  to [`process.argv.slice(2)`](process_argv). If an Object, the default is used,+  and this parameter is considered to be the `options` parameter.+* `options` {Object} (Optional) The `options` parameter is an+  object supporting the following properties:+  * `optionsWithValue` {string[]|string} (Optional) One or more argument+    strings which _expect a value_ when present in `argv` (see [Options][]+    for details)+  * `multiOptions` {string[]|string} (Optional) One or more argument+    strings which, when appearing multiple times in `argv`, will be concatenated+    into an Array+* Returns: {Object} An object having properties:+  * `options` {Object}, having properties and values corresponding to parsed+    [Options][] and [Flags][]+  * `positionals` {string[]}, containing [Positionals][]++The `util.parseArgs` function parses command-line arguments from an Array of+strings and returns an object representation.++Example using [`process.argv`][]:++```js+// script.js+// called via `node script.js --foo bar baz`+const argv = util.parseArgs();++if (argv.foo === true) {+  console.log(argv.positionals); // prints [ 'bar', 'baz' ]+}+```++Example using a custom `argv` and the `optionsWithValue` option:++```js+const argv = util.parseArgs(+  ['--foo', 'bar', 'baz'],+  { optionsWithValue: ['foo'] }+);++// argv.foo === 'bar'+if (argv.foo === 'bar') {+  console.log(argv.positionals); // prints [ 'baz' ]+}+```++Example using custom `argv`, `optionsWithValue`, and the `multiOptions` option:++```js+const argv = util.parseArgs(+  ['--foo', 'bar', '--foo', 'baz'],+  { optionsWithValue: 'foo', multiOptions: 'foo' }+);++console.log(argv.options.bar); // prints [ 'bar', 'baz' ]+```++Example with custom `argv` and `multiOptions`:++```js+const argv = util.parseArgs(+  ['-v', '-v', '-v'],+  { multiOptions: 'v' }+);++console.log(argv.options.v); // prints [ true, true, true ]+```++[`ERR_INVALID_ARG_TYPE`][] will be thrown if the `argv` parameter is not an+Array.++Arguments fall into one of three catgories:++### Flags++_Flags_ are arguments which begin with one or more dashes (`-`), and _do not_+have an associated string value (e.g., `node app.js --verbose`).++* These will be parsed automatically; you do not need to "declare" them+* The Flag _name_ is the string following the prefix of _one or more_ dashes,+  e.g., the name of `--foo` is `foo`+* Flag names become property names in the `options` property of the returned+  object+* By default, when appearing any number of times in the `argv` Array, the value+  of the property will be `true`. To get a "count" of the times a Flag is+  repeated, specify the Flag name in the `multiOptions` option; this will parsed+  to an Array of `true` values, and you can derive the "count" from the `length`+  property of this Array+* When a Flag appears in `multiOptions`, and when provided in `argv`, the value+  in the returned object will _always_ be an Array (even if it is only provided+  once)+* A Flag appearing in `multiOptions` but not in the `argv` Array will be omitted+  from the `options` property of the returned object+* If a string value is erroneously provided in `argv` for a Flag via the `=`+  separator, the string value will be replaced with `true`; e.g.,+  `['--require=script.js']` becomes `{options: {require: true}}, positionals:+  []}`++### Options++_Options_ are arguments which begin with one or more dashes (`-`), and _do_ have+an associated value (e.g., `node app.js --require script.js`).++* Use the `optionsWithValue` option to `util.parseArgs` to declare Options+* The Option _name_ is the string following the prefix of one-or-more dashes,+  e.g., the name of `--foo` is `foo`+* The Option _value_ is the next string following the name, e.g., the Option+  value of `['--foo' 'bar']` is `bar`+* Option values may be provided _with or without_ a `=` separator (e.g.,+  `['--require=script.js']` is equivalent to `['--require', 'script.js']`)+* If an Option value is not provided, the Option will be omitted from the+  `options` property of the returned object+* An argument-like value (a value beginning with one or more dashes) immediately+  following an Option in the `argv` Array will cause the Option to be omitted+  from the `options` property of the returned object _unless_ the `=` separator+  is used; e.g., `['--foo', '--bar']` where `foo` is an Option will return+  `{options: {bar: true}, positionals: []}`, but `['--foo=--bar']` will return+  `{options: {foo: '--bar'}, positionals: []}`+* When an Option name appears in the Array (or string) of `optionsWithValue`,+  and does _not_ appear in the `argv` Array, the resulting object _will not_+  contain a property with this Option name (e.g., `util.parseArgs(['--bar'], {+  optionsWithValue: 'foo' })` will result in `{options: {bar: true},+  positionals: [] }`+* When an Option appears in `multiOptions`, and when provided in `argv`, the+  value in the returned object will _always_ be an Array (even if it is only+  provided once)++### Positionals++_Positionals_ (or "positional arguments") are arguments which _do not_ begin+with one or more dashes (e.g., `['script.js']`), _and/or_ all items in the+`argv` Array following a `--` (e.g., `['--', 'script.js']`).++* Positionals appear in the Array property `positionals` of the returned object+* The `positionals` property will _always_ be present and an Array, even if+  empty+* If present in the `argv` Array, `--` is discarded and is omitted from the+  returned object+* Positionals will _always_ be parsed verbatim (e.g., `['--', '--foo']` will+  result in an object of `{positionals: ['--foo'], options: {}}`)++Please note:

Nit: perhaps:

### Additional considerations
boneskull

comment created time in 12 days

PullRequestReviewEvent
PullRequestReviewEvent

issue commentnodejs/node

Tracking Issue: commit queue issues and feedback

:thinking: Anyone knows why but these PRs failed to apply patches: https://github.com/nodejs/node/pull/34997#issuecomment-687832961 https://github.com/nodejs/node/pull/34682#issuecomment-691138681

even though locally it applied successfully with manual git node land. Is three-way-merge somehow disabled for commit-queue?

mmarchini

comment created time in 13 days

PR opened nodejs/node

lib: change ERR_INVALID_ARG_VALUE error message

Refs: https://github.com/nodejs/node/pull/34682/#discussion_r475241035

<!-- 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
  • [x] 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. --> /cc @BridgeAR @jasnell @Trott

+81 -81

0 comment

42 changed files

pr created time in 13 days

create barnchlundibundi/node

branch : improve-arg-value-message

created branch time in 13 days

delete branch metarhia/metatests

delete branch : improve-cli-docs

delete time in 13 days

push eventmetarhia/metatests

Denys Otrishko

commit sha 4083ef7067b20afb370dcb05a3fca4f1bc22cbe6

feat(cli): add examples of metatests measure command PR-URL: https://github.com/metarhia/metatests/pull/249

view details

Denys Otrishko

commit sha dfa18cff1179cea19fa531dff043bb3c59701861

feat(cli): add examples of metatests speed command PR-URL: https://github.com/metarhia/metatests/pull/249

view details

push time in 13 days

PR merged metarhia/metatests

Improve cli docs
+31 -0

0 comment

1 changed file

lundibundi

pr closed time in 13 days

push eventmetarhia/metatests

Denys Otrishko

commit sha 0b18f77637657c9de67a4a75c60cab70f1506fef

feat(cli): add examples of metatests measure command PR-URL: https://github.com/metarhia/metatests/pull/249

view details

Denys Otrishko

commit sha 251aff97df89dfb1869e58f17029adb36ddbfd81

feat(cli): add examples of metatests speed command PR-URL: https://github.com/metarhia/metatests/pull/249

view details

push time in 13 days

delete branch lundibundi/node

delete branch : improve-events-event-target

delete time in 13 days

PR closed nodejs/node

events: simplify event target agnostic logic in on and once author ready commit-queue-failed events

<!-- 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
  • [x] tests and/or benchmarks are included
  • [x] 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. -->

This simplifies logic related to EventTarget handling and shortens the code.

/cc @nodejs/events @jasnell

+10 -36

4 comments

1 changed file

lundibundi

pr closed time in 13 days

pull request commentnodejs/node

events: simplify event target agnostic logic in on and once

Landed in b1831fed3a28

lundibundi

comment created time in 13 days

push eventnodejs/node

Denys Otrishko

commit sha b1831fed3a289d883944d23d2130368d90a48be2

events: simplify event target agnostic logic in on and once PR-URL: https://github.com/nodejs/node/pull/34997 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>

view details

push time in 13 days

delete branch lundibundi/node

delete branch : remove-opt-errors

delete time in 13 days

PR closed nodejs/node

Reviewers
lib: remove ERR_INVALID_OPT_VALUE and ERR_INVALID_OPT_VALUE_ENCODING author ready commit-queue-failed lib / src semver-major

This will be a start to generalize all argument validation errors. As currently we throw ARG/OPT, OUT_OF_RANGE, and other more specific errors. The OPT errors didn't bring much to the errors as it's just another variant of ARG error which is sometimes more confusing (some of our code used OPT errors to denote just argument validation errors presumably because of similarity of OPT to 'option' and not 'options-object') and they don't specify the name of the options object where the invalid value is located. Much better approach would be to just specify path to the invalid value in the name of the value as it is done in this PR (i.e. 'options.format', 'options.publicKey.type' etc)

Also since this decreases a variety of errors we have it'd be easier to reuse validation code across the codebase.

Refs: https://github.com/nodejs/node/pull/31251 Refs: https://github.com/nodejs/node/pull/34070#discussion_r467251009 Signed-off-by: Denys Otrishko shishugi@gmail.com


Since this is a semver-major anyway I'm also considering integrating ERR_OUT_OF_RANGE into ERR_INVALID_ARG_VALUE.RangeError as I don't see much benefit of it having a separate error code since everything will be stated in the message anyways, wdyt?

<!-- 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
  • [x] tests and/or benchmarks are included
  • [x] 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. --> /cc @nodejs/crypto @nodejs/buffer @nodejs/http2 as most affected systems /cc @jasnell @tniessen

+315 -325

24 comments

63 changed files

lundibundi

pr closed time in 13 days

pull request commentnodejs/node

lib: remove ERR_INVALID_OPT_VALUE and ERR_INVALID_OPT_VALUE_ENCODING

Landed in c66e6471e780

lundibundi

comment created time in 13 days

push eventnodejs/node

Denys Otrishko

commit sha c66e6471e780e752f3f6f9337ac49a3d6e3d7091

lib: remove ERR_INVALID_OPT_VALUE and ERR_INVALID_OPT_VALUE_ENCODING This will be a start to generalize all argument validation errors. As currently we throw ARG/OPT, OUT_OF_RANGE, and other more specific errors. The OPT errors didn't bring much to the errors as it's just another variant of ARG error which is sometimes more confusing (some of our code used OPT errors to denote just argument validation errors presumably because of similarity of OPT to 'option' and not 'options-object') and they don't specify the name of the options object where the invalid value is located. Much better approach would be to just specify path to the invalid value in the name of the value as it is done in this PR (i.e. 'options.format', 'options.publicKey.type' etc) Also since this decreases a variety of errors we have it'd be easier to reuse validation code across the codebase. Refs: https://github.com/nodejs/node/pull/31251 Refs: https://github.com/nodejs/node/pull/34070#discussion_r467251009 Signed-off-by: Denys Otrishko <shishugi@gmail.com> PR-URL: https://github.com/nodejs/node/pull/34682 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

push time in 13 days

pull request commentnodejs/node

lib: remove ERR_INVALID_OPT_VALUE and ERR_INVALID_OPT_VALUE_ENCODING

ping @Trott @jasnell @BridgeAR @mcollina this needs another review before it lands since there were changes to errors.md file to include version history in yaml (latest fixup!) as noted by @Trott.

lundibundi

comment created time in 13 days

Pull request review commentnodejs/node

crypto: fix regression in randomFill/randomBytes

 changes:     description: The `buffer` argument may be any `TypedArray` or `DataView`. --> -* `buffer` {Buffer|TypedArray|DataView} Must be supplied.+* `buffer` {Buffer|TypedArray|DataView} Must be supplied. The size+  of the provided `buffer` must not be larger than `2**31 - 1`.
  of the provided `buffer` must be less or equal to `2**31 - 1`.
jasnell

comment created time in 14 days

Pull request review commentnodejs/node

crypto: fix regression in randomFill/randomBytes

 changes:     description: The `buffer` argument may be any `TypedArray` or `DataView`. --> -* `buffer` {Buffer|TypedArray|DataView} Must be supplied.+* `buffer` {Buffer|TypedArray|DataView} Must be supplied. The size+  of the provided `buffer` must not be larger than `2**31 - 1`. * `offset` {number} **Default:** `0`-* `size` {number} **Default:** `buffer.length - offset`+* `size` {number} **Default:** `buffer.length - offset`.  The `size`+  must not be larger than `2**31 - 1`.
  must be less or equal to `2**31 - 1`.
jasnell

comment created time in 14 days

Pull request review commentnodejs/node

crypto: fix regression in randomFill/randomBytes

 changes:     description: The `buffer` argument may be any `TypedArray` or `DataView`. --> -* `buffer` {Buffer|TypedArray|DataView} Must be supplied.+* `buffer` {Buffer|TypedArray|DataView} Must be supplied. The+  size of the provided `buffer` must not be larger than `2**31 - 1`. * `offset` {number} **Default:** `0`-* `size` {number} **Default:** `buffer.length - offset`+* `size` {number} **Default:** `buffer.length - offset`. The `size`+  must not be larger than `2**31 - 1`.
  must be less or equal to `2**31 - 1`.
jasnell

comment created time in 14 days

Pull request review commentnodejs/node

crypto: fix regression in randomFill/randomBytes

 changes:     description: The `buffer` argument may be any `TypedArray` or `DataView`. --> -* `buffer` {Buffer|TypedArray|DataView} Must be supplied.+* `buffer` {Buffer|TypedArray|DataView} Must be supplied. The+  size of the provided `buffer` must not be larger than `2**31 - 1`.

Ditto

  size of the provided `buffer` must be less or equal to `2**31 - 1`.
jasnell

comment created time in 14 days

more