src/constants/ability.js
import { AbilityBuilder } from 'casl' function subjectName (item) { if (!item || typeof item === 'string') return item if (item.__typename && item.__typename.endsWith('Node')) return item.__typename.slice(0, -4).toLowerCase() if (item.type) return item.type return item} Function `defineAbilitiesFor` has 31 lines of code (exceeds 25 allowed). Consider refactoring.export default function defineAbilitiesFor (user) { return AbilityBuilder.define( { subjectName }, can => { if (user && user.username) { can(['route'], ['module', 'sandbox']) can(['logout'], 'auth') can(['create', 'read'], ['module', 'stage']) can(['read'], ['module', 'stage']) can(['edit'], ['module', 'stage'], { id: null }) can(['edit', 'create-child'], 'module', { ownedBy: { username: user.username } }) can('edit', 'stage', { module:Expected indentation of 10 spaces but found 12. {Expected indentation of 12 spaces but found 14. ownedBy: { username: user.username }Expected indentation of 10 spaces but found 12. } }) can(['update', 'delete'], 'Post', { username: user.username }) } else { can(['login'], 'auth') } can(['route'], 'home') } )}