New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

restify-enroute

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

restify-enroute

Config driven restify route creation

  • 3.0.1
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

restify-enroute

NPM Version Build Status Coverage Status Dependency Status devDependency Status bitHound Score NSP Status

This module provides configuration driven route installation for restify. Instead of having to declare routes in code, you can create a confiuration file like this:

{
    "schemaVersion": 1,
    "routes": {
        "foo": {
            "get": {
                "source": "./test/etc/fooGet.js"
            },
            "post": {
                "source": "./test/etc/fooPost.js"
            },
            "put": {
                "source": "./test/etc/fooPut.js"
            },
            "delete": {
                "source": "./test/etc/fooDelete.js"
            },
            "head": {
                "source": "./test/etc/fooHead.js"
            },
            "patch": {
                "source": "./test/etc/fooPatch.js"
            },
            "options": {
                "source": "./test/etc/fooOptions.js"
            }
        },
        "bar": {
            "get": {
                "source": "./test/etc/barGet.js"
            },
            "post": {
                "source": "./test/etc/barPost.js"
            }
        }
    }
}

This declares the route name, http method, and handler file on disk. this module will install these routes onto a restify server for you. The corresponding handler file would look like:

module.exports = function handler(req, res, next) {
    res.send(200, 'Hello World');
    next()
};

API

Synopsis: install(opts, cb)

Installs routes as defined in opts into a restify server, invokes the callback when done.

  • opts: The options object containing
    • opts.server The restify server to install the routes on to.
    • [opts.config] The POJO of the enroute config.
    • [opts.configPath] The path to the enroute config on disk.
  • cb The callback. Returns Error if there's an error installing the routes.

Note only one of opts.config or opts.configPath is needed. The module will either read in the file from disk, or use a pre-populated POJO.

Example

const enroute = require('restify-enroute');
const restify = require('restify');

const CONFIG = {
    schemaVersion: 1,
    routes: {
        foo: {
            get: {
                source: './test/etc/fooGet.js'
            },
            post: {
                source: './test/etc/fooPost.js'
            },
            delete: {
                source: './test/etc/fooDelete.js'
            },
            head: {
                source: './test/etc/fooHead.js'
            },
        }
    }
};

const server = restify.createServer();
// install routes with enroute
enroute.install({
    config: CONFIG,
    server: server
}, function (err) {
    if (err) {
        console.error('unable to install routes');
    } else {
        console.log('routes installed');
        SERVER.listen(1337);
    }
});

Synopsis: validate(opts, cb)

Parse and validate a enroute config. This will verify that the config is valid and return a POJO with the properties. Note only one of opts.config or opts.configPath is needed.

  • opts The options object containing
    • [opts.config] The POJO of the config you want to validate.
    • [opts.configPath] The path to the config on disk to validate.
  • cb The callback f(err, validatedConfig). Returns Error if there's an
  • error parsing or validating the config

Example

const enroute = require('restify-enroute');

const CONFIG = {
    schemaVersion: 1,
    routes: {
        foo: {
            get: {
                source: './test/etc/fooGet.js'
            },
            post: {
                source: './test/etc/fooPost.js'
            },
            delete: {
                source: './test/etc/fooDelete.js'
            },
            head: {
                source: './test/etc/fooHead.js'
            },
        }
    }
};

const server = restify.createServer();
// install routes with enroute
enroute.validate({
    config: CONFIG
}, function (err) {
    if (err) {
        console.error('unable to install routes');
    } else {
        console.log('config successfully validated');
    }
});

Keywords

FAQs

Package last updated on 26 Oct 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc