Skip to content

prettyDOM filterNode argument is called with more args than expected based on type #1360

Open
@sydneyjodon-wk

Description

@sydneyjodon-wk

Relevant code or config:

prettyDOM(container, undefined, {
  filterNode: (node, unexpectedArg1, unexpectedArg2, shouldBeUndefined) => {
    console.log("arg 1: node - ", node);
    console.log("arg 2: unexpected - ", unexpectedArg1);
    console.log("arg 3: unexpected - ", unexpectedArg2);
    console.log("arg 4: undefined (none) - ", shouldBeUndefined);
    debugger;
    return true;
  },
})

What you did / what happened

The filterNode arg in prettyDOM is typed as having one argument:

filterNode?: (node: Node) => boolean

so I was expecting it to be called with one argument, but it was called with three.

Reproduction:

https://codesandbox.io/p/sandbox/wizardly-shirley-yp96n8?file=%2Fsrc%2F__tests__%2Findex.test.js%3A8%2C27

See in the console that there are three args passed to filterNode:
Image of codesandbox

Problem description:

I think it's being called with three arguments because filterNode is being passed into filter and filter has three args: element, index, and array.

Suggested solution:

Can either the typing of filterNode be updated to indicate that it is called with three arguments or the usage be updated to only call it with the one expected node argument?

Thank you!

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