UNPKG

wayfarer

Version:

Composable trie based router

37 lines (31 loc) 997 B
/* eslint-disable node/no-deprecated-api */ var assert = require('assert') module.exports = getAllRoutes var transform = function (trie, previous) { var prev = previous || '/' var routes = {} var nodes = trie.nodes Object.keys(nodes).forEach(function (key) { var path = (prev === '/' ? prev : prev + '/') + (key === '$$' ? ':' + trie.name : key) var cb = nodes[key].cb if (cb !== undefined) { routes[path] = cb } if (Object.keys(nodes[key].nodes).length !== 0) { var obj = transform(nodes[key], path) Object.keys(obj).forEach(function (r) { routes[r] = obj[r] }) } }) return routes } // walk a wayfarer trie // (obj, fn) -> null function getAllRoutes (router) { assert.equal(typeof router, 'function', 'wayfarer.getAllRoutes: router should be an function') var trie = router._trie assert.equal(typeof trie, 'object', 'wayfarer.getAllRoutes: trie should be an object') var tree = trie.trie return transform(tree) }