diff --git a/ember-can/src/ability.ts b/ember-can/src/ability.ts index eb0715c..1b81a24 100644 --- a/ember-can/src/ability.ts +++ b/ember-can/src/ability.ts @@ -25,7 +25,7 @@ export default class EmberObjectAbility extends EmberObject { */ getAbility( propertyName: string, - model?: Model, + model?: Record, properties?: Record, ): unknown { const abilityValue = get(this, this.parseProperty(propertyName)); @@ -37,7 +37,3 @@ export default class EmberObjectAbility extends EmberObject { return abilityValue; } } - -export interface Model { - [key: string]: unknown; -} diff --git a/ember-can/src/helpers/can.ts b/ember-can/src/helpers/can.ts index 5d42bf8..8d37986 100644 --- a/ember-can/src/helpers/can.ts +++ b/ember-can/src/helpers/can.ts @@ -4,7 +4,7 @@ import type Ability from '../services/abilities.ts'; interface CanSignature { Args: { - Positional: never[]; + Positional: [abilityString: string, model?: Record]; Named: Record; }; Return: boolean; diff --git a/ember-can/src/helpers/cannot.ts b/ember-can/src/helpers/cannot.ts index 7c0eeae..09d9bef 100644 --- a/ember-can/src/helpers/cannot.ts +++ b/ember-can/src/helpers/cannot.ts @@ -4,7 +4,7 @@ import type Ability from '../services/abilities.ts'; interface CannotSignature { Args: { - Positional: never[]; + Positional: [abilityString: string, model?: Record]; Named: Record; }; Return: boolean; diff --git a/ember-can/src/services/abilities.ts b/ember-can/src/services/abilities.ts index 8bc917d..6c4d7c8 100644 --- a/ember-can/src/services/abilities.ts +++ b/ember-can/src/services/abilities.ts @@ -1,5 +1,5 @@ import Service from '@ember/service'; -import Ability, { type Model } from '../ability.ts'; +import Ability from '../ability.ts'; import { assert } from '@ember/debug'; import { getOwner } from '@ember/application'; import normalizeAbilityString from '../-private/normalize.ts'; @@ -26,7 +26,7 @@ export default class AbilitiesService extends Service { */ abilityFor( abilityName: string, - model?: Model, + model?: Record, properties: Record = {}, ): Ability { const AbilityFactory = getOwner(this)?.factoryFor(`ability:${abilityName}`); @@ -58,7 +58,7 @@ export default class AbilitiesService extends Service { valueFor( propertyName: string, abilityName: string, - model?: Model, + model?: Record, properties?: Record, ): unknown { const ability = this.abilityFor(abilityName, model, properties); @@ -79,7 +79,7 @@ export default class AbilitiesService extends Service { */ can( abilityString: string, - model?: Model, + model?: Record, properties?: Record, ): boolean { const { propertyName, abilityName } = this.parse(abilityString); @@ -96,7 +96,7 @@ export default class AbilitiesService extends Service { */ cannot( abilityString: string, - model?: Model, + model?: Record, properties?: Record, ): boolean { return !this.can(abilityString, model, properties);