---
# System prepended metadata

title: Breaking changes
tags: [brew-js]

---

---
tags: brew-js
---

# Breaking changes

## Upgrading to 0.6.x (Preview changes)

### Pure app event

Event emitted to `app` itself no longer emit to `<html>` element.

```typescript
app.emit('event'); // this is treated as pure app event
                   // only event handler registered as app.on('event', handler)
                   // will receive pure app event
```

I the event is intended to associates with the document root element, explicitly specifies as:

```typescript
app.emit('event', document.documentElement);
```

Event listener registered to `app` will still receive the event.
```typescript
app.on('event', () => {}); // this still works
```


On the other hand, if you are listening pure app event with target set to, move the target:


```typescript
// before
app.on(document.documentElement, 'event', () => {});
// after
app.on('event', () => {});
```

## Upgrading to 0.4.x

### Feature moved to HtmlRouter

When using router with html template, change to `useHtmlRouter`.

### Loading and error scope

`loading` variable no longer automatically set when asynchronous operation is registered to DOM using `notifyAsync`.

Add `loading-scope` to `<html>` to enable it.

```htmlembedded!
<html loading-scope set-class="{ loading: loading }">
    ...
</html>
```

## Upgrading to 0.3.x

Starting v0.3, extensions must be loaded by `brew.with` in order to use when using Webpack.

```typescript
brew.with(Router)(app => {
    
});
```