2 * @fileoverview Prevent multiple component definition per file
3 * @author Yannick Croissant
7 var componentUtil = require('../util/component');
8 var ComponentList = componentUtil.List;
10 // ------------------------------------------------------------------------------
12 // ------------------------------------------------------------------------------
14 module.exports = function(context) {
16 var componentList = new ComponentList();
18 var MULTI_COMP_MESSAGE = 'Declare only one React component per file';
20 // --------------------------------------------------------------------------
22 // --------------------------------------------------------------------------
25 'Program:exit': function() {
26 if (componentList.count() <= 1) {
30 var list = componentList.getList();
33 for (var component in list) {
34 if (!list.hasOwnProperty(component) || ++i === 1) {
37 context.report(list[component].node, MULTI_COMP_MESSAGE);
41 ReturnStatement: function(node) {
42 if (!componentUtil.isReactComponent(context, node)) {
45 componentList.set(context, node);