UNPKG

genji

Version:

Writing reusable, modular and flexible node.js applications made easy.

213 lines (159 loc) 6.3 kB
CHANGELOG ========= ## 0.7 (2013) ### 0.7.0 (2013/03/31) **NOTE**: This version is **not compatible** with version **0.5.x** - Documentation - Introduce `Klass` - lightweight Javascript OO implementation - Introduce `Core` - the plugin/middleware system - Introduce `Site` - to avoid global shared object in `lib/genji.js` - setting management namespaced by environment - coporate with `Core` and map routes to apps - Replace `Handler` with `Context`, convert some handlers to plugins - Refactor `router` - allow routing without middleware - overwrite routes which has same url pattern and http method - Rewrite `App` - use `Klass` - separate routing from App logic - remove support of static properties - Rewrite `Model` - use `Klass` - remove support of static properties - Remove `Role` - Remove `Base` - Remove file plugin and lib/mime.js - Refactor `view` ## 0.5 (2012) ### 0.5.10 (2012/12/15) - `App` clone routes object before use - `Handler` keep parsed and raw http request data ### 0.5.9 (2012/12/15) - `View#minify` - `json`, `html`, `text` shortcuts for `App#routeResults` ### 0.5.8 (2012/11/24) - `handler#sendAsFile` - allow customize response headers - detect Buffer when calculate data length ### 0.5.7 (2012/11/06) - `util#expose` export sub modules - remove `client.js` - `Model` `toData` and `toDoc` accept array as argument to indicate the fields you need to get. - `App#routePreHook` support bulk set prehook for array of routes ### 0.5.6 (2012/10/31) - `crypto#decipher` handle exception 'TypeError: DecipherFinal fail' when decipher string with different key ciphered ### 0.5.5 (2012/10/26) - `control` - `defer().defer(otherDeferrable)` - `defer().callback(cb)` ### 0.5.4 (2012/09/14) - set default context for layout - batch attache prehook to routes - allow set cookie during redirection - default options for `Role` ### 0.5.3 (2012/08/17) - node 0.8.x compatibility ### 0.5.2-2 (2012/07/21) - Bug fix for `Model` ### 0.5.2-1 (2012/07/18) - Bug fix for `App` ### 0.5.2 (2012/07/05) - `Model` - new field type and type validator: `array`, `regexp`, `date`, `bool` - dynamic fields validation status - instance function accepts callback function as last argument, call `this.emit()` as usual will call the callback and event won't be emitted. - use `toDoc()` instead of `toData('alias')` - bug fix for type validation - `App` - bug fix for instance function not return result ### 0.5.1 (2012/06/16) - `View` - add script loader support (head.js) - change `addViewPath` to `setViewPath` - add support for default context (e.g. var view = new View(engine, {context: {title: 'Title'}});) - merge `BaseView` with `ViewWithCompiler` - basic `layout` manager - `Model` - `model.attr([key1, key2])` get group of attributes as hash object - Bi-direction aliased field name - `App` support application level and route level `routePreHook` - Introduce `Role` ### 0.5.0 (2012/06/05) - external app loader - New `App` module - `genji.app` renamed to `genji.route` ### 0.3.3 (2012/05/19) - expose submodules by default, `genji.short` and `genji.require` are deprecated - rewrite `lib/model.js`, added test - support multi-root path for view template (with namespace) - add `Model#changed`, return object which contains changed fields/values after initialized. - add `util#byteLength` ### 0.3.2 (2012/05/08) - improve `view` and `model` ### 0.3.1 (2012/03/12) - improve `view` partial - introduce `model` ### 0.3.0 (2012/01/05) - introduce `view` for working with template engine like [hogan.js](https://github.com/twitter/hogan.js) - render files - simple caching support - preregister partial files in the `rootViewPath` ### 0.2.4 (2012/01/02) - add `send`, `sendJSON` and `sendHTML` to the `base#BaseHandler` - introduce `event` in `control#defer` ### 0.2.3 (2011/12/15) - Upgraded `expresso` for node 0.6.x support ### 0.2.2 (2011/08/29) - Cleaned code follow default jshint rules - Rewrited `client.js#Client` and added some tests ### 0.2.1 (2011/08/11) - Add timeout support for `control#parallel` - bug fix for handler#Simple#sendJson - new event for handler with method `POST`/`PUT`: - `data` for raw data - `params` for http query string, parsed as plain javascript object - `json` for json string, parsed as plain javascript object ### 0.2.0 (2011/07/10) - Changed the way how we define sub url for `App#[get, post, put, del, head]` - `control#defer` - put flow control object as the first argument of `and` callback - callbacks of `and`, `then` now will be called in registered order `defer(fs.readFile, fs).and(fn1, fn2, fn3).then(fn4, fn5).and(fn6, fn7)` functions will be called in the following order: fn1->fn2->fn3->(fn4&fn5)->fn6->fn7 - `util#extend` takes unlimited arguments `extend(obj, props1, props2, ..., propsN)` - Add `crypto#hmac` - `handler#Simple` parses url parameters by default - Add context for `control#parallel` ### 0.1.0 (2011/06/29) - Remove a lots of functionalities, keep small and focus. - Introduce `App` - `control#parallel` set done/fail callbacks by `parallel.done(fn)` and `parallel.fail(fn)` - add `genji.short`: extends the `genji` namespace with `util` `base` `control` submodules - Simplified `handler`, - the default handler is `genji.require('handler').Handler` which can handle normal http request, parse cookies and send files - you can use `genji.require('handler').BaseHandler` to include features you only need ### 0.0.3 (2011/06/13) - etag for sending file-like contents - util - crypto - new shorthand functions for cipher/decipher - enable to select the digest encoding for `md5`, `sha1`, `hmac_sha1` - web - middleware - now the middleware does not care about application settings - new style middleware config format - `secure-cookie` new middleware to encrypt/decrypt cookie - router, new url routing system, supports declarative and programmatic style of defining url rules. - move `createServer`/`startServer` into submodule `web.server`, `web/index.js` only use to export submodules - pattern - control - promise: call the original async function in next tick - math, new pattern group, add `random`