3 var tk = require('rocambole-token');
4 var limit = require('../limit');
5 var _params = require('./Params');
7 exports.format = function ArrowFunctionExpression(node) {
9 if (body.type === 'BlockStatement') {
10 limit.around(body.startToken, 'ArrowFunctionExpressionOpeningBrace');
11 limit.around(body.endToken, 'ArrowFunctionExpressionClosingBrace');
14 var arrow = tk.findPrev(body.startToken, '=>');
15 limit.around(arrow, 'ArrowFunctionExpressionArrow');
17 // make sure we handle `(x) => x` and `x => x`
18 if (shouldHandleParams(node)) {
23 exports.getIndentEdges = function(node, opts) {
27 if (shouldHandleParams(node)) {
28 edges.push(_params.getIndentEdges(node, opts));
33 function shouldHandleParams(node) {
34 var arrow = tk.findPrev(node.body.startToken, '=>');
35 // we don't check based on `node.params` because of `node.defaults`
36 return tk.findPrevNonEmpty(arrow).value === ')';