It has nine processing modules, of which seven are focused on building web assets for the client (frontend). Each of the modules has a series of processing channels, responsible for generating, modifying or compiling the incoming files or assets, contributing to the construction of the final web product.
Some of these modules address tasks such as:Its design includes 3 processing modes: 1) simplified and customizable http server in order to mock the real server, facilitating the management of requests, serving statics and being able to generate API endpoints as the real server; 2) client where all the potential for the development of application frontends is exploited; and 3) refinery as a place where prototypes and components of the client system are developed as quickly as possible.
The following diagram shows the internal processing flow of one of these modules, responsible for generating the final JavaScript code files. It has optimizations in the parallel processing and the manipulation of streams, accelerating the process of interpretation, cleaning and building. In addition, thanks to the use of channel multiplexing, it allows the incorporation of new processors capable of providing new functionalities to the system, increasing its flexibility.
Its creation was a clear breakthrough, since it granted functionalities not seen in any other system, but since then it has been improved and expanded. In addition to supporting the latest advances in experimental JavaScript (@next), it provides full support for Sweet.js macros, enhancing language expressiveness. Web components (m-forms) are treated as first-order entities under this system, incorporating features such as internationalization directly from translation files (yml), or the interpretation of compile-time views based on templates (pug or twig).
Refinery was created as a result of the entire Werft-projects client and server system, but simplifying and concentrating the vital tasks in a single thread, carrying out multiple optimizations and conventions that allow developing prototypes and frontends really fast. Once the prototypes are consolidated, they are exported as Werft-projects first-order components, incorporating them into the client processing mode.
As can be seen in the refinery module, JS processing acquires the focus during the entire processing flow, although there are tasks in charge of managing other assets (css, html, static). This module is highly optimized and parallel in order to lift work instances and quickly compute in order to minimize REPL times (reading-evaluation-printing loop) during the prototyping session, greatly reducing development times thanks to a high level of interactivity (programmer - final product).
This website uses its own and third party cookies to analyze the traffic and offer you a better experience. By browsing or using our services the user is accepting its use.More information.