@hapiness/core

Project to have a HapiJS (https://hapijs.com/) based framework to create easier NodeJS back-end with some awesome features

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@hapiness/core
3241.6.15 years ago7 years agoMinified + gzip package size for @hapiness/core in KB

Readme

Hapiness
<a href="https://travis-ci.org/hapinessjs/hapiness.svg?branch=master">
    <img src="https://travis-ci.org/hapinessjs/hapiness.svg?branch=master" alt="build" />
</a>
<a href="https://coveralls.io/github/hapinessjs/hapiness?branch=master">
    <img src="https://coveralls.io/repos/github/hapinessjs/hapiness/badge.svg?branch=master" alt="coveralls" />
</a>
<a href="https://david-dm.org/hapinessjs/hapiness">
    <img src="https://david-dm.org/hapinessjs/hapiness.svg" alt="dependencies" />
</a>
<a href="https://david-dm.org/hapinessjs/hapiness?type=dev">
    <img src="https://david-dm.org/hapinessjs/hapiness/dev-status.svg" alt="devDependencies" />
</a>
<a href="https://www.typescriptlang.org/docs/tutorial.html">
    <img src="https://cdn-images-1.medium.com/max/800/1*8lKzkDJVWuVbqumysxMRYw.png"
         align="right" alt="Typescript logo" width="50" height="50" style="border:none;" />
</a>
<a href="http://reactivex.io/rxjs">
    <img src="http://reactivex.io/assets/Rx_Logo_S.png"
         align="right" alt="ReactiveX logo" width="50" height="50" style="border:none;" />
</a>
<a href="http://hapijs.com">
    <img src="http://bit.ly/2lYPYPw"
         align="right" alt="Hapijs logo" width="75" style="border:none;" />
</a>
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

* [Yarn or NPM it in your package.json](#yarn-or-npm-it-in-your-packagejson)
* [Use Hapiness API](#use-hapiness-api)

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 a `Hapi` plugin to monitor and report on a variety of `Hapi` 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.
Back to top

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.
Back to top

Contributing

To set up your development environment:
  1. clone the repo to your workspace,
  2. in the shell cd to the main folder,
  3. hit npm or yarn install,
  4. 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`.
Back to top

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 and `DependencyInjection` class
* Documentation
  • v1.2.0 (2017-11-18)
* Http Handler, Observable can set headers
* Use `injection-js` from `npm`
* 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
  • 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
Back to top

Maintainers

<tr>
    <td colspan="5" align="center"><a href="https://www.tadaweb.com"><img src="http://bit.ly/2xHQkTi" width="117" alt="tadaweb" /></a></td>
</tr>
<tr>
    <td align="center"><a href="https://github.com/Juneil"><img src="https://avatars3.githubusercontent.com/u/6546204?v=3&s=117" width="117"/></a></td>
    <td align="center"><a href="https://github.com/antoinegomez"><img src="https://avatars3.githubusercontent.com/u/997028?v=3&s=117" width="117"/></a></td>
    <td align="center"><a href="https://github.com/reptilbud"><img src="https://avatars3.githubusercontent.com/u/6841511?v=3&s=117" width="117"/></a></td>
    <td align="center"><a href="https://github.com/njl07"><img src="https://avatars3.githubusercontent.com/u/1673977?v=3&s=117" width="117"/></a></td>
	<td align="center"><a href="https://github.com/tlerias"><img src="https://avatars1.githubusercontent.com/u/3011845?v=3&s=117" width="117"/></a></td>
</tr>
<tr>
    <td align="center"><a href="https://github.com/Juneil">Julien Fauville</a></td>
    <td align="center"><a href="https://github.com/antoinegomez">Antoine Gomez</a></td>
    <td align="center"><a href="https://github.com/reptilbud">Sébastien Ritz</a></td>
    <td align="center"><a href="https://github.com/njl07">Nicolas Jessel</a></td>
	<td align="center"><a href="https://github.com/tlerias">Tara Lerias</a></td>
</tr>

Back to top

License

Copyright (c) 2017 Hapiness Licensed under the MIT license.
Back to top