aerojs / aero Goto Github PK
View Code? Open in Web Editor NEW:bullettrain_side: Fastest node.js framework. Go version is actively maintained: @aerogo
License: MIT License
:bullettrain_side: Fastest node.js framework. Go version is actively maintained: @aerogo
License: MIT License
Global scripts used on every page should be in the scripts directory. Compilation order is determined by the configuration file.
If there is a JSON file it should be automatically loaded and added to the locals of the jade template render.
Styles that can be used on every page should be in the styles directory.
Compilation order is determined by the configuration file.
This could be realized via websockets.
Load JSON file for the layout and send the data to Jade.
Tested with 48.0.2552.0 (google-chrome-unstable).
Page reload causes LiveReload to crash.
This issue might be related:
https://code.google.com/p/chromium/issues/detail?id=51687
For now, Aero shouldn't crash when this happens.
Need to think of a better plugin architecture.
Luckily this is the only plugin affected because the others are really simple.
Should automatically check the JSON output from pages that send back JSON.
We need a middleware architecture.
Middleware that works with frameworks like Express should work with Aero as well.
Avoid downloading unnecessary data when installing Aero.
Scoped styles are an anti-pattern for rendering performance.
It's better to properly use CSS classes instead of relying on the scoped attribute because recalculating styles on an AJAX request is bad for performance.
Therefore page styles are going to be global soon.
You should still put them into the page directory because you'll want all related components in one place.
Add a default style called "reset" which will be used if reset.styl has not been found in the styles directory of the project. It should include a pretty standard HTML 5 reset.
Use an online HTML 5 validator to warn the user about validation errors.
Use a very high-level definition of what Aero is doing in aero.run() using Promises and emit the event "ready" when everything finished.
Sometimes only 14 tests are run and it incorrectly reports that the build is passing.
This needs to be fixed asap.
The server and aero.get() should support custom routes.
That means that you can associate /very/special/route with a request handler.
Currently they're included in Aero but they should really be external npm modules.
Something like:
require(`aero-${pluginName}`).init()
Should automatically set headers.
Only available on pages without templates.
Support for pages that use controllers only (e.g. REST APIs).
Each folder specified in the "static" array in the configuration should serve static files.
Optional:
gzip compression should be enabled by default.
https://github.com/laktak/hjson-js currently has a bug that prevents loading its own stringified data.
A workaround is to add a newline character to the end of the file or input.
Aero should scan subdirectories for controllers and add them to the router.
Support routing with regular expressions.
Style file for the layout.
Support for pages without controllers.
Test if passport works normally with Aero.
Example:
page.get.js
page.post.js
These files wouln't need to include the controller object & function boilerplate:
module.exports = {
get: function(request, response) {
response.end('Hello World')
}
}
So the content of page.get.js
would simply be the bare minimum:
response.end('Hello World')
The only problem is how request
and response
should be named since this is very opinionated.
Personally I prefer to not use abbreviations because we have autocomplete for a reason. So I'd go with the names I just mentioned.
page.get.js
should simply be compiled into a module that exports the get
function. The get
function is then assigned to the either existing or automatically created controller object.
Support HTTP/2 via the http2 module.
Add a layout system.
Stylus compilation to CSS.
Seriously, 5 characters is too much.
Maybe HSON or HON. I like HSON because it makes it very obvious that it's JSON related, however the letters don't make much sense (Human Scripting Object Notation?). Well screw the meaning, it looks better.
Need a dependency graph and update all files that depend on the changed file.
Or...plan B...just update all pages...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.