Technology moves fast! ⚡ Don't get left behind.🚶 Subscribe to our mailing list to keep up with latest and greatest in open source projects! 🏆


Subscribe to our mailing list

rejoice

hapi.js CLI

Subscribe to updates I use rejoice


Statistics on rejoice

Number of watchers on Github 63
Number of open issues 1
Average time to close an issue 9 days
Main language JavaScript
Average time to merge a PR 2 days
Open pull requests 1+
Closed pull requests 4+
Last commit over 2 years ago
Repo Created almost 5 years ago
Repo Last Updated over 1 year ago
Size 69 KB
Organization / Authorhapijs
Contributors13
Page Updated
Do you use rejoice? Leave a review!
View rejoice activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating rejoice for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

rejoice

hapi.js CLI.

Build Status

Lead Maintainer - Lloyd Benson

Rejoice is a CLI tool for hapi which requires a js/json file with the config. It relies on the composer library called glue (http://github.com/hapijs/glue).

To start it up simply:

rejoice -c app.json

// or using regular JS file
// where app.js must export the config object
rejoice -c app.js

where app.json may look something like:

{
    "connections": [
        {
            "port": 8080,
            "routes": {
                "timeout": {
                    "server": 10000
                }
            },
            "load": {
                "maxHeapUsedBytes": 1073741824,
                "maxRssBytes": 2147483648,
                "maxEventLoopDelay": 5000
            },
            "labels": [
                "api",
                "http"
            ]
        },
        {
            "port": 8999,
            "labels": [
                "admin"
            ]
        }
    ],
    "server": {
        "load": {
            "sampleInterval": 1000
        }
    },
    "registrations": [
        {
            "plugin": {
                "register": "good",
                "options": {
                    "ops": {
                      "interval": 5000
                    },
                    "reporters": {
                        "myConsoleReporter": [{
                            "module": "good-squeeze",
                            "name": "Squeeze",
                            "args": [{ "log": "*", "response": "*" }]
                        }, {
                            "module": "good-console"
                        }, "stdout"],
                        "myFileReporter": [{
                            "module": "good-squeeze",
                            "name": "Squeeze",
                            "args": [{ "ops": "*" }]
                        }, {
                            "module": "good-squeeze",
                            "name": "SafeJson"
                        }, {
                            "module": "good-file",
                            "args": ["./test/fixtures/awesome_log"]
                        }]
                    }
                }
            }
        },
        {
            "plugin": "lout"
        }
    ]
}

You can specify a specific path to be passed to Glue as the relativeTo option by using the -p flag.

rejoice -c app.json -p /full/path/to/project/plugin/dir

This will allow your plugins to use relative paths in the config file. See the example below.

{
    "connections": [
        {
            "port": 8080,
            "labels": [
                "api",
                "http"
            ]
        }
    ],
    "registrations": [
        {
            "plugin": "lout"
        },
        {
            "plugin": "./myplugin"
        }
    ]
}

When using regular JS file, you may add preConnections or preRegister callbacks. See the example below.

module.exports = {
  connections: [ '...' ],
  registrations: [ '...' ],
  preConnections: function(server, next) {
    // your preConnections logic goes here
    next();
  },
  preRegister: function(server, next) {
    // your preRegister logic goes here
    next();
  }
};

For more information about these options, see Glue's API.

If you need a module required before your application is loaded you can use the -r flag.

rejoice -c app.json -r `module`

Multiple modules can be required by using the -r flag as many times as needed. This example requires two modules from an implied source of node_modules.

rejoice -c app.json -r babel/register -r dotenv/config

When using -r with the -p flag, the -p flag takes on an additional meaning. In this case, the -p specifies the path where the module specified in -r will be found.

rejoice -c app.json -r `module` -p /base/path/to/required/module

The resulting search path for module would be /base/path/to/required/module/node_modules.

To specify both a -p option to be passed to Glue and specify a path to locate the -r module use an absolute path for -r.

rejoice -c app.json -p ./lib -r /absolute/path/to/module
rejoice open issues Ask a question     (View All Issues)
  • almost 3 years upgrade rejoice dependencies
rejoice open pull requests (View All Pulls)
  • update README to good >=7.0.0 usage
rejoice questions on Stackoverflow (View All Questions)
  • Gulp rejoice and watch files
rejoice list of languages used
Other projects in JavaScript