UNPKG

921 BJavaScriptView Raw
1/**
2 * @fileoverview Rule to enforce a particular function style
3 * @author Nicholas C. Zakas
4 */
5"use strict";
6
7//------------------------------------------------------------------------------
8// Rule Definition
9//------------------------------------------------------------------------------
10
11module.exports = function(context) {
12
13 var style = context.options[0],
14 enforceDeclarations = (style === "declaration");
15
16 return {
17
18 "FunctionDeclaration": function(node) {
19 if (!enforceDeclarations) {
20 context.report(node, "Expected a function expression.");
21 }
22 },
23
24 "FunctionExpression": function() {
25 var parent = context.getAncestors().pop();
26
27 if (enforceDeclarations && parent.type === "VariableDeclarator") {
28 context.report(parent, "Expected a function declaration.");
29 }
30 }
31 };
32
33};