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/