/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; const utils = require('./utils'); const shouldLint = utils.shouldLint; function reportMissingKeyArgument(node, context, hookName) { context.report({ node: node, message: `A fragment reference should be passed to the \`${hookName}\` hook` }); } module.exports = { meta: { docs: { description: 'Validates that the second argument is passed to relay hooks.' } }, create(context) { if (!shouldLint(context)) { return {}; } return { 'CallExpression[callee.name=useFragment][arguments.length < 2]'(node) { reportMissingKeyArgument(node, context, 'useFragment'); }, 'CallExpression[callee.name=usePaginationFragment][arguments.length < 2]'( node ) { reportMissingKeyArgument(node, context, 'usePaginationFragment'); }, 'CallExpression[callee.name=useBlockingPaginationFragment][arguments.length < 2]'( node ) { reportMissingKeyArgument( node, context, 'useBlockingPaginationFragment' ); }, 'CallExpression[callee.name=useLegacyPaginationFragment][arguments.length < 2]'( node ) { reportMissingKeyArgument(node, context, 'useLegacyPaginationFragment'); }, 'CallExpression[callee.name=useRefetchableFragment][arguments.length < 2]'( node ) { reportMissingKeyArgument(node, context, 'useRefetchableFragment'); } }; } };