Static single page application and handlers for hapi.js
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.gitignore
LICENSE
README.md
index.js
package-lock.json
package.json

README.md

Spazy

Static and single page application plugin for hapi.js. Spazy uses the tried and true inert to handle the file serving.

Install

npm i spazy --save

Requirements

  • hapi v17.X.X
  • inert v5.X.X

Example

const Hapi = require('hapi');
const Inert = require('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();

API

options

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.html
  • folder: String the default folder to serve files .
  • spa: Boolean single page application mode default true
  • trailing: Boolean redirect trailing slash default false
  • redirects: 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 false
  • end: Inert Option
  • mode: Inert Option
  • start: Inert Option
  • lookupMap: Inert Option
  • etagMethod: Inert Option
  • lookupCompressed: Inert Option

response.spazy(path, [options])

Transmits a file from the file system via a handler function. Returns a promise.

  • path: String the file/folder path to serve required
  • options: Object see above options

handler.spazy

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

Authors

AlexanderElias

License

Why You Should Choose MPL-2.0 This project is licensed under the MPL-2.0 License