Skip to content

Commit

Permalink
fix rule prefer-object-syntax with multilines
Browse files Browse the repository at this point in the history
  • Loading branch information
Newbie012 committed Dec 14, 2022
1 parent 3c9df20 commit 2f4e0c0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
Expand Up @@ -287,5 +287,19 @@ ruleTester.run(name, rule, {
createQuery({ queryKey: ['data'], queryFn: () => fetchData(), enabled: false });
`,
},
{
code: normalizeIndent`
import { createQuery } from "@tanstack/solid-query";
createQuery(
['key'],
() => Promise.resolve('data')
);
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { createQuery } from "@tanstack/solid-query";
createQuery({ queryKey: ['key'], queryFn: () => Promise.resolve('data') });
`,
},
],
})
Expand Up @@ -216,19 +216,14 @@ function runCheckOnNode(params: {
optionsObjectProperties.push(...existingObjectProperties)
}

const argumentsRange = ASTUtils.getRangeOfArguments(callNode)
if (callNode.callee.type === AST_NODE_TYPES.Identifier) {
const argsText = `{ ${optionsObjectProperties.join(', ')} }`

if (argumentsRange) {
ruleFixes.push(fixer.removeRange(argumentsRange))
ruleFixes.push(
fixer.replaceText(callNode, `${callNode.callee.name}(${argsText})`),
)
}

ruleFixes.push(
fixer.insertTextAfterRange(
[callNode.range[0], callNode.range[1] - 1],
`{ ${optionsObjectProperties.join(', ')} }`,
),
)

return ruleFixes
},
})
Expand Down
9 changes: 0 additions & 9 deletions packages/eslint-plugin-query/src/utils/ast-utils.ts
Expand Up @@ -128,15 +128,6 @@ export const ASTUtils = {

return identifier
},
getRangeOfArguments(
node: TSESTree.CallExpression,
): TSESTree.Range | undefined {
const firstArgument = node.arguments[0]
const lastArgument = node.arguments[node.arguments.length - 1]
return firstArgument && lastArgument
? [firstArgument.range[0], lastArgument.range[1]]
: undefined
},
getExternalRefs(params: {
scopeManager: TSESLint.Scope.ScopeManager
node: TSESTree.Node
Expand Down

0 comments on commit 2f4e0c0

Please sign in to comment.