Static and single page application plugin for hapi.js. Spazy uses the tried and true inert to handle the file serving.
npm i spazy --save
- hapi v18.X.X
- inert v5.X.X
const Hapi = require('@hapi/hapi');
const Inert = require('@hapi/inert');
const Spazy = require('spazy');
const options = { port: 8080 };
const server = new Hapi.Server(options);
await server.register([
{
plugin: require('inert')
},
{
plugin: require('spazy'),
options: {
folder: '.',
file: 'index.html'
}
}
]);
server.route([
{
method: 'GET',
path: '/nonspa/{path*}',
handler: {
spazy: {
spa: false
}
}
},
{
method: 'GET',
path: '/{path*}',
handler: async function (req, res) {
return res.spazy(req.url);
}
}
]);
await server.start();
Options can be used for register, response.spazy, and handler.spazy. Options used in response and handler will overwrites the register options locally for that route. Also accepts options for Inert.
file: String
the default file to serve index.htmlfolder: String
the default folder to serve files .spa: Boolean
single page application mode default truetrailing: Boolean
redirect trailing slash default falseredirects: Array
a list of redirects.redirect: Array
from: String
to: String
base: String
will change the base path for spa index.html file. Useful for serving content from non root path default /secure: Boolean
redirect http to https default falseend: Inert Option
mode: Inert Option
start: Inert Option
lookupMap: Inert Option
etagMethod: Inert Option
lookupCompressed: Inert Option
Transmits a file from the file system via a handler function. Returns a promise.
path: String
the file/folder path to serve requiredoptions: Object
see above options
Transmits a file from the file system via a handler object.
path: String
the file/folder path to serve required*
if path is an asterisk it will to serve the request.path
options: Object
see above options
Why You Should Choose MPL-2.0 This project is licensed under the MPL-2.0 License