BETA
My accountGet started
Sep 302019
Total.js Platform
4 min read

Total.js v3.3.0

New version of Total.js framework brings great new features and a lot of improvements. Read more.

Total.js v3.3.0

Big day is here! I'm very happy to announce a new version of Total.js framework. This version brings really great new features, bug fixes and core elements for Total.js v4. Total.js is very complex Node.js framework, maybe without any direct competition (due to features). So enjoy this version with more than a hundred changes!

This version of Total.js framework is sponsored by LabLynx, Inc.

New features

Session module

Finally, this version of Total.js framework supports session module. The module is very sophisticated and designed for the best performance and usage. In dozens of applications, we needed the users to have full control of managing their open sessions. So, with the session module, the users are able to cancel their existing sessions for a specific device or browser.

The module is a bit specific because it works only with two identifiers id (e.g. userid) and sessionid. Session data is loaded when needed, so the module stores only the identifiers, with some additional data, to HDD. Read the documentation for more information or learn from examples.

Example of real usage:

Session module

Improved routing

We have improved routing with few details.

Simplified Authorize/Unauhorize flags:

Improved dynamic schemas:

Better handling (404) not existing static files:

Improved schemas

Schemas have been improved a lot. We have added new methods, properties and functionality, which make coding more convenient, than ever before.

  • new type Number2 with default value null, not 0
  • improved default values, for example: schema.define('parentid', UID)(null)

Patch method

v3.3.0 finally brings PATCH HTTP method support in Total.js schemas. If the request contains PATCH method, the framework enables a special validation for received data only (not for the entire schema).

Schemas support middleware:

Preferences

This was a missing feature for most of Total.js products. Preferences are a simple object for storing persistent data. Preferences are persistent and they work in Cluster.

Usage:

Total.js Components support Parts

This was great idea. Primary we use Total.js components for extending of existing apps. Now a developer can specify parts in the views, where the parts from components will be rendered.

A component declaration:

Usage in views:

Audit logs for all operations

Very helpful method for logging operations. More information in documentation. The method stores the data below:

  • message
  • type if exists
  • parsed user id as userid (if exists)
  • parsed user name as username (if exists)
  • parsed user-agent as ua
  • creation date
  • IP address

Auto-localization of all .html static files

Very important change, you don't need to use LOCALIZE() method. This version performs localization and minification for all .html static files automatically. You can disable this behavior in config file:

Proxy server

Finally, we have extended Total.js framework by adding PROXY() method, which can register proxy routing to external source. Example:

New global variables

  • ACTION() simulates a request to a route, read documentation
  • MAIN for storing of some main data of the application
  • REPO for storing of some repository data of the application
  • FUNC for storing of global functions
  • SESSION() for obtaining of session instance
  • MODIFY() as alias for F.modify()
  • VIEWCOMPILE() as alias for F.view_compile()
  • $ACTION() executes a schema operation directly, read documentation

New utitilies

  • String.parseCSV([delimiter]) for parsing CSV files
  • String.parseUA([structured]) for parsing user-agent

Updates

Updated UID()

This version brings a new generator for unique identificators with 100% backward compatibilty. Example:

RESTBuilder supports keep-alive

Works only with http protocol, but can increase performance for repeated requests.

ImageMagick 7

We have added a support for ImageMagick v7, but you need to enable it:

Fixes

We have fixed small bugs (not critical). All fixes are mentioned in changelog.

Future

We will prepare Total.js v4. Currently, we are working on new open-source products. Stay tuned and Follow us on Twitter.

Become our sponsor

We are looking for sponsors who can help us improve Total.js platform. We have created a lot of great open-source products which you can use without any fees. Are you interested? Contact us.