Web and services application framework
Hapiness is a web framework based on HapiJS and enhanced with Dependency Injection, strong modularisation and decorators.
It provides a real enhancement for building web servers and it enables to build modules, services, etc. quickly.
It has a stable and tested dependency injection system thanks to Angular.
Better development experience with typings, maintainability, improvement of productivity and a common project structure.
Everything in a single uniform framework.
Table of contents
- Technologies
- Using Hapiness to create a web server and services
- Contributing
- Change History
- Maintainers
- License
Technologies
-
HapiJS
-
Hapi
enables developers to focus on writing reusable application logic instead of spending time building infrastructure.
-
-
Joi
- Object schema description language and validator for JavaScript objects.
-
Boom
- HTTP-friendly error objects
-
Good
-
Good
is aHapi
plugin to monitor and report on a variety ofHapi
server events as well as ops information from the host machine.
-
-
Typescript
-
TypeScript
is a typed superset of JavaScript that compiles to plain JavaScript.
-
-
RxJS
-
RxJS
is a set of libraries for composing asynchronous and event-based programs using observable sequences and fluent query operators.
-
All those technologies are Typescript
ready. It will help to build web servers and maintain them easier.
Using Hapiness to create a web server and services
yarn
or npm
it in your package.json
$ npm install --save @hapiness/core rxjs
or
$ yarn add @hapiness/core rxjs
"dependencies": {
"@hapiness/core": "^1.5.0",
//...
}
//...
Use Hapiness API
Actually, we're in : v1.5.0
See API Reference to know what's already implemented.
Contributing
To set up your development environment:
- clone the repo to your workspace,
- in the shell
cd
to the main folder, - hit
npm or yarn install
, - run
npm or yarn run test
.- It will lint the code and execute all tests.
- The test coverage report can be viewed from
./coverage/lcov-report/index.html
.
Change History
- v1.6.0 (2018-11-27)
- Request in DI: Add request reference inside route DI
- v1.5.5 (2018-10-15)
- Boostrap fix: Exit the process if it fails
- v1.5.4 (2018-06-19)
- WebSocketServer: add sec-websocket-protocol in response
- v1.5.3 (2018-05-29)
- HttpRequestInfo types
- Add credentials
- v1.5.2 (2018-05-09)
- Shutdown all extensions if one failed in bootstrap
- v1.5.1 (2018-04-06)
- Allow to import many time the same modules if it has no routes inside
- v1.5.0 (2018-03-27)
- EventManager Extension
- Documentation
- v1.4.0 (2018-03-26)
- Extensions: add timeout
- Extensions: shutdown
- Latest packages' versions
- Documentation
- v1.3.1 (2018-02-27)
- Keep request in the Socket instance
- Update dependencies
- v1.3.0 (2017-11-30)
- Option that allow WS Server Ext to share Http Server Ext port
- Handle HapiJS connections system to listen multiple ports
- Documentation
- v1.2.2 (2017-11-20)
- Export
createDecorator()
,extractMetadata()
,extractMetadataByDecorator
,errorHandler()
methods andDependencyInjection
class - Documentation
- Export
- v1.2.0 (2017-11-18)
- Http Handler, Observable can set headers
- Use
injection-js
fromnpm
- Change build system
- Latest packages' versions
- Fix tests related to latest
mocha
version - Documentation
- v1.1.1 (2017-10-22)
- Build in
commonjs
- Latest packages' versions
- Documentation
- Build in
- v1.1.0 (2017-10-16)
-
Websocket
Server: Secure configuration - Documentation
-
- v1.0.0 (2017-10-05)
- Publish all features of API
- First stable version
Maintainers
Julien Fauville | Antoine Gomez | Sébastien Ritz | Nicolas Jessel | Tara Lerias |
License
Copyright (c) 2017 Hapiness Licensed under the MIT license.