Skip to content

Commit

Permalink
fix(typescript): updates d.ts files
Browse files Browse the repository at this point in the history
Fixes #18
  • Loading branch information
stalniy committed Mar 21, 2018
1 parent 10d790a commit 9ba754c
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 15 deletions.
10 changes: 8 additions & 2 deletions packages/casl-ability/extra/extra.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
import { Rule } from '@casl/ability'
import { Ability, Rule } from '@casl/ability'

export function rulesToQuery(rules: Rule[], convert: (rule: Rule) => Object): Object | null
export function rulesToQuery(ability: Ability, action: string, subject: any, convert: (rule: Rule) => Object): Object | null

export interface PermittedFieldsOptions {
fieldsFrom?: (rule: Rule) => string[] | null | undefined
}

export function permittedFieldsOf(ability: Ability, action: string, subject: any, options?: PermittedFieldsOptions): string[]
36 changes: 25 additions & 11 deletions packages/casl-ability/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,38 +1,52 @@
export interface Rule {
export interface RawRule {
subject: string | string[],
actions: string | string[],
fields?: string[],
conditions?: Object,
inverted?: boolean
}

export interface Rule extends RawRule {
matches(subject: any): boolean
isRelevantFor(subject: any, field?: string): boolean
}

export interface AbilityOptions {
subjectName: (subject: any) => string
}

export class Ability {
rules: Rule[]
rules: RawRule[]

static addAlias(alias: string, fields: string | string[]): void

constructor(rules?: Rule[], options?: AbilityOptions)
constructor(rules?: RawRule[], options?: AbilityOptions)

update(rules: RawRule[]): Ability

update(rules: Rule[]): Ability
can(action: string, subject: any, field?: string): boolean

can(action: string, subject: any): boolean
cannot(action: string, subject: any, field?: string): boolean

cannot(action: string, subject: any): boolean
possibleRulesFor(action: string, subject: any): Rule[]

rulesFor(action: string, subject: any): Rule[]
rulesFor(action: string, subject: any, field?: string): Rule[]

throwUnlessCan(action: string, subject: any, field?: string): void
}

throwUnlessCan(action: string, subject: any): void
export class RuleBuilder {
rule: RawRule
}

export abstract class AbilityBuilderParts {
rules: Rule[]
rules: RawRule[]

can(action: string | string[], subject: string | string[], conditions?: Object): Rule
can(action: string | string[], subject: string | string[], conditions?: Object): RuleBuilder
can(action: string | string[], subject: string | string[], fields?: string[], conditions?: Object): RuleBuilder

cannot(action: string | string[], subject: string | string[], conditions?: Object): Rule
cannot(action: string | string[], subject: string | string[], conditions?: Object): RuleBuilder
cannot(action: string | string[], subject: string | string[], fields?: string[], conditions?: Object): RuleBuilder
}

export class AbilityBuilder extends AbilityBuilderParts {
Expand Down
4 changes: 2 additions & 2 deletions packages/casl-mongoose/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Rule } from '@casl/ability'
import { Ability } from '@casl/ability'

export function toMongoQuery(rules: Rule[]): Object | null
export function toMongoQuery(ability: Ability, subject: any, action?: string): Object | null

export function mongoosePlugin(schema: any): any

0 comments on commit 9ba754c

Please sign in to comment.