Skip to content

Commit

Permalink
feat(typescript): adds d.ts file
Browse files Browse the repository at this point in the history
Fixes #7
  • Loading branch information
stalniy committed Aug 2, 2017
1 parent 0496053 commit 9e73719
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
export interface Rule {
subject: string | string[],
actions: string | string[],
conditions?: Object,
inverted?: boolean
}

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

export class Ability {
rules: Rule[]

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

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

update(rules: Rule[]): Ability

can(action: string, subject: any): boolean

cannot(action: string, subject: any): boolean

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

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

export abstract class AbilityBuilderParts {
rules: Rule[]

can(action: string | string[], subject: string | string[]): Rule

cannot(action: string | string[], subject: string | string[]): Rule
}

export class AbilityBuilder extends AbilityBuilderParts {
static define(params: AbilityOptions, dsl: Function): Ability
static define(dsl: Function): Ability

static extract(): AbilityBuilderParts
}

export class ForbiddenError extends Error {}

export function rulesToQuery(rules: Rule[], convert: (rule: Rule) => Object): Object[] | null

export function toMongoQuery(rules: Rule[]): Object[] | null

export function mongoosePlugin(schema: any): any

0 comments on commit 9e73719

Please sign in to comment.