Skip to content

Commit

Permalink
Fix check for ability class check
Browse files Browse the repository at this point in the history
  • Loading branch information
mkszepp committed May 13, 2024
1 parent 4a67cc1 commit d0bd2fa
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion ember-can/src/services/abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default class AbilitiesService extends Service {
const ability = AbilityFactory.create(properties);
assert(
`Ability '${abilityName}' has to inherit from ember-can Ability`,
ability instanceof Ability,
isAbilityClass(ability), // "ability instanceof Ability" is not working cause of a bug in ember-auto-import see https://github.com/embroider-build/ember-auto-import/issues/588
);

return ability;
Expand Down Expand Up @@ -102,3 +102,13 @@ export default class AbilitiesService extends Service {
return !this.can(abilityString, model, properties);
}
}

function isAbilityClass(possibleAbilityClass: unknown): possibleAbilityClass is Ability {
const abilityClass = (possibleAbilityClass as Ability);
return (
abilityClass.parseProperty !== undefined &&
typeof abilityClass.parseProperty === 'function' &&
abilityClass.getAbility !== undefined &&
typeof abilityClass.getAbility === 'function'
);
}

0 comments on commit d0bd2fa

Please sign in to comment.