Skip to main content

1.5.0 (2023-11-11)

What's new ?


Add a new Observables builder: combineLatestObject.

It's similar to combineLatest but works with objects instead.


Add a new unsafe?: boolean argument to the getValue(...) method of IReplayLastSource, to support uninitialized value.


Signals have been considerably improved in performance (~x10 faster), thanks to various testing and fine optimizations.

Breaking changes

Put IUnsubscribe into a separate library

IUnsubscribe is now a type of @lirx/unsubscribe.


Add the throw method

Now, a signal may have an error state.

Change toObservable(...) options and return type

toObservable may return an Observable sending notifications instead of values to support errors.

Update default signal's equal function

The default signal's equal function is now EQUAL_FUNCTION_STRICT_EQUAL instead of EQUAL_FUNCTION_NON_PRIMITIVES_ALWAYS_FALSE

Changes in typing

  • IWritableSignal becomes ISignal
  • ISignal becomes IReadonlySignal
  • some other interfaces or types


The argument given to sourceObservablePipe changes to allow a more generic pipe.

In consequence, its related pipes like shareObservablePipe partially change too.

However, this should be transparent as the change touches properties that was managed internally.

toObservable => unknownToObservable

Rename toObservable into unknownToObservable.

Remove reactiveString

Was deprecated since 1.2.0.

Remove logStateObservablePipe

Was deprecated since 1.1.0.