Absolutely this is the way to go.  It will download node run your package.json script to compile the TypeScript code and put it in the right location all as part of the Maven Build.

On 9/6/2022 5:46 AM, Werner Punz wrote:
Just checked the code, it uses basically the frontend maven plugin,
which is a maven shim over node:
<plugin>

        <groupId>com.github.eirslett</groupId>

        <artifactId>frontend-maven-plugin</artifactId>

        <version>1.12.1</version>

        <configuration>

        <nodeVersion>v16.13.1</nodeVersion>

        <npmVersion>8.1.2</npmVersion>

        <installDirectory>${main.basedir}/target/node</installDirectory>

        </configuration>

        </plugin>



I can go this route, this would be the least painful one because it basically just downloads node and executes the node build as is, if this is ok with the apache build process.


Werner


Am Di., 6. Sept. 2022 um 11:08 Uhr schrieb Werner Punz <[email protected]>:

    Sounds great I will have a look.

    Thanks for the hint.

    Werner


    Am Di., 6. Sept. 2022 um 11:05 Uhr schrieb Melloware Inc
    <[email protected]>:

        Werner,

        I can get the code building in maven even if it’s in
        Typescript.  We do something similar in PF extensions.

        Melloware
        @melloware on GitHub

        On Sep 6, 2022, at 4:52 AM, Werner Punz
        <[email protected]> wrote:

        
        Hi there is code reduction going on in the build step anyway,
        but I also can move the parts from mona-dish over (which i
        had in the past)
        Problem is that we still will be npm dependent for testing
        libs etc... so i cannot get npm entirely out of the loop for
        testing purposes shim libraries for testing etc...
        That means if we move the ts code over we have to introduce
        an npm build step.

        I will work on something here and then we can all have a look
        whether this should be the way to go.

        Werner


        Am Di., 6. Sept. 2022 um 10:35 Uhr schrieb Thomas Andraschko
        <[email protected]>:

            Hi Werner,

            great to hear that you are back and hope you are fine
            again :)

            IMO the reimplementation is great and improves the
            maintainability a lot for the future.
            I would personally only push it in the master (4.0 /
            jakarta.*), all other branches are "stable" and we should
            not touch them.

            Therefore we are totally fine to only support IE11+.
            So it would be great if you can also remove some older IE
            hacks like
            
https://github.com/werpu/jsfs_js_ts/blob/master/src/main/typescript/impl/xhrCore/RequestDataResolver.ts#L113

            Also it would be great if you can further improve
            readability.

            For me its absolutely mandatory that all code is directly
            in MyFaces and compiles with Maven somehow.
            So it would also be great if you could only use a minimal
            of your TS mona-dish lib, so we are as clean and
            minimalistic as possible.

            Best regards,
            Thomas


            Am Di., 6. Sept. 2022 um 10:21 Uhr schrieb Werner Punz
            <[email protected]>:

                I will add a short summary on what we have:

                The project atm is hosted on github and basically
                100% my code (although split into 2 projects)
                it is 100% implemented in typescript  and fortified
                with a ton of unit tests. I have yet given i did not
                work on it for quite some time, check the coverage
                percentage, but it is high.

                Downside is, I cut off a ton of old browser support.
                I think IE11 is still supported but nothing below.
                The code is way more readable although some parts
                still can be improved. Maintainability was Prio #1
                something the old code which had to support a ton of
                legacy browsers did not have.

                Downside is, it is 100% typescript, so we need to
                merge that into the myfaces base one way or the other
                but there is no way to avoid an npm build step if we
                drag in the package via npm or on typescript level.
                Another option simply would be to fetch the compiled
                sources but that leaves out the connection to the
                original sources entirely (except for the
                sourcemaps), which I would not prefer.

                The implementation level is atm jsf 2.x i have to
                check whether we need siginficant extensions for 3
                when I stalled my work the status was the js parts
                did not change.
                (one thing I have on my plan for the next few days)


                Werner


                Am Di., 6. Sept. 2022 um 10:13 Uhr schrieb Werner
                Punz <[email protected]>:

                    Hi Sorry for my long absence.

                    Thing is I had severe health problems last year
                    with a disc prolapse becoming acute, and had a
                    ton of private stuff on my back this year on top
                    of my job.
                    However I have now picked up the work on the
                    JSF,js Typescript again.
                    I have yet to check the latest specs of JSF given
                    i was out of the loop for a year if anything
                    significant needs to be added.
                    The Scripts themselve work and have been in usage
                    in Tobago for quite a while.
                    I am just asking whether we want them to add to
                    myfaces or not. If yes then I would start the
                    work to add them as a build option.

                    But I want the community decide on this.

                    Lets start a discussion.

                    Werner

Reply via email to