Skip to content

Using .when to check 2 values #3041

Open
@jwarby

Description

@jwarby

Runtime

Node.js

Runtime version

v20.4

Module version

17

Used with

standalone

Any other relevant information

No response

How can we help?

Hi, struggling to figure out how I can apply a then clause based on whether one key has a certain value or another key has a different value, hoping somebody could help...

I currently have something like this:

.when("foo", {
    is: "bar",
    then: object.keys({
      somethingElse: string.optional().allow()
    })
});

And I'd like to extend it so that if either foo="bar" OR baz="qux" will both apply the then. I know I could† add another .when and move my then stuff into a var, or duplicate it (actual code has a lot of conditions though so want to avoid any duplication) like this:

const overrides = object.keys({ somethingElse: string.optional().allow("") });

/* ...snip...  */
.when("foo", { is: "bar", then: overrides })
.when("baz", { is: "qux", then: overrides })

but it feels like there must be a cleaner way to do it? Maybe with alternatives or something?

Thank you 🙏

† I'm assuming this would work anyway, haven't actually tried it

Metadata

Metadata

Assignees

No one assigned

    Labels

    supportQuestions, discussions, and general support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions