- 🟥 breaking change
- 🔶 deprecation or possible breaking change
- 🍏 harmless addition, fix, or enhancement
- 🟥 reworked effects
- 🟥
collectorEffectrenamed towatch - 🍏 you can now pass values from the collector to the responder fns
- 🍏 dynamic dependencies: effects now refresh the tracking whenever re-collecting
- 🟥
- 🟥 rewrote signal, derived, and lazy
- 🟥 deleted hipster fn types
SignalFn,DerivedFn,LazyFn(SignalFn becomes justSignalbecause now all signals are hipster fns!) - 🔶 all signals are now an unholy hybrid of class-based and hipster fns
- 🍏 but most behaviors have not actually changed
- 🟥 deleted hipster fn types
- 🍏 added react bindings!
- 🍏 update license year
- 🍏 update github action workflows for publishing
- 🍏 update dependencies
- 🍏 update dependencies
- 🍏 fix: reactivity for plain
prism.get()andprism.set() - 🍏 update dependencies
- 🔶 deprecated
Tree,Trunk,Branch-- in favor of newerPrismandLenssystems (see readme!) - 🍏 update dependencies
- 🔶 branch
.onis no longer a full stzSub, but is now a simple subscriber fn - 🔶 "sync coherence" rework tree behavior, mutations now take immediate effect -- but as a consequence, mutation loop detection is no longer provided -- you used to get an error if you trigger a mutation from an effect that was triggered by a mutation, but now, no error is thrown, you are on your own
- 🔶 deprecated name
Optionsin favor of more specificTreeOptions - 🍏 update dependencies
- 🍏 update dependencies
- 🍏 add
RSetandRMapreactive set/map - 🍏 introduce and encourage new
$signalnaming convention in readme - 🟥 signal rework. new implementation. mostly backwards-compatible.
- 🟥 renamed type
SignaloidtoSignalyFn - 🟥 renamed type
SignaltoSignalFn - 🟥 renamed type
LazySignaltoLazyFn - 🟥 renamed type
DeriveSignaltoDerivedFn - 🟥 signal publish no longer takes a value (it publishes the sneak value)
- 🟥 signal set now accepts second param forcePublish to enforce a publish during the set
- 🍏 add type
Signalyfor (any signal-like core classes) - 🍏 add nice
.toString()handlers, helpful for templating mistakes - 🍏 new primitive classes (without hipster syntax)
new Signal(0)new Lazy(formulaFn)new Derived(formulaFn)- these classes have a new
.fn()method that returns a hipster fn - "porcelain" fns now return hipster-fn variants,
signal(0),lazy(formulaFn),derived(formulaFn)
- 🟥 renamed type
- 🍏 moving to version range that allows non-breaking patches
- 🍏 update dependencies
- 🟥 tracker method renames
see->notifyReadchange->notifyWriteseen->observechanged->subscribe- the global tracker symbol has changed to
Symbol.for("e280.tracker")- all strata packages must upgrade to this new version together at once, otherwise version mismatches will cause errors
- hopefully this will be the last such change, this version of the tracker forever written in stone
- 🍏 tweak signal ergonomics:
mySignal.set(123)now returns a promise for123mySignal(123)now returns a promise for123mySignal.publish(123)now returns a promise for123
- 🍏 update dependencies
- 🍏 remove wildcard export paths (more formal exports)
- 🟥 signals rework
computedreplaced bysignal.lazy- new
signal.deriveis even betterer than old computed
- 🟥 big tree rework (trunk/branch/chronobranch)
- reimplemented to use signals under the hood
- renamed
tree.watchtotree.on
- 🟥 fix
Trunk.setupreturn names
- 🍏 added
signal,effect,computed - 🍏 added
tracker - 🟥 huge rewrite, with big renames
Stratum=>TreeStrata=>TrunkSubstrata=>BranchChronstrata=>ChronobranchState=>TrunkstateSubstate=>Branchstate
- 🟥 continually evolved the strata systems
- 🍏 first release