Skip to content

Conversation

@noritaka1166
Copy link
Contributor

@noritaka1166 noritaka1166 commented Jul 7, 2025

Problem

Solution

use endsWith for better readability

ChangeLog

@shadowspawn
Copy link
Collaborator

shadowspawn commented Jul 9, 2025

I don't find the changes from testing str[0] against a character, to str.startsWith(chr), are as compelling. I am pretty familiar with testing characters this way in this code and in other languages. But not strongly against the change.

Do you like this change @abetomo ? Otherwise I would prefer not to change to .startsWith() (at least not without more justification).

Co-authored-by: John Gee <[email protected]>
@abetomo
Copy link
Collaborator

abetomo commented Jul 9, 2025

I too prefer str[0] if only the first character is tested.

Copy link
Collaborator

@shadowspawn shadowspawn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not wish to replace character checks with startsWith.

But the lone slice change is still good!

@noritaka1166
Copy link
Contributor Author

We do not wish to replace character checks with startsWith.

But the lone slice change is still good!

Done!

@noritaka1166 noritaka1166 requested a review from shadowspawn July 11, 2025 16:04
@noritaka1166 noritaka1166 changed the title refactor: use startsWith and endsWith refactor: use endsWith Jul 11, 2025
Copy link
Collaborator

@abetomo abetomo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@abetomo abetomo merged commit 0310c3e into tj:develop Jul 11, 2025
11 checks passed
@noritaka1166 noritaka1166 deleted the refactor-code branch July 11, 2025 23:00
@shadowspawn shadowspawn added the pending release Merged into a branch for a future release, but not released yet label Jul 13, 2025
@shadowspawn shadowspawn removed the pending release Merged into a branch for a future release, but not released yet label Sep 12, 2025
@shadowspawn
Copy link
Collaborator

Released in v14.0.1.

Blankll added a commit to geek-fun/serverlessinsight that referenced this pull request Oct 9, 2025
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)


<h3>Snyk has created this PR to upgrade commander from 14.0.0 to
14.0.1.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.

<hr/>


- The recommended version is **1 version** ahead of your current
version.

- The recommended version was released **24 days ago**.




<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>commander</b></summary>
    <ul>
      <li>
<b>14.0.1</b> - <a
href="https://github.com/tj/commander.js/releases/tag/v14.0.1">2025-09-12</a></br><h3>Fixed</h3>
<ul>
<li>broken markdown link in README (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3085867003"
data-permission-text="Title is private"
data-url="tj/commander.js#2369"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2369/hovercard"
href="https://github.com/tj/commander.js/pull/2369">#2369</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>improve code readability by using optional chaining (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3203289052" data-permission-text="Title is private"
data-url="tj/commander.js#2394"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2394/hovercard"
href="https://github.com/tj/commander.js/pull/2394">#2394</a>)</li>
<li>use more idiomatic code with object spread instead of
<code>Object.assign()</code> (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3204494758"
data-permission-text="Title is private"
data-url="tj/commander.js#2395"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2395/hovercard"
href="https://github.com/tj/commander.js/pull/2395">#2395</a>)</li>
<li>improve code readability using <code>string.endsWith()</code>
instead of <code>string.slice()</code> (<a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="3209103795" data-permission-text="Title is private"
data-url="tj/commander.js#2396"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2396/hovercard"
href="https://github.com/tj/commander.js/pull/2396">#2396</a>)</li>
<li>refactor <code>.parseOptions()</code> to process args array in-place
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="3324072148" data-permission-text="Title is private"
data-url="tj/commander.js#2409"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2409/hovercard"
href="https://github.com/tj/commander.js/pull/2409">#2409</a>)</li>
<li>change private variadic support routines from
<code>._concatValue()</code> to <code>._collectValue()</code> (change
code from <code>array.concat()</code> to <code>array.push()</code>) (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3327764465" data-permission-text="Title is private"
data-url="tj/commander.js#2410"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2410/hovercard"
href="https://github.com/tj/commander.js/pull/2410">#2410</a>)</li>
<li>update (dev) dependencies</li>
</ul>
      </li>
      <li>
<b>14.0.0</b> - <a
href="https://github.com/tj/commander.js/releases/tag/v14.0.0">2025-05-18</a></br><h3>Added</h3>
<ul>
<li>support for groups of options and commands in the help using
low-level <code>.helpGroup()</code> on <code>Option</code> and
<code>Command</code>, and higher<br>
-level <code>.optionsGroup()</code> and <code>.commandsGroup()</code>
which can be used in chaining way to specify group title for following
option<br>
s/commands (<a class="issue-link js-issue-link" data-error-text="Failed
to load title" data-id="2874409705" data-permission-text="Title is
private" data-url="tj/commander.js#2328"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2328/hovercard"
href="https://github.com/tj/commander.js/pull/2328">#2328</a>)</li>
<li>support for unescaped negative numbers as option-arguments and
command-arguments (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2921957024"
data-permission-text="Title is private"
data-url="tj/commander.js#2339"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2339/hovercard"
href="https://github.com/tj/commander.js/pull/2339">#2339</a>)</li>
<li>TypeScript: add <code>parseArg</code> property to
<code>Argument</code> class (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3022955668"
data-permission-text="Title is private"
data-url="tj/commander.js#2359"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2359/hovercard"
href="https://github.com/tj/commander.js/pull/2359">#2359</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>remove bogus leading space in help when option has default value but
not a description (<a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2944505658"
data-permission-text="Title is private"
data-url="tj/commander.js#2348"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2348/hovercard"
href="https://github.com/tj/commander.js/pull/2348">#2348</a>)</li>
<li><code>.configureOutput()</code> now makes copy of settings instead
of modifying in-place, fixing side-effects (<a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="2948403186" data-permission-text="Title is private"
data-url="tj/commander.js#2350"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2350/hovercard"
href="https://github.com/tj/commander.js/pull/2350">#2350</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking:</em> Commander 14 requires Node.js v20 or higher</li>
<li>internal refactor of <code>Help</code> class adding
<code>.formatItemList()</code> and <code>.groupItems()</code> methods
(<a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="2874409705" data-permission-text="Title is private"
data-url="tj/commander.js#2328"
data-hovercard-type="pull_request"
data-hovercard-url="/tj/commander.js/pull/2328/hovercard"
href="https://github.com/tj/commander.js/pull/2328">#2328</a>)</li>
</ul>
      </li>
    </ul>
from <a
href="https://github.com/tj/commander.js/releases">commander
GitHub release notes</a>
  </details>
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.

---

**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._

**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJkMjZkNjUyZS01MGMyLTQ0NzEtOTcyNC04NTA2ODZiNGI0MTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImQyNmQ2NTJlLTUwYzItNDQ3MS05NzI0LTg1MDY4NmI0YjQxMyJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32/settings/integration?pkg&#x3D;commander&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"breakingChangeRiskLevel":null,"FF_showPullRequestBreakingChanges":null,"FF_showPullRequestBreakingChangesWebSearch":null,"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"commander","from":"14.0.0","to":"14.0.1"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"d26d652e-50c2-4471-9724-850686b4b413","prPublicId":"d26d652e-50c2-4471-9724-850686b4b413","packageManager":"npm","priorityScoreList":[],"projectPublicId":"9c72c875-e7a2-4e68-85a9-7b26a5bc5b32","projectUrl":"https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2025-09-12T07:27:06.725Z"},"vulns":[]}'

Co-authored-by: snyk-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants