What is rs-x?
rs-x is a reactive expression library for TypeScript. You write a plain string expression — such as 'price * quantity - discount' — bind it to a model object, and get back an IExpression<T> that always holds the current computed value. Whenever any tracked dependency on the model changes, the expression re-evaluates and fires a changed event.
Dependencies are tracked automatically — you do not declare them up front. rs-x wraps values in observer proxies and detects mutations as they happen, whether those mutations come from a direct property assignment, an array push, a resolved Promise, or an RxJS Observable emission.
Expressions are composable: an expression value can itself be a model field, a collection item, a function return value, or another expression. The whole dependency graph updates incrementally — only the nodes affected by a mutation are re-evaluated.