Commit Graph

8 Commits

Author SHA1 Message Date
Buddy Sandidge
1797f41fc5 Update README 2016-02-07 22:23:10 -08:00
Buddy Sandidge
cc45cf24ee Bump to version 0.1.0 2016-02-07 22:14:25 -08:00
Buddy Sandidge
62e6469ec7 Add static isNotFound error checker to Router class
If used, it will allow the error message to change without inspecting
the error.message
2016-02-07 22:01:02 -08:00
Buddy Sandidge
f89bc55105 Refactor RouteNode → flatten for better readability 2016-02-07 21:24:50 -08:00
Buddy Sandidge
7c34964dff Add support for functions in router
Can add a function as to match a route. The function takes in a string
url segment and returns some value if the route matches or returns null
or undefined for no match.

Example usage:

function toInt(part) {
  var results = /^(\d+)$/.exec(part)
  return results ? parseInt(results[0], 10) : null
}

var router = new Router()
router.add(['/by/order', toInt], function (val) {
  // val === 123
})

router.route('/by/order/123')
2016-02-07 21:11:51 -08:00
Buddy Sandidge
a317aa86a8 Add support for regular expressions with capture groups
Router
    • add can take either a string or array
        • An array will check each item, for a string will be converted
          to an array

RouteNode
    • rename this._exact → this._children
        • exact matches will not have a '/' in a key because we split on
          the '/' character and RegExp will have a '/' in it
    • If an exact match can't be found first, check every regex on a node
        • Exact match will have preference over RegExp

utils
    • add forEach helper
    • add isArray and isRegExp checker
2016-02-07 20:28:32 -08:00
Buddy Sandidge
10371b7b1e Add Router that only matches exact strings with bootstrapped project
• Add linting with eslint
 • Add unit testing support with mocha with unit tests
 • Add Router class with support for only matching exact strings
 • Add RouteNode class for transversing all routes
2016-02-07 16:04:19 -08:00
Buddy Sandidge
b9d7eb3a7b Initial commit 2016-02-06 20:41:20 -08:00