@reperio/hapijs-starter

## Configuration Options

Usage no npm install needed!

<script type="module">
  import reperioHapijsStarter from 'https://cdn.skypack.dev/@reperio/hapijs-starter';
</script>

README

Coverage Status Build Status npm version

hapijs-starter

Configuration Options

Runs a fully-configured HAPI server with Winston logging.

Setup

All you need to do to run the server is to call it in an async method when your application starts.

import {Server} from 'hapijs-starter';
import * as path from 'path';

async function startServer() : Promise<void> {
    const server = new Server({});
    await server.initialize();
    await server.registerRoutesFromDirectory(path.resolve(__dirname, './api'));
    await server.startServer(false);
}

startServer();
Property Type Default Value Details
host string '0.0.0.0' HapiJS host binding
port number 3000 HapiJS port binding
cors boolean true Adds a global route for HTTP OPTIONS requests that responds with options headers to allow CORS requests
statusMonitor boolean true Adds the hapijs-status-monitor plugin that exposes a /status route to get basic server status information
defaultRoute boolean true Adds a default route that responds with 'hello' to be used for heartbeat requests from reverse proxies
logDirectory string ./logs directory to store file based logs
logLevel string 'debug' log level for winston logging
logJson boolean true should the logs be in JSON format?
logDefaultFileTransport boolean true Add the default file transport to the logger
logDefaultConsoleTransport boolean true Add the default console transport to the logger
logDefaultTraceTransport boolean true Add the default trace transport to the logger
logAddtionalLoggerTransports Array [] Additional transports to add to the app logger
logAddtionalTraceTranceports Array [] Additional transports to add to the trace logger
logAutoTraceLogging boolean true Automatically log http requests to the trace log
authEnabled boolean false Enable JWT authentication
authSecret string null JWT secret used to validate JWTs. Required if authEnabled === true
authValidateFunc (decoded: any, request: any, callback: any) => any; (decoded, request, callback) = { return { isValid: true };} Additional validation function based on hapi-auth-jwt2 validation function