substack/node-falafel — pull request #23 by nanodeath (2013-09-01 19:09:40+00:00)
Title: Adding a "remove" API for nodes which cleans up the parent node as well upon deletion.

This is meant to address issue #18.

I'm open to how exactly you want to see this implemented. I'm calling in "remove" instead of "delete" because while delete might work, it's also a reserved word.

Originally, I was modifying the parent by checking particular fields:

```
if(node.parent && (params = /* FunctionExpression */ node.parent.params || /*VariableDeclaration */
node.parent.declarations || /* ArrayExpression*/ node.parent.elements)){`
```

But ultimately I generalized it to simply remove the element from all collection-y fields on the parent.

Also I have a plugin that removes trailing whitespace; I can try to revert that from the index.js file if you prefer. Beside this, I tried to match your style.