Skip to content

Releases: omar-azmi/tsignal_ts

v0.4.0 - add signal collections and simplify dynamic signals

03 Jul 05:46
Compare
Choose a tag to compare

this release simplifies the management of dynamic signals by making every Accessor<T> function identifiable via its custom id property.
when observer signals are aware of their dependency's id, it makes it easy for them to remove their dependency on them by simply invoking ctx.delEdge(getDepSignalValue.id, thisSignal.id).
another advantage that it gives is the ability add dependencies silently via ctx.addEdge(getDepSignalValue.id, thisSignal.id). previously, you would have to call the getter function with your observer signal's id as the argument so that it would register it as an observer.

in addition, this release introduces two new dynamic signal classes under the new collection_signal submodule:

  • UnisetSignal:
    holds a set of accessors (Set<Accessor<T>>), and when its value is requested, it returns the values of the accessors it is holding (as a Set<T>).
  • ListSignal: holds an array of reference counted accessors (RcList<Accessor<T>>), and when its value is requested, it returns an array of the values of the accessors it is holding (as a List<T>, which is a subclass of Array<T>).

each of the signals above fire an update cycle when the collection is mutated (addition, removal, or swapping of elements).
they also carry on the propagation of an update cycle if one or more of their underlying dependency elements fires an update.

and as always, recall uncle ben's wise words:

with great american allies comes a greater national debt

don't forget to sell your soul to the bankers, for they be lending out moderately-noice foreclosed homes, and brand new hyundai accents.

What's Changed

Full Changelog: v0.3.2...v0.4.0

v0.3.2 - add DOM reactivity for html

05 Mar 21:35
Compare
Choose a tag to compare

added a custom jsx-runtime to create reactive HTMLElements and Attributes on the fly.
also added a few JSX examples (in the /examples/*/ folder) for creating reactive web pages.

What's Changed

Full Changelog: v0.2.2...v0.3.2

v0.2.2 - changed a `1` to a `0` to make the library function again

19 Feb 16:54
Compare
Choose a tag to compare

LazySignal did not work lazily because of a silly typo, where I was supposed to set this.dirty = 0 after updating/recomputing the signal's value, but instead had it set to this.dirty = 1.
Imagine my disappointment.

Zettai Kanashii Hanashii...
mou inochi wa kankei nai.

Full Changelog: v0.2.1...v0.2.2

v0.2.1 - the update that was supposed to be v0.1.1

17 Feb 22:54
Compare
Choose a tag to compare

but as we all know:
one is the loneliest number that you'll ever do
two can be as bad as one, it's the loneliest number since the number one
** sad violin **

What's Changed

  • merge: topologically ordered update cycle by @omar-azmi in #5
  • fix: update cycle is not topologically ordered #4

Full Changelog: v0.1.2-c...v0.2.1

v0.1.2-c - added some stuff

18 Oct 13:12
Compare
Choose a tag to compare

I don't recall the stuff that had changed. lel

Full Changelog: v0.1.1...v0.1.2-c

v0.1.1 - initial release

05 Oct 02:24
Compare
Choose a tag to compare

what's changed

  • everything

new contributors

  • me - a name I call myself
  • fa - a long long way to run
  • so - a needle pulling thread
  • la - a note to follow so
  • ti - a drink with jam and bread
  • that will bring us back to commiting sudoku

Full Changelog: https://github.com/omar-azmi/tsignal_ts/commits/v0.1.1