Vuex Tools

# Vuex Tools

## Table of contents

### Interfaces

- [ModuleBuilder](interfaces/modulebuilder.md)

### Functions

- [createModule](README.md#createmodule)
- [createStore](README.md#createstore)

## Functions

### createModule

▸ **createModule**<State, RootState\>(`initialState`: State): [*ModuleBuilder*](interfaces/modulebuilder.md)<State, RootState\>

Create a {@see ModuleBuilder} instance.

```ts
interface RootState {
  module_one: {
    list: string[]
  }
}
const module = createModule<RootState['module_one'], RootState>({ list: [] });

@param initialState - initial module state
@typeParam State - Type of module state, usually an key in RootState.
@typeParam RootState - Type of root store state

#### Type parameters:

Name | Default |
:------ | :------ |
`State` | - |
`RootState` | *any* |

#### Parameters:

Name | Type |
:------ | :------ |
`initialState` | State |

**Returns:** [*ModuleBuilder*](interfaces/modulebuilder.md)<State, RootState\>

Defined in: [src/createModule.ts:49](https://github.com/matheusAle/vuex-tools/blob/7dd7f99/src/createModule.ts#L49)

___

### createStore

▸ **createStore**<RootState\>(`options`: *Options*<RootState\>): *Store*<RootState\>

create an instance of {@see Store} and build {@see ModuleBuilder} objects.

```ts
const module1 = createModule({ prop1: 1 });
const module2 = createModule({ prop2: 2 });

const store = createStore({
  moduleBuilders: {
    module1,
    module2,
  }
})
```

#### Type parameters:

Name | Default |
:------ | :------ |
`RootState` | *never* |

#### Parameters:

Name | Type | Description |
:------ | :------ | :------ |
`options` | *Options*<RootState\> | A extended {@see StoreOptions} that includes moduleBuilders Record.    |

**Returns:** *Store*<RootState\>

Defined in: [src/createStore.ts:28](https://github.com/matheusAle/vuex-tools/blob/7dd7f99/src/createStore.ts#L28)
