At the moment not really, but feel free to check out the github code
if you want and if you find areas for improvement tell me.
I will come back once, I need help.

I have not worked over the comments yet, so they are full of typos
and often missing (I am a lazy documenter)

I did not want to put the code into myfaces before I have
it up and running sufficiently, hence the github project.

At the moment I have covered most of the core functionality
with my tests the last area pending are the push part and the
redirect part.

So I think I am around 80% or so.



Am 18.10.19 um 14:24 schrieb Kito Mann:
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 <http://virtua.tech>
JSFCentral.com <http://JSFCentral.com> | @jsfcentral
+1 203-998-0403 <tel:(203)%20998-0403>

* Listen to the Enterprise Java Newscast: http://enterprisejavanews.com <http://enterprisejavanews.com/>




On Thu, Oct 10, 2019 at 6:10 AM Werner Punz <[email protected] <mailto:[email protected]>> 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/








Reply via email to