# HmrModuleHandlerOptions

`interface` in `seedcord` · v0.14.0

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

Options for configuring the HmrModuleHandler.

This is only useful during development.

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

## Properties

### getArtifacts

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

Function to extract artifacts from a handler to be stored across hmr cache invalidations.

### handlersDir

```ts
handlersDir: string;
```

Directory containing handler modules.

### isHandler

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

Function to determine if a value is a handler module of type THandler.

### isMiddleware

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

Function to determine if a value is a middleware module of type TMiddleware. Optional because not all setups use middleware.

### logger

```ts
logger: Logger;
```

Logger instance for logging HMR activities.

### middlewaresDir

```ts
middlewaresDir: string;
```

Directory containing middleware modules. Optional because not all setups use middleware.

### name

```ts
name: string;
```

Name of the module handler, used in logging.

### registerHandler

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

Function to register a handler module.

### registerMiddleware

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

Function to register a middleware module. Optional because not all setups use middleware.

### unregisterHandler

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

Function to unregister a handler module.

### unregisterMiddleware

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

Function to unregister a middleware module. Optional because not all setups use middleware.
