From a74fd9e9fe4b4d1fe35a6916854144ad6a5cc0be Mon Sep 17 00:00:00 2001 From: Pascal Duez Date: Sun, 14 May 2017 12:49:19 +0200 Subject: [PATCH] feat: add type re-export support to no-types-missing-file-annotation (#228) --- src/rules/noTypesMissingFileAnnotation.js | 5 +++++ tests/rules/assertions/noTypesMissingFileAnnotation.js | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/rules/noTypesMissingFileAnnotation.js b/src/rules/noTypesMissingFileAnnotation.js index cff6e1e1..b6823c1f 100644 --- a/src/rules/noTypesMissingFileAnnotation.js +++ b/src/rules/noTypesMissingFileAnnotation.js @@ -20,6 +20,11 @@ export default (context) => { }; return { + ExportNamedDeclaration (node) { + if (node.exportKind === 'type') { + reporter(node, 'exports'); + } + }, ImportDeclaration (node) { if (node.importKind === 'type') { reporter(node, 'imports'); diff --git a/tests/rules/assertions/noTypesMissingFileAnnotation.js b/tests/rules/assertions/noTypesMissingFileAnnotation.js index 24f31838..f035b6b4 100644 --- a/tests/rules/assertions/noTypesMissingFileAnnotation.js +++ b/tests/rules/assertions/noTypesMissingFileAnnotation.js @@ -30,6 +30,12 @@ export default { message: 'Type imports require valid Flow declaration.' }] }, + { + code: 'export type {A} from "a"', + errors: [{ + message: 'Type exports require valid Flow declaration.' + }] + }, { code: 'function t(): T{}', errors: [{ @@ -52,6 +58,9 @@ export default { }, { code: '/* @noflow */\nimport {type A} from "a"' + }, + { + code: '/* @noflow */\nexport type {A} from "a"' } ] };