Sha256: e1a1d3210a35e1a4697619564600c74ef6b85b6cc4fa1fd96713c76f75f98c21
Contents?: true
Size: 951 Bytes
Versions: 43
Compression:
Stored size: 951 Bytes
Contents
/** * @fileoverview Utility functions for type annotation detection. * @author Yannick Croissant * @author Vitor Balocco */ 'use strict'; /** * Checks if we are declaring a `props` argument with a flow type annotation. * @param {ASTNode} node The AST node being checked. * @returns {Boolean} True if the node is a type annotated props declaration, false if not. */ function isAnnotatedFunctionPropsDeclaration(node, context) { if (!node || !node.params || !node.params.length) { return false; } const tokens = context.getFirstTokens(node.params[0], 2); const isAnnotated = node.params[0].typeAnnotation; const isDestructuredProps = node.params[0].type === 'ObjectPattern'; const isProps = tokens[0].value === 'props' || (tokens[1] && tokens[1].value === 'props'); return (isAnnotated && (isDestructuredProps || isProps)); } module.exports = { isAnnotatedFunctionPropsDeclaration: isAnnotatedFunctionPropsDeclaration };
Version data entries
43 entries across 43 versions & 1 rubygems