
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
restify-enroute
Advanced tools
This module provides configuration driven route installation for restify. Instead of having to declare routes in code, you can create a configuration 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()
};
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.basePath]
Used with [opts.config]
. The POJO requires a
basePath
to correctly resolve the route source file(s).[opts.configPath]
The path to the enroute config on disk.[opts.hotReload]
Indicate whether you want the server to reload the
route from disk each time a request is served,
defaults to false[opts.excludePath]
The relative path to the basepath to exclude
reloaded routescb
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.
opts.hotReload
allows the restify server to reload the route from disk each
time the request is processed. This is extremely slow and should only be used
in non-production instances.
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,
basePath: __dirname
}, 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 anconst 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,
basePath: __dirname
}, function (err) {
if (err) {
console.error('unable to install routes');
} else {
console.log('config successfully validated');
}
});
FAQs
Config driven restify route creation
The npm package restify-enroute receives a total of 28 weekly downloads. As such, restify-enroute popularity was classified as not popular.
We found that restify-enroute demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
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.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.