| 'use strict'; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| |
| var _utilities = require('../utilities'); |
| |
| /** |
| * Disallows the use for flow types without a valid file annotation. |
| * Only checks files without a valid flow annotation. |
| */ |
| |
| var schema = []; |
| |
| var create = function create(context) { |
| // Skip flow files |
| if ((0, _utilities.isFlowFile)(context, false)) { |
| return {}; |
| } |
| |
| var reporter = function reporter(node, type) { |
| context.report({ |
| data: { type }, |
| message: 'Type {{type}} require valid Flow declaration.', |
| node |
| }); |
| }; |
| |
| return { |
| ExportNamedDeclaration(node) { |
| if (node.exportKind === 'type') { |
| reporter(node, 'exports'); |
| } |
| }, |
| ImportDeclaration(node) { |
| if (node.importKind === 'type') { |
| reporter(node, 'imports'); |
| } |
| if (node.importKind === 'value' && node.specifiers.some(function (specifier) { |
| return specifier.importKind === 'type'; |
| })) { |
| reporter(node, 'imports'); |
| } |
| }, |
| TypeAlias(node) { |
| reporter(node, 'aliases'); |
| }, |
| TypeAnnotation(node) { |
| reporter(node, 'annotations'); |
| } |
| }; |
| }; |
| |
| exports.default = { |
| create, |
| schema |
| }; |
| module.exports = exports.default; |