packages/babel-plugin-proposal-optional-catch-binding/src/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import { declare } from "@babel/helper-plugin-utils";
import syntaxOptionalCatchBinding from "@babel/plugin-syntax-optional-catch-binding";

export default declare(api => {
  api.assertVersion(7);

  return {
    name: "proposal-optional-catch-binding",
    inherits: syntaxOptionalCatchBinding,

    visitor: {
      CatchClause(path) {
        if (!path.node.param) {
          const uid = path.scope.generateUidIdentifier("unused");
          const paramPath = path.get("param");
          paramPath.replaceWith(uid);
        }
      },
    },
  };
});