webglue-core
v0.1.5
Published
webglue framework core.
Downloads
3
Maintainers
Readme
webglue core
The core of the webglue framework.
Installation
$ npm install --save webglue-core
Documentation
For information on the core concept, read concepts.md
For information on the API, read api.md
Implementation Notes and Design Decisions
Document Driven Design
I decided to implement webglue-core (and it's siblings) using document driven design. In short, that means that before any line of code is written the README gets finished first, the tests and last but not least the code is written.
I want webglue to be easy and logical to understand and use and I believe that defining the 'interface' you, as a programmer, are working with head on is the best way to ensure that.
Writing the documentation first also helps to establish the goals of each library and also helps with ensuring that no single library grows too large in terms of provided functionality. After all one of the main goals of the webglue framework is to deliver small libraries which you can glue together as you see fit and/or exchange the functionality you don't find to you liking with one that better suits your needs.
JavaScript, ES6 and TypeScript
webglue-core (and all official middleware) will be written in JavaScript using ES6 syntax as provided by the latest LTS version of NodeJS. In addition to that webglue-core (and all official middleware) will come with type definitions for use with TypeScript.
Semantic Versioning
As is common these days, webglue-core will adhere to semantic versioning, if only because there is absolutely no reason
- in my humble opinion - not to.
lodash
webglue makes heavy use of the lodash library. I decided to take lodash instead of mori because - although not immutable - I believe that data structures in webglue should be native to keep the framework as simple as possible.
Handler and Middleware
Both handler and middleware are internally wrapped with promises. Therefore handler and middleware functions can either return a promise or a value.
Contribute
Please see CONTRIBUTING.md.
License
The MIT License (MIT)
Copyright (c) 2016 Jan Oetjen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.