Migrating from v3.x to v4.x

FrintJS itself doesn't have any breaking changes in this release. The only reason for a major semver is because of RxJS v5.5+ requirement.

RxJS

We now use lettable operators since RxJS v5.5.0, which has resulted into smaller bundle sizes without requiring any stage-1 or below language features.

Before

import { of } from 'rxjs/observable/of';
import { filter } from 'rxjs/operator/filter'; // singular `operator`
import { map } from 'rxjs/operator/map'; // singular `operator`

const numbers$ = of(1, 2, 3)
  ::filter(x => x % 2 === 0)
  ::map(x => x * 10);

numbers$.subscribe(x => console.log(x));
// outputs: 20

The code above is written using bind-operator.

After

import { of } from 'rxjs/observable/of';
import { filter } from 'rxjs/operators/filter'; // plural `operators`
import { map } from 'rxjs/operators/map'; // plural `operators`

const numbers$ = of(1, 2, 3).pipe(
  filter(x => x % 2 === 0),
  map(x => x * 10)
);

numbers$.subscribe(x => console.log(x));
// outputs: 20

Instead of using bind-operator, we are using the new .pipe() method that all Observables now expose in their instances.