New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

evoke

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

evoke

HTTP Router

latest
Source
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

NPM version Build Status

evoke

hapijs/call for browsers. Supports all modern browsers, tested on IE 9+, Chrome 16+, FireFox 5+, Safari 6+, Opera 12+.

Path matching order

The router iterates through the routing table and executes the first (and only the first) matching route. Route matching is done based on the combination of the request path and the HTTP verb (e.g. 'GET, 'POST'). The query is excluded from the routing logic. Requests are matched in a deterministic order where the order in which routes are added does not matter.

Routes are matched based on the specificity of the route which is evaluated at each segment of the path. Each path is split into its segment (the parts separated by '/'). The segments are compared to the routing table one at a time and are matched against the most specific path until a match is found. If no match is found, the next match is tried.

When matching routes, string literals (no path parameter) have the highest priority, followed by mixed parameters ('/a{p}b'), parameters ('/{p}'), and then wildcard (/{p*}).

Note that mixed parameters are slower to compare as they cannot be hashed and require an array iteration over all the regular expressions representing the various mixed parameter at each routing table node.

Catch all route

If the application needs to override the default Not Found (404) error response, it can add a catch-all route {method: '*', path: '/{p*}'} for a specific method or all methods. Only one catch-all route can be defined per router.

License

evoke is released under the terms of the BSD-3-Clause license.

Thanks

Thanks to Eran Hammer and @hapijs community for the quality engineering behind hapi.

Thanks to BrowserStack for providing the infrastructure that allows us to run our build in real browsers.

Keywords

hapi

FAQs

Package last updated on 08 Mar 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