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!
$ npm install total.js
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.
Cluster
Redis
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:
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.
Number2
with default value null
, not 0
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:
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:
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:
Very helpful method for logging operations. More information in documentation. The method stores the data below:
.html
static filesVery 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:
Finally, we have extended Total.js framework by adding PROXY()
method, which can register proxy routing to external source. Example:
ACTION()
simulates a request to a route, read documentationMAIN
for storing of some main data of the applicationREPO
for storing of some repository data of the applicationFUNC
for storing of global functionsSESSION()
for obtaining of session instanceMODIFY()
as alias for F.modify()
VIEWCOMPILE()
as alias for F.view_compile()
$ACTION()
executes a schema operation directly, read documentationString.parseCSV([delimiter])
for parsing CSV filesString.parseUA([structured])
for parsing user-agentUID()
This version brings a new generator for unique identificators with 100% backward compatibilty. Example:
keep-alive
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.
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.