Awesome news, Werner! If there are any specific (and small :-) areas that I can contribute, please let me know. ___
Kito D. Mann | @kito99 | Java Champion | Google Developer Expert | LinkedIn <https://www.linkedin.com/in/kitomann/> Expert training and consulting: PrimeFaces, PrimeNG, JSF, Java EE, Polymer, Web Components, Angular Virtua, Inc. | virtua.tech JSFCentral.com | @jsfcentral +1 203-998-0403 <(203)%20998-0403> * Listen to the Enterprise Java Newscast: http://enterprisejavanews.com On Thu, Oct 10, 2019 at 6:10 AM Werner Punz <werner.p...@gmail.com> wrote: > Hi, this is not really official so its done when its done, but last friday > I have started to pick up my work regarding the > reimplementation of jsf.js for myfaces in typescript which I started a > while ago but put on hiatus due to more pressing issues. > > The problem was, our old codebase is now around 10 years old. > I already de-junked some parts of it by removing the code for old > browsers, with IE11 being our main baseline. > But a lot has changed in those 10 years. In other words the code still is > outdated and ugly so time for a change. > What has changed in the last 10 years? > > First of all typescript, which is really a nice language and compiles into > various variants of ecmascript > > Secondly the build system, node and webpack are a perfect combination > which remove a load of work > > Third frameworks and browsers. Given that jsf.js is a library I dont have > the luxury of being able > to use third party libs like jquery, but fortunately many constructs are > either baked in into IE11+ variants > of browsers already or can be minimally shimmed without having to pull > node dependencies in. > > The idea was to basically have a small set of core libs in the base which > easy the handling of node.querySelectorAll > have something streamlike and also optional, or in other words, reduce > code bloat by going functional > where it makes sence but omit it where it does not make sense at all. I > rely here on another project of mine > which started as tinkering into small functional variantes over core > functionality and a set of shims needed. > I do not want to pull a full dom query engine in given the browsers > support querying anyway. > > Fourth: Functional patterns have become mainstream. Face it for things > like querying a dom tree, asynchronouse processing, which we do a lot > or handling deeply nested configurations etc.. functional patterns are > superior. I would not want to apply them over everything > but there are things where it makes absolutely sense to apply them, just > the right tool for the job and the good stuff is the browsers > have already core functionality baked in for many of those tasks. > > Fifth testing: Javascript nowadays has a set of really well working and > nice testing frameworks. > So far I use a combination of mocha, sinon and chai and they are powerful > enough that > i can basically use unit testing on micro level aka, really on the method > entry points within the implementations by > dynamically mocking interfaces and objects. > > So far I have about 57-58 testcases with about 30% of the entire > implementation covered. > > Nothing except the tests is working yet, but I am making good progress: > > I am doing this for now on a scratchpad project on github, you can follow > the progress there. > When I am ready I will merge the code into myfaces for the time being as > optional implementation which can > be turned on via a config parameter and once we know that everything is > stable enough we can relegate > the new impl as default (myfaces 3.0 maybe?) > > Either way here is a sneak peek: > > > https://github.com/werpu/jsfs_js_ts/blob/master/src/main/typescript/impl/Impl.ts > > and also here is the link to the temporary scratchpad project: > > https://github.com/werpu/jsfs_js_ts/ > > > > > > >