New version of Total.js framework brings great new features and a lot of improvements. Read more.
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!
- Full changelog
- How to update framework?
$ npm install total.js
- Total.js Documentation
- Total.js Examples
- Homepage: www.totaljs.com
This version of Total.js framework is sponsored by LabLynx, Inc.
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
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:
We have improved routing with few details.
Simplified Authorize/Unauhorize flags:
Improved dynamic schemas:
Better handling (404) not existing static files:
Schemas have been improved a lot. We have added new methods, properties and functionality, which make coding more convenient, than ever before.
- new type
Number2with default value
- improved default values, for example:
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:
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
Total.js Components support
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:
- 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
minification for all
.html static files automatically. You can disable this behavior in
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
MAINfor storing of some main data of the application
REPOfor storing of some repository data of the application
FUNCfor storing of global functions
SESSION()for obtaining of session instance
MODIFY()as alias for
VIEWCOMPILE()as alias for
$ACTION()executes a schema operation directly, read documentation
String.parseCSV([delimiter])for parsing CSV files
String.parseUA([structured])for parsing user-agent
This version brings a new generator for unique identificators with 100% backward compatibilty. Example:
Works only with
http protocol, but can increase performance for repeated requests.
We have added a support for ImageMagick v7, but you need to enable it:
We have fixed small bugs (not critical). All fixes are mentioned in changelog.
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.