# Middleware

`function` in `seedcord` · v0.11.0

<https://docs.seedcord.org/packages/seedcord/0.11.0/functions/middleware>

Decorator used to register middleware with priority ordering. The lower the priority number, the earlier it runs.

Interaction middleware cannot specify event filters.

```ts
Middleware<MType>(
    type: MType,
    priority?: number,
    options?: MiddlewareOptions<MType>
): (
    ctor: Constructor<
        MType extends MiddlewareType.Interaction
            ? InteractionMiddleware<Repliables>
            : EventMiddleware<ValidNonInteractionKeys>
    >
) => void
```

Decorator used to register middleware with priority ordering. The lower the priority number, the earlier it runs.

Interaction middleware cannot specify event filters.

Parameters.

- `type` `MType` — Middleware kind from [`MiddlewareType`](/packages/seedcord/0.11.0/enums/middleware-type)
- `priority?` `number` — Ordering value where lower runs earlier. Default is 0
- `options?` `MiddlewareOptions<MType>` — Additional registration options

Returns `(ctor: Constructor<MType extends MiddlewareType.Interaction ? InteractionMiddleware<Repliables> : EventMiddleware<ValidNonInteractionKeys>>) => void`.
