WASM builds

Build automat applications into WebAssembly (WASM) to run them in web browsers. This allows you to create wasm applications with the same codebase as your web applications.

There are some limitations to be aware of when building for WASM:

  • JS loading by default in ‘blob’ mode, which means that all js code is loaded in a single blob and it does not change in an already loaded wasm application. This behaviour can be changed to ‘per-template’ in the builder settings, but it is currently experimental and may cause issues with already built applications that were built for the blob style mode.
  • B2B features work differenrly as it cannot contact used api’s directly (no access to erply session key). It uses a special proxy on the server to handle the request. This also means that the applications needs to be installed on the server as well for authentication and security purposes.
  • Severe bottleneck for asyncronous operations. Too many async operations may cause the application to behave erratically.
  • Some features are not yet supported in WASM builds (ex: helpers, tools etc). Create a feature request if you want to see a specific feature in WASM builds (and see the error in the console for a missing feature).

Builder updates

Check the changelog area for the information on major updates. Changelog

Subsections of WASM builds

Builder changelog

This page contains the changelog for the builder. It is updated with each new release of the builder. The changelog is organized by version and date.

Version 1.51.0 and 1.52.0

  • GS-25717 Service and app routes now support app routes navigation. It also supports navigation by template route alone if the app route is not provided.
  • GS-25581 Adds targeted loads fallback capability to service builds, so application builds would not lose functionality when built there. This is currenctly experimental and will likely receive further changes for its behaviour.
  • Adds helpers to be available dtSince and indexOfStringSlice
  • Adds tools helper to be available {{ .Tools.GetStaticNavPath "my-page" }}
  • Adds helper
  • GS-25845 Adjusted toTitle behaviour to match that of the server
  • Added new tools helper to list all applications and v2 modules that have been added to the build {{ .Tools.ListV2Modules }}
  • Build flow improvements: fixed an issue where the new flow would reach command line length limits on large applications.
  • GS-25834 Adds new tools helpers (for use in functions only) for B2B authentication (B2BLogin, B2BLogout, B2BLoginRegister, B2BRequestPasswordReset and B2BConfirmPasswordReset)
    • All take in the same json instruction as the corresponding calls on the api {{ .Tools.B2BLogin {“username”: “”, “password”: “”, “authDriver”: “password”} }}. The template field is filled automatically.
  • GS-25894 Adds new helpers to generate local bcrypt hashes and verify them {{ bcryptHash "my-password" }} and {{ bcryptVerify "my-password" "the-hash" }}
  • GS-25232 RunQueryV2 is now supported on service and wasm builds
  • Adds support for ApiLogFiles api in integrated dynamic api’s
  • GS-25602 Adds an option to render js scripts as per-template scripts (same as the server and service does) instead of the single blob. This is experimental and will likely break applications that have already been built with the default single blob setting.