@hapiness/core

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

Usage no npm install needed!

<script type="module">
  import hapinessCore from 'https://cdn.skypack.dev/@hapiness/core';
</script>

README

Hapiness

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

  • 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

tadaweb
Julien Fauville Antoine Gomez Sébastien Ritz Nicolas Jessel Tara Lerias

Back to top

License

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

Back to top