Skip to content

Inquiry about Number Parsing in minimist #79

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions