Skip to content

Error in transformer when using default exits silently (version 8) #1247

@robations

Description

@robations

An error thrown from a transformer (after a default value is applied) gets swallowed and the CLI app quits, which makes debugging difficult.

Some sample code:

const Inquirer = require("inquirer");

(async () => {
    try {
        await Inquirer.prompt([
            {
                type: "input",
                message: "Foo quotient",
                name: "foo",
                transformer: (x) => {
                    if (x === 1) {
                        throw new Error("failing because of the reason");
                    }
                    return x;
                },
                default: 1,
            },
        ]);

        console.log("Done");
    } catch (e) {
        console.error("An _expected_ error", e);
    }
})();

In this example, when no input is offered by the user, I would expect:

  • the default is applied (1)
  • error is thrown
  • catch block outputs error

But instead the program silently quits (no error, no "Done" logged).

(I'm not sure if version 8 is actively maintained but unable to switch to ES modules at present.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions