Skip to content
This repository has been archived by the owner on Apr 30, 2019. It is now read-only.

Releases: aerojs/aero

1.6.0

27 Aug 06:59
Compare
Choose a tag to compare

The only notable change is that there is a new directory now: startup
The path is configurable via path.startup in config.json just like all the other directories.
It should be used for code that needs to be executed at the start of the application, e.g. middleware registration.
You should avoid configuring all your middleware in index.js only.

1.4.0

18 Mar 06:01
Compare
Choose a tag to compare

You can now write your pages in Markdown by adding a .md file to the page directory. See Templates.
We use the popular marked module as the default renderer.

1.0.0

11 Feb 15:25
Compare
Choose a tag to compare
  • .browser.js extension has been renamed to .client.js
  • ECMAScript .client.js files are now transformed via Babel so you can write modern ES without worrying about browser incompatibilities.
  • config.security is not needed anymore. SSL certificates are automatically loaded if they are in the security folder.
  • config.favIcon is not needed anymore. If there is a favicon.ico in your root directory it will be served to the client.
  • You are required to run your project in strict mode now using --use_strict
  • Slightly improved performance (from 27k req / s to 30k req / s).
  • Completely rewrote the architecture. The source code is much more readable and maintainable now.

This release is for Linux users. Windows support will be coming in a future release.

0.9.3

02 Feb 06:52
Compare
Choose a tag to compare
0.9.3 Pre-release
Pre-release

Breaking changes:

  • Plugins are now defined in your package.json instead of the config.json file.
  • Every plugin needs to be included by its full package name just like any other package under "dependencies".
  • siteName configuration is now called title
  • Layout template now has access to the app variable, therefore allowing you to access the title via app.config.title
  • Layout templates therefore need to change title!= siteName to title!= app.config.title

0.9.0

01 Feb 05:37
Compare
Choose a tag to compare
0.9.0 Pre-release
Pre-release

Version 0.9.0 has breaking changes for all projects.
Aero is not a singleton anymore and uses app instances instead.

Fixing existing projects is very easy. Old 0.8.x code:

let aero = require('aero')
aero.get('/', (request, response) => response.end('Hello'))
aero.run()

Needs to be changed to:

let app = require('aero')()
app.get('/', (request, response) => response.end('Hello'))
app.run()

The app constructor also supports a root directory parameter so you can run the app for a subdirectory instead of the current one:

let aero = require('aero')

let app = aero()          // Main app, current directory
let blog = aero('blog')   // Use Aero in 'blog' subdirectory
let admin = aero('admin') // Use Aero in 'admin' subdirectory

0.8.10

27 Dec 02:26
Compare
Choose a tag to compare
0.8.10 Pre-release
Pre-release

The port configuration has been changed:

ports: {
    http: 4000,
    https: 4001,
    liveReload: 9000
}

Please update your project. The old "port" configuration is deprecated now.

0.8.0

15 Nov 02:27
Compare
Choose a tag to compare
0.8.0 Pre-release
Pre-release

The biggest change in 0.8.x is that layouts are getting closer to being finalized.
The style!= css and script!= js directives inside your jade layout are now obsolete.
We want to keep things DRY so we want to avoid lines that need to be repeated on every website. Same goes for the viewport meta tag for mobiles which is now automatically inserted (nowadays every website needs to aim for mobile access).

Currently you do have control over the whole layout. Some people might prefer it that way.
My view on this is a bit mixed.
On the one hand I want to give the user full control over the elements.
On the other hand, the more control you give to the user, the more potential mistakes the user can do.
Mistakes can be less-than-obvious stuff like loading external scripts in the head of your website.

Right now layouts are automagically created on-the-fly by Aero if they don't exist.
Therefore we have opt-in layout control which is not mandatory.

I believe default stuff that "just works" with "opt-in control" is a good solution.
The latter will of course be harder to maintain as new Aero versions are released therefore I'll try to make the automatically created layout handle as many cases as possible.

0.7.0

08 Nov 13:05
Compare
Choose a tag to compare
0.7.0 Pre-release
Pre-release

Implemented a new plugin loader which is now based on npm modules. In order to add a new Aero plugin it needs to be registered as aero-YOUR_PLUGIN_NAME, e.g. aero-jquery. It will also automatically install missing modules that have been specified in your config.json under plugins.

0.6.8

06 Nov 15:10
Compare
Choose a tag to compare
0.6.8 Pre-release
Pre-release

HJSON has far too many problems, it has been removed.
The routing code has been improved and supports POST requests now.

0.6.6

05 Nov 14:16
Compare
Choose a tag to compare
0.6.6 Pre-release
Pre-release

render() has been removed for controllers.

Controllers now support get(request, response) and post(request, response) only.
The old render method needs to be renamed to "get" and the 2nd parameter is now the response the object.
Old render() calls need to be replaced with response.render().

P.S. As always, Aero is in development and not released yet.
However I felt like I should start writing a changelog about breaking changes, so might as well do it now.
The future release will probably change the file extension of all .hjson files to .hson. Be prepared.