Skip to content

Inquiry about Number Parsing in minimist #79

Open
@atx49559

Description

@atx49559

Hi,
While working with minimist, I noticed a few parsing behaviors that might be either limitations or intentional design choices. I would appreciate clarification on whether the following are expected behaviors, and whether there's a recommended approach to handle them.

Environment

  • Node.js: v22.13.0
  • minimist: v1.2.8

Cases

1. Negative number not parsed correctly when not using =

node main.js position 0 0 -3

Expected:

{ _: [ 'position', 0, 0, -3 ] }

Actual:

{ '3': true, _: [ 'position', 0, 0 ] }

2. Negative number parsed correctly only when using = syntax

node main.js position -x=0 -y=0 -z=-3

This works correctly and gives:

{ _: [ 'position' ], x: 0, y: 0, z: -3 }

Note: It would be more convenient if negative numbers could be handled the same way in both cases, without needing = syntax.

3. Float values not parsed correctly

node main.js -x=0.1

Expected:

{ _: [], x: 0.1 }

Actual:

{ _: [ 0.1 ], x: 0 }

4. Negative number parsed correctly only when not using = syntax

node main.js -x 0.1

This works correctly and gives:

{ _: [], x: 0.1 }

5. If only number stringified numbers lose their leading zeros

node main.js --name "0123"

Expected:

{ _: [], name: '0123' }

Actual:

{ _: [], name: 123 }

6. If only number stringified numbers lose their leading zeros even using = syntax

node main.js --name="0123"

Expected:

{ _: [], name: '0123' }

Actual:

{ _: [], name: 123 }

7. If use leading zeros number plus chars parsed correctly

node main.js --name "0123kk"

This works correctly and gives:

{ _: [], name: '0123kk' }

8. If use leading zeros number plus chars and using using = syntax parsed correctly

node main.js --name="0123kk"

This works correctly and gives:

{ _: [], name: '0123kk' }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions