Skip to content

v2.3.0

Compare
Choose a tag to compare
@petersirka petersirka released this 05 Dec 08:58
· 2626 commits to master since this release

News:

  • added: support for /workflows file (more in documentation)
  • added: ShcemaBuilderEntity.$exec(name, callback) (more in documentation)
  • added: SchemaBuilder supports new types enum and keyvalue
  • added: controller.$exec(name, [options], [callback]) (more in documentation)
  • added: a new argument description to each SchemaBuilder set + add method e.g. .setSave(), .addWorkflow(), etc..
  • added: SchemaBuilder.meta contains all registered handlers with their descriptions
  • added: a property controller.schema
  • added: F.viewCompile(body, [model], [layout], [repository], [language]) - dynamic views
  • added: controller.viewCompile(body, [model], [headers], [partial]) - dynamic views
  • added: {viewCompile(body, [model])} - dynamic views
  • added: Controller is a global variable for extending prototype
  • added: F.validators with Regular Expressions
  • added: View Engine supports @{continue} and @{break} command for looping
  • added: URLBuilder.make(fn)
  • added: NOSQLMEMORY(dbName, [viewName]) enables in-memory database collection
  • added: NoSQL nosql.upsert(doc) inserts a new document where document doesn't exist in DB
  • added: NoSQL nosql.release() for releasing of in-memory DB (framework clears unused in-memory databases automatically)
  • added: NoSQL nosql.scalar(type, dbName, [view]) performs scalar operation by type: sum, min, max, avg, count or group
  • added: NoSQL nosql.binary.all(callback) browses all stored files
  • added: NoSQL nosql.binary.clear(callback)removes all stored files
  • added: NoSQL DatabaseBuilder.random()
  • added: NoSQL DatabaseBuilder.join(field, dbName, [view]) returns DatabaseBuilder with updated .where(field_JoinedDB, field_currentdb) method (it supports .fields() too)
  • added: NoSQL DatabaseBuilder.join() supports scalar operation too, e.g. nosql.join(...).scalar('count')
  • added: NoSQL DatabaseBuilder.scalar(type, [field]) - types: sum, min, max, avg, count or group
  • added: NoSQL DatabaseBuilder.month(field, [operator], value) filters Date fields according its month number
  • added: NoSQL DatabaseBuilder.year(field, [operator], value) filters Date fields according its year number
  • added: NoSQL DatabaseBuilder.day(field, [operator], value) filters Date fields according its day number
  • added: NoSQL events (documents): insert, update, modify and remove
  • added: NoSQL events (binary): insert, remove and clear
  • added: NoSQL events (counter): hit, remove and clear
  • added: a new alias NOBIN(dbName) witch it returns NOSQL(dbName).binary (a binary instance)
  • added: a new alias NOCOUNTER(dbName) witch it returns NOSQL(dbName).counter (a counter instance)
  • added: F.kill(signal) for killing an instance of the framework
  • added: I alias for `isomorphic code on server-side and client-side together by [email protected] https://github.com/Creeplays
  • added: F.script(body, value, callback(err, value)) evaluates script securly in safe scope (more in documentation)
  • added: new alias SCRIPT() for F.script()
  • added: HttpFile.rename(filename, [callback(err)]) moves file to another directory

Updates:

  • updated: F.on('exit', function(signal) {}) added a signal code
  • updated: SchemaBuilderEntity contains new argument controller, e.g. .setSave(function(error, model, options, callback, controller) { ..
  • updated: removed all validators of email addresses from FrameworkMail
  • updated: GETSCHEMA([group], name, [callback(err, schema)]) can wait for a schema
  • updated: F.localize() supports modificators as static type
  • updated: F.modify() supports a new type static, it's group of .html, .txt and .md files
  • updated: U.trim(obj, [clean]) supports a new argument clean (default false) and when it's true and a value is '' then it sets the value to undefined
  • updated: nosql.update(docToUpdate, [docToInsert]) when the document for updating doesn't exist then database performs insert
  • updated: nosql.modify(docToUpdate, [docToInsert]) when the document for updating doesn't exist then database performs insert
  • updated: nosql.binary stores a creation date as meta info

Fixes:

  • fixed: Image.stream()
  • fixed: global variable Image (in a single library)
  • fixed: JavaScript compressor (problem with Regular Expressions)
  • fixed: custom paths in F.model() and F.source()
  • fixed: NoSQL removing documents (problem with different filters in one queue)
  • fixed: fix view compiler error message
  • fixed: String.prototype.capitalize

Others:

  • removed: nosql doesn't support cache (DatabaseBuilder.cache is obsolete)
  • removed: F.refresh() the method was useless
  • replaced: Array.randomize() for Array.random()
  • improved: code