2 * @fileoverview Rule to enforce a particular function style
3 * @author Nicholas C. Zakas
4 * @copyright 2013 Nicholas C. Zakas. All rights reserved.
8 //------------------------------------------------------------------------------
10 //------------------------------------------------------------------------------
12 module.exports = function(context) {
14 var style = context.options[0],
15 enforceDeclarations = (style === "declaration");
19 "FunctionDeclaration": function(node) {
20 if (!enforceDeclarations) {
21 context.report(node, "Expected a function expression.");
25 "FunctionExpression": function() {
26 var parent = context.getAncestors().pop();
28 if (enforceDeclarations && parent.type === "VariableDeclarator") {
29 context.report(parent, "Expected a function declaration.");
33 "ArrowFunctionExpression": function() {
34 var parent = context.getAncestors().pop();
36 if (enforceDeclarations && parent.type === "VariableDeclarator") {
37 context.report(parent, "Expected a function declaration.");