• This repository has been archived on 25/Apr/2019
  • Stars
    star
    277
  • Rank 148,875 (Top 3 %)
  • Language
    JavaScript
  • License
    Other
  • Created about 12 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

API documentation generator

lout

API documentation generator for hapi

Build Status

Description

lout is a documentation generator for hapi servers, providing a human-readable guide for every endpoint using the route configuration. The module allows full customization of the output.

Live demo

You can find a live demo of lout using the unit tests routes. The routes are of course fake but you can get a grasp of what lout looks like given various inputs.

Usage

Lout depends on vision and inert, make sure you register them with hapi.

const Hapi = require('hapi');

const server = Hapi.server({ port: 80 });

await server.register([require('vision'), require('inert'), require('lout')]);

server.start().then(
  console.log('Server running at:', server.info.uri)
);

Parameters

The following options are available when registering the plugin:

  • 'engines' - an object where each key is a file extension (e.g. 'html', 'jade'), mapped to the npm module name (string) used for rendering the templates. Default is { html: 'handlebars' }.
  • 'endpoint' - the path where the route will be registered. Default is /docs.
  • 'basePath' - the absolute path to the templates folder. Default is the lout templates folder.
  • 'cssPath' - the absolute path to the css folder. Default is the lout css folder. It must contain a style.css.
  • 'helpersPath' - the absolute path to the helpers folder. Default is the lout helpers folder.
  • 'partialsPath' - the absolute path to the partials folder. Default is the lout templates folder. This might need to be null if you change the basePath.
  • 'auth' - the route configuration for authentication. Default is to disable auth.
  • 'indexTemplate' - the name of the template file to contain docs main page. Default is 'index'.
  • 'routeTemplate' - the name of the route template file. Default is 'route'.
  • 'filterRoutes' - a function that receives a route object containing method and path and returns a boolean value to exclude routes.
  • 'apiVersion' - an optional string representing the api version that would be displayed in the documentation.

Ignoring a route in documentation

If you want a specific route not to appear in lout's documentation, you have to set lout settings for this specific route to false.

Here is an example snippet of a route configuration :

{
  method: 'GET',
  path: '/myroute',
  options: {
    handler: [...],
    [...]
    plugins: {
      lout: false
    }
  }
}

If you want to exclude multiple routes using conditions, you can use filterRoutes when registering lout :

server.register([require('vision'), require('inert'), {
  plugin: require('lout'),
  options: {
    filterRoutes: (route) => {
      return route.method !== '*' && !/^\/private\//.test(route.path);
    }
  }
}]).then(() => {
    server.start(() => {
        console.log('Server running at:', server.info.uri);
    });
});

More Repositories

1

oz

Web Authorization Protocol
JavaScript
1,532
star
2

postmile

Collaborative list making tool written in Node.js
JavaScript
405
star
3

university

Community learning experiment
JavaScript
374
star
4

metaphor

Open Graph, Twitter Card, and oEmbed Metadata Collector
JavaScript
230
star
5

tv

Interactive debug console
CSS
186
star
6

hapijs.com

The hapijs.com website
JavaScript
183
star
7

bassmaster

Batch request plugin for hapi
JavaScript
139
star
8

poop

hapi plugin for handling uncaught exceptions
JavaScript
114
star
9

discuss

The "mailing list"
99
star
10

sntp

SNTP client (RFC4330) for node
JavaScript
82
star
11

hapi-contrib

Discussion forum for project contributors
78
star
12

rejoice

hapi.js CLI
JavaScript
64
star
13

penseur

Lightweight RethinkDB wrapper
JavaScript
62
star
14

hapi-auth-hawk

Hawk authentication plugin
JavaScript
47
star
15

scarecrow

Oz authentication plugin
JavaScript
45
star
16

postmile-api

Postmile API Server
JavaScript
43
star
17

reptile

Plugin for creating a REPL
JavaScript
23
star
18

postmile-web

Postmile Web server
JavaScript
18
star
19

mailback

Turns incoming emails to callbacks
JavaScript
15
star
20

catbox-mongodb

MongoDB adapter for catbox (hapi caching)
JavaScript
15
star
21

fireworks

@nodeconf July 4th Fireworks
JavaScript
13
star
22

lobotomy

Replace endpoints with temporary or permanent handlers
JavaScript
5
star
23

bananas

Minimal Loggly hapi plugin
JavaScript
5
star
24

radix62

Convert and parse numbers in base62
JavaScript
4
star
25

require-graphql

Adds GraphQL schema file support to require()
JavaScript
4
star
26

while

Random joi shotcuts
JavaScript
4
star
27

hippocampus

Redis-based object cache with change feed
JavaScript
3
star
28

tarnish

Turn a bunch of buffers into a tar buffer
JavaScript
2
star
29

apiece

Stream-like callback function
JavaScript
2
star
30

feud

Family Fued Website
JavaScript
1
star
31

marker

Cross modules and cross versions shared symbols
JavaScript
1
star