> For the complete documentation index, see [llms.txt](https://stash-it.gitbook.io/stash-it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stash-it.gitbook.io/stash-it/api/cacheinstance/addhooks-hooks.md).

# addHooks(hooks)

Adds hooks.

Hooks are added to the end of the hooks list. See [getHooks](/stash-it/api/cacheinstance/gethooks.md) method and [hooks in plugins](/stash-it/plugins/hooks.md).

### **Arguments**

1. `hooks` *(array)*: Array of hooks.

### **Throws**

1. If `event` for any hook is not a string, it will throw an error `Hook's event must be a string.`
2. If `event` for any hook doesn't begin with `pre` or `post`, it will throw an error `Hook's event must start with 'pre' or 'post'.`
3. If `handler` for any hook is not a function, it will throw an error `Hook's handler must be a function.`

### **Example**

```javascript
// assuming that you already have cache instance prepared
const hook1 = {
    event: 'preGetItem',
    handler: () => { ... } // some function that does something, not relevant here
}
const hook2 = {
    event: 'postSetItem',
    handler: () => { ... } // some function that does something, not relevant here
}

cache.addHooks([ hook1, hook2 ]);
```
