# @types/koa-roles

> TypeScript definitions for koa-roles

Latest version **2.0.3** (published 2023-11-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install @types/koa-roles
pnpm add @types/koa-roles
yarn add @types/koa-roles
bun add @types/koa-roles
```

## Health

**Score 40/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; popular repo; extremely popular.

Warnings: low downloads; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 2.0.3 |
| Published | 2023-11-07 |
| First published | 2021-11-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 5.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51393 |
| Maintainers | types |

## Links

- npm: https://www.npmjs.com/package/@types/koa-roles
- Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
- Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-roles
- npm.io page: https://npm.io/package/@types/koa-roles

## Dependencies (1)

- [@types/koa](https://npm.io/package/@types/koa.md) *

## Recent versions

- 2.0.3 (latest) — 2023-11-07
- 2.0.0 (ts4.2) — 2021-11-12
- 2.0.2 — 2023-10-18
- 2.0.1 — 2023-09-14

## README

# Installation
> `npm install --save @types/koa-roles`

# Summary
This package contains type definitions for koa-roles (https://github.com/koajs/koa-roles).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-roles.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/koa-roles/index.d.ts)
````ts
import Koa = require("koa");

declare class Roles<
    StateT extends Koa.DefaultStateExtends = Koa.DefaultState,
    ContextT extends Koa.DefaultContextExtends = Koa.DefaultContext,
    ResponseBodyT = unknown,
> {
    constructor(options?: Roles.Options<StateT, ContextT, ResponseBodyT>);

    can(action: string): Koa.Middleware<StateT, ContextT, ResponseBodyT>;

    use(fn: Roles.Handler<StateT, ContextT, ResponseBodyT>): void;
    use<Action extends string>(action: Action, fn: Roles.Handler<StateT, ContextT, ResponseBodyT, Action>): void;

    middleware(): Koa.Middleware<StateT, ContextT, ResponseBodyT>;
}

declare namespace Roles {
    type Handler<
        StateT extends Koa.DefaultStateExtends = Koa.DefaultState,
        ContextT extends Koa.DefaultContextExtends = Koa.DefaultContext,
        ResponseBodyT = unknown,
        Action extends string = string,
    > = (ctx: Koa.ParameterizedContext<StateT, ContextT, ResponseBodyT>, action: Action) => boolean | Promise<boolean>;

    interface Options<
        StateT extends Koa.DefaultStateExtends = Koa.DefaultState,
        ContextT extends Koa.DefaultContextExtends = Koa.DefaultContext,
        ResponseBodyT = unknown,
    > {
        failureHandler?: (ctx: Koa.ParameterizedContext<StateT, ContextT, ResponseBodyT>, action: string) => void;
        userProperty?: string;
    }
}

export = Roles;

````

### Additional Details
 * Last updated: Tue, 07 Nov 2023 09:09:38 GMT
 * Dependencies: [@types/koa](https://npmjs.com/package/@types/koa)

# Credits
These definitions were written by [Chris Wilkinson](https://github.com/thewilkybarkid).

---
_Source: https://npm.io/package/@types/koa-roles · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
