# HmrModuleHandlerOptions

`interface` in `core` · v0.4.1

<https://docs.seedcord.org/packages/core/0.4.1/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;
```
