Skip to content

Setting undefined to process.env.* sets a "undefined" string value #48875

Closed as not planned
@piranna

Description

@piranna

Version

v20.4.0

Platform

Linux executive 6.2.0-25-generic #25-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 16 17:05:07 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

process.env

What steps will reproduce the bug?

Assign undefined to any value on process.env, for example process.env.foo = undefined.

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

Always.

What is the expected behavior? Why is that the expected behavior?

Since values assigned to entries in process.env are always casted to string and it's not possible to have any of them set to the undefined value, then it should be fully removed from the process.env object, allowing this way to get the entry unset.

What do you see instead?

I get the entry assigned the string undefined as value.

Additional information

The same happens with null, that gets assigned with the null string, so it's not possible to differenciate when setting it to null or the string "null". In this case I'm not sure of what should be the correct behaviour, since it's similar to what happens in SQL... Maybe setting the environment variable to an empty string?

For reference, assigning an object gets serialized as [object Object], that sort of makes sense,

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