fritz2 v0.7 Release Notes
Release Date: 2020-08-13 // over 3 years ago-
๐ฅ breaking changes
๐ This release contains changes that break code written with earlier versions:
- ๐
Handler
s are now suspendable, so you can call suspend-methods directly inside yourHandler
. There is no need forApplicator
anymore. Therefore this class and it's utility-functions have been removed. (PR#124 & PR#126) ๐ฆ
FormateStore
and interfaceFormat
have been removed. Useformat
-factory-function insidelenses
package to create a formattingLens
and create a normalSubStore
(by usingsub
). (PR#139 & PR#146)val df: DateFormat = DateFormat("yyyy-MM-dd")// converts a Date into String in vice versaval dateFormat = format( parse = { df.parseDate(it) }, format = { df.format(it) } )//using the dateLensval birthday = personStore.sub(L.Person.birthday + dateFormat)// orval birthday = personStore.sub(L.Person.birthday).sub(dateFormat)
๐จ Validation has been extracted as a service and refactored to be more concise. (PR#149 & #157)
in
commonMain
data class Message(val id: String, val status: Status, val text: String) : ValidationMessage { override fun isError(): Boolean = status \> Status.Valid // renamed from failed() -\> isError()}object PersonValidator : Validator\<Person, Message, String\>() { // return your validation messages hereoverride fun validate(data: Person, metadata: String): List\<Message\> { ... } }
in
jsMain
val personStore = object : RootStore\<Person\>(Person()) { // only update when it's validval addOrUpdate = handle\<Person\> { oldPerson, newPerson -\>if (PersonValidator.isValid(newPerson, "update")) new else oldPerson } } ...// then render the validation message list in your htmlPersonValidator.msgs.render { msg -\> ... }.bind()
in
jvmMain
if (PersonValidator.isValid(newPerson , "add")) { //e.g. save your new Person to Database ... } else { // get the messages, only available after isValid() was calledval msgs = PersonValidator.msgs ... }
๐ new features
- โ added tracking-service to access process state of
Handler
s (e.g. to show process indicator). (PR#147) - โ added history-service to keep track of historical values in
Store
s and provideback()
function. (PR#152) - โ added
Repository
to offer CRUD-functionality for entities and dealing with queries. Implementations are available for REST and LocalStorage (see example). (PR#141, PR#144, PR#155 & PR#153) - โ added
storeOf()
function to create a minimalRootStore
(withoutHandler
s) (PR#144) - โ added convenience-funtion
render
onSeq
, so you can directly writeeach(...).render { ... }
(and leave outmap
) (PR#142) - โ added convenience-funtion
render
onFlow
, so you can directly writeflow.render { ... }
(and leave outmap
) (PR#154) - โ added functions to deal with errors in
Handler
s (PR#137) - snapshots are now provided on oss.jfrog.org (PR#128)
- โ added
append
function to remote (PR#127) - ๐ changed
IdProvider
to generic type (PR#123) - โ
use
Inspector
(created byinspect()
-function) to navigate through your model in validation and test and have data and corresponding ids available at any point (PR#118)
๐ fixed bugs
- ๐