total.js 2.4.0 發布了。total.js 是一個 web 應用框架,使用 JavaScript、HTML、CSS 和 Node.js(MVC) web 應用框架來構建 web 網站和 web 應用。
added: components more in docs
added: X-Powered-By header again with option to change/remove it in the framework config default-xpoweredby : Total.js
added: UPTODATE(type, url, [options], interval, [callback(err)]) more in docs
added: F.on('uptodate', function(type, name) {}) new event for up-to-date dependencies
added: F.stats.other.mail with a count of sent emails
added: F.stats.response.errorBuilder with count of sent ErrorBuilders
added: F.stats.response.image with count of processed images via GM or IM
added: F.stats.request.schema with count of request to SchemaBuilder
added: String.prototype.parseTerminal([fields], fn(values, index, count, realIndex), [skipLines], [takeLines])
added: TRACE(message, [name], [url], [ip]) is an alias for F.trace()
added: F.config['trace-console'] (default: true) shows tracing on the console
added: F.convert(name, type/function(val)) registers a new convertor (convertors uses QueryParser (GET/POST))
added: F.convert(obj) performs convertor for an object
added: F.download(url, filename, [callback]) a new alias for F.snapshot()
added: $$$([group], name) for GETSCHEMA([group], name)
added: configuration files supports options for all dependencies module#mymodulename (Object) : { name: 'A custom options for dependency' }
added: U.chunker() added a new property chunker.pages with count of all stored pages
added: U.chunker() added a new property chunker.count with count of all stored items
added: NEWOPERATION(name, fn(error, callback(response), value)) - registers a new operation (same as schemas)
added: OPERATION('name', function(err, response)) - executes an operation (same as schemas)
added: .flac file extensions
added: a new method for MailMessage object message.unsubscribe('your URL or email address'
updated: new error message The field "@" is invalid.
updated: NOSQL().insert(doc, [unique])
updated: quicksort algorithm has been replaced for shellsort (increased performance of sorting about 10-15%)
updated: NOSQL().counter.monthly(true, ...) shows all stats by ID
updated: NOSQL().counter.yearly(true, ...) shows all stats by ID
updated: dependencies supports up-to-date features e.g. module (1 day) : https://......js
updated: F.findConnections([path]) a path argument is optional
updated: U.streamer(beg, [end], function, [skip]) add a new argument skip
updated: deprecated methods in Node.js v7
updated: String.parseJSON([date]) added date argument (date fields will be converted to datetime)
updated: F.script() can compile code to function e.g.: F.script('next(a + b)') returns a compiled function
updated: String.captialize([onlyFirst]) add a new argument onlyFirst
updated: F.onParseQuery(value, req) add a new argument req
updated: F.onParseXML(value, req) add a new argument req
updated: F.onParseJSON(value, req) add a new argument req
updated: RESTBuilder.url() without argument returns a current URL
updated: RESTBuilder.exec(function(err, value, response)) when the error exists the value is still EMPTYOBJECT
updated: addded a new argument replacer to controller.send(message, [id], [blacklist], [replacer]) and client.send(message, [raw], [replacer])