Releases: AmberGraceSoftware/Dex
Dex v0.1.7 Alpha
Exposes FlattenObservable
function in main Dex library, an oversight from the last release.
Dex v0.1.6 Alpha
Adds a "FlattenObservable" utility, which flattens the current value of an observable that may return another observable as its current value recursively.
This will be needed for certain connector libraries, such as Dex-PlayerSave
What's Changed
- FlattenObservable utility - v0.1.6 update by @AmberGraceSoftware in #43
Full Changelog: v0.1.5-alpha...v0.1.6-alpha
Dex v0.1.5 Alpha
Fixes a number of issues with outdated CI tools, as well as an issue that would prevent Dex from being included in a project if not set up in an exact ReplicatedStorage folder structure.
What's Changed
- Update Luau-LSP and Lune to Latest Version by @AmberGraceSoftware in #41
Full Changelog: v0.1.4-alpha...v0.1.5-alpha
Dex v0.1.4-alpha
This is the first release of the library as "Dex" (previously "Dec") for professional reasons. Since Dex is not in public use, this seemed like the most appropriate time for a rename. All future releases will be published to wally under Dex, and documented under a new github repository name and docs site subdomain.
- API has been cleaned up and lightened, specifically removing the low use case / more confusing observable APIs
- Added reactive time controls for timer observables and
Dex.Clock
observables - Added new
Dex.Tween
observable subclass, which follows intuitive tween logic and API. - Cleaned up documentation
- Renamed library to Dex
What's Changed
- Observable Subclasses Rework by @AmberGraceSoftware in #38
- VirtualInstance Directives Tutorial Section by @AmberGraceSoftware in #37
- Rename library to "Dex" by @AmberGraceSoftware in #39
- Hide Unfinished Docs Pages by @AmberGraceSoftware in #40
Full Changelog: v0.1.3-alpha...v0.1.4-alpha
Dec v0.1.3-alpha
This release is a major milestone for Dec! This version adds standardizing and unit testing for VirtualInstance Directives; removes some API/syntax sugar that was confusing, unsafe, or had uncommon use cases; and adds API for more common use cases.
Some API changes:
- Added the
MapChildren
,MapChildrenByKey
, andMapChildrenByValue
directives which meet some common use cases of turning a state into a list of children reactively. See https://dec.ambergracesoftware.com/docs/Chapter1/MappingChildComponents for a usage guide. - Removed the
ExtractChildTemplate
directive in favor of the more straightforwardDestroyPremadeChildren
, which together withFindChild
serve a similar use case. - Removed the instance parameter for
OnMount
/OnMount` callbacks to improve the safety of handling side effects with those directives. - Added support for having observables return observables, and so on, as an argument for attributes like
SetProperties
which accept observable values. Each chained observable value will be unwrapped and subscribed/unsubscribed until a terminal value is found. - Tested and added true support for the input types that were defined on a directive's API where some edge cases that were described in the API documentation were not actually supported before.
- AddTags directive now behaves exactly as you would expect it to when calling AddTags with multiple directives on the same VirtualInstance, using an observable list of tags, or using a list of observable tags (and so on). So long as there is a mounted static/observable reference to a tag, it will remain on the instance until all references to the tag string are unmounted.
- Correctly handles multiple
:SetProperties()
/:SetAttributes()
directives on the same VirtualInstance, ignoring all but the last-defined value on the last directive for each key. Only exception to this rule is if two:SetProperties()
directives connect to the same event, in which case both listeners from each directive will be handled. Covered by unit testing. - Removed "ChildPath" syntax sugar where you could do something like this:
VirtualInstance:AddChild({"Child", "Descendant"}, ...)
as sugar forVirtualInstance:AddChild("Child", Dec.Premade("Descendant", ...)),
, as it was a confusing syntax that could go wrong in many ways. - Removed
Copy
andDeepCopy
directives, which lack a very common use case.
Pull Requests
- Chapter 1 Section 3 - Passing in Props by @AmberGraceSoftware in #27
- Add
MapChildren
utility functions for rendering/updating individual child elements from an input observable table by @AmberGraceSoftware in #30 - "Mapping Child Components" Tutorial by @AmberGraceSoftware in #31
- VirtualInstance Directives Refactor by @AmberGraceSoftware in #32
- Combine Directive by @AmberGraceSoftware in #33
- Test & Finalize SetProperties Functionality by @AmberGraceSoftware in #34
- Fix Edge cases for mounting VirtualInstance References by @AmberGraceSoftware in #35
- Coverage for all VirtualInstance Directives by @AmberGraceSoftware in #36
Full Changelog: v0.1.2-alpha...v0.1.3-alpha
Dec v0.1.2-alpha
This release primarily involves documentation edits, plus a few fixes to syntax/typings/other features that were discovered while writing the first section of the documentation.
Pull Requests:
- Chapter 1 Section 1 - VirtualInstances, Components, and State by @AmberGraceSoftware in #25
- Chapter 1 Section 2 - Creating & Mapping State by @AmberGraceSoftware in #26
Full Changelog: v0.1.1-alpha...v0.1.2-alpha
First Public Pre-Release v0.1.1-alpha
v0.1.1 Alpha Pre-Release
This is the first public pre-release of the Dec library, complete with some unit testing and a docs site! This is also the first release published to Wally.
Please do not use Dec in production or production-bound projects, as the API is not fully tested and is subject to change.
Tutorials will be written soon after this release, so stay tuned!
New Contributors
- @AmberGraceSoftware made their first contribution in #1
Full Changelog: https://github.com/AmberGraceSoftware/Dec/commits/v0.1.1