diff --git a/lib/babel-packages.js.flow b/lib/babel-packages.js.flow index e500b5fd93e5..cae0200500f9 100644 --- a/lib/babel-packages.js.flow +++ b/lib/babel-packages.js.flow @@ -49,3 +49,13 @@ declare module "@babel/helper-get-function-arity" { node: BabelNodeFunction ): number; } + +declare module "@babel/helper-annotate-as-pure" { + declare export default function annotateAsPure( + pathOrNode: + | BabelNode + | { + node: BabelNode, + } + ): void; +} diff --git a/packages/babel-helper-annotate-as-pure/src/index.js b/packages/babel-helper-annotate-as-pure/src/index.ts similarity index 52% rename from packages/babel-helper-annotate-as-pure/src/index.js rename to packages/babel-helper-annotate-as-pure/src/index.ts index 1f443b0b8edd..bee16cd7a162 100644 --- a/packages/babel-helper-annotate-as-pure/src/index.js +++ b/packages/babel-helper-annotate-as-pure/src/index.ts @@ -1,13 +1,16 @@ import * as t from "@babel/types"; +import type { Node } from "@babel/types"; const PURE_ANNOTATION = "#__PURE__"; -const isPureAnnotated = ({ leadingComments }) => +const isPureAnnotated = ({ leadingComments }: Node): boolean => !!leadingComments && leadingComments.some(comment => /[@#]__PURE__/.test(comment.value)); -export default function annotateAsPure(pathOrNode) { - const node = pathOrNode.node || pathOrNode; +export default function annotateAsPure( + pathOrNode: Node | { node: Node }, +): void { + const node = pathOrNode["node"] || pathOrNode; if (isPureAnnotated(node)) { return; }