# HmrModuleHandlerOptions

`interface` in `core/hmr` · v0.10.0

<https://seedcord.org/docs/packages/core/0.10.0/interfaces/hmr-module-handler-options>

```ts
interface HmrModuleHandlerOptions<
    THandler,
    TMiddleware = void,
    TArtifacts = unknown
>
```

## Properties

### getArtifacts

```ts
getArtifacts?: (handler: THandler) => TArtifacts
```

Snapshotted per handler so a rollback re-registers with the same artifacts after the module re-imports.

### handlersDir

```ts
handlersDir: string;
```

### isHandler

```ts
isHandler: (val: unknown) => val is THandler
```

### isMiddleware

```ts
isMiddleware?: (val: unknown) => val is TMiddleware
```

### logger

```ts
logger: Logger;
```

### middlewaresDir

```ts
middlewaresDir?: string
```

### registerHandler

```ts
registerHandler: (handler: THandler, file: string) =>
    void;
```

### registerMiddleware

```ts
registerMiddleware?: (middleware: TMiddleware, file: string) => void
```

### unregisterHandler

```ts
unregisterHandler: (handler: THandler, artifacts?: TArtifacts) =>
    void;
```

### unregisterMiddleware

```ts
unregisterMiddleware?: (middleware: TMiddleware) => void
```
