From 32900842e3bf85ab4377f7e4a25617f18c718f9c Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Tue, 1 May 2018 10:24:46 -0300 Subject: [PATCH] Apply destructuring rules in functions to catch param (#4385) --- src/language-js/printer-estree.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 28 +++++++++++++++++++ tests/destructuring/destructuring.js | 12 ++++++++ 3 files changed, 41 insertions(+) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index fd6146cf..2c81b205 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -1048,6 +1048,7 @@ function printPathNoParens(path, options, print, args) { parent.type !== "FunctionExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "AssignmentPattern" && + parent.type !== "CatchClause" && n.properties.some( property => property.value && diff --git a/tests/destructuring/__snapshots__/jsfmt.spec.js.snap b/tests/destructuring/__snapshots__/jsfmt.spec.js.snap index 0c932673..d2a77a89 100644 --- a/tests/destructuring/__snapshots__/jsfmt.spec.js.snap +++ b/tests/destructuring/__snapshots__/jsfmt.spec.js.snap @@ -22,6 +22,18 @@ const UserComponent = function({ }; const { a, b, c, d: { e } } = someObject; + +try { + // code +} catch ({ data: { message }}) { + // code +} + +try { + // code +} catch ({ data: { message: { errors }}}) { + // code +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const [one, two = null, three = null] = arr; a = ([s = 1]) => 1; @@ -56,4 +68,20 @@ const { d: { e } } = someObject; +try { + // code +} catch ({ data: { message } }) { + // code +} + +try { + // code +} catch ({ + data: { + message: { errors } + } +}) { + // code +} + `; diff --git a/tests/destructuring/destructuring.js b/tests/destructuring/destructuring.js index 6b774e3d..37bb1723 100644 --- a/tests/destructuring/destructuring.js +++ b/tests/destructuring/destructuring.js @@ -19,3 +19,15 @@ const UserComponent = function({ }; const { a, b, c, d: { e } } = someObject; + +try { + // code +} catch ({ data: { message }}) { + // code +} + +try { + // code +} catch ({ data: { message: { errors }}}) { + // code +}