UNPKG

shifty-router

Version:

Fast, modular client router, based on sheet-router

23 lines (19 loc) 747 B
/* eslint-disable no-useless-escape */ var electron = '^(file:\/\/|\/)(.*\.html?\/?)?' var protocol = '^(http(s)?(:\/\/))?(www\.)?' var domain = '[a-zA-Z0-9-_\.]+(:[0-9]{1,5})?(\/{1})?' var qs = '[\?].*$' /* eslint-enable no-useless-escape */ var stripElectron = new RegExp(electron) var prefix = new RegExp(protocol + domain) var normalize = new RegExp('#') var suffix = new RegExp(qs) module.exports = pathname // replace everything in a route but the pathname and hash // TODO(yw): ditch 'suffix' and allow qs routing // (str, bool) -> str function pathname (route, isElectron) { if (isElectron) route = route.replace(stripElectron, '') else route = route.replace(prefix, '') return route.replace(suffix, '').replace(normalize, '/') }