UNPKG

canonical

Version:

Canonical code style linter and formatter for JavaScript, SCSS and CSS.

40 lines (29 loc) 961 B
/** * @fileoverview Prevent missing React when using JSX * @author Glen Mailer */ 'use strict'; var variableUtil = require('../util/variable'); var pragmaUtil = require('../util/pragma'); // ----------------------------------------------------------------------------- // Rule Definition // ----------------------------------------------------------------------------- module.exports = function(context) { var pragma = pragmaUtil.getFromContext(context); var NOT_DEFINED_MESSAGE = '\'{{name}}\' must be in scope when using JSX'; return { JSXOpeningElement: function(node) { var variables = variableUtil.variablesInScope(context); if (variableUtil.findVariable(variables, pragma)) { return; } context.report(node, NOT_DEFINED_MESSAGE, { name: pragma }); }, BlockComment: function(node) { pragma = pragmaUtil.getFromNode(node) || pragma; } }; }; module.exports.schema = [];