@@ -9,7 +9,8 @@ export default function Navaid(base, on404) {
9
9
return rgx ? rgx . test ( uri ) && ( uri . replace ( rgx , '' ) || '/' ) : uri ;
10
10
}
11
11
12
- if ( ( base = fmt ( base ) ) === '/' ) base = '' ;
12
+ base = fmt ( base ) ;
13
+ if ( base === '/' ) base = '' ;
13
14
if ( base ) rgx = new RegExp ( '^/?' + base . substring ( 1 ) + '(?=/|$)' , 'i' ) ;
14
15
15
16
$ . route = function ( uri , replace ) {
@@ -18,17 +19,17 @@ export default function Navaid(base, on404) {
18
19
19
20
$ . on = function ( pat , fn ) {
20
21
handlers [ pat ] = fn ;
21
- var o = convert ( pat ) ;
22
- o . route = pat ;
23
- routes . push ( o ) ;
22
+ fn = convert ( pat ) ;
23
+ fn . route = pat ;
24
+ routes . push ( fn ) ;
24
25
return $ ;
25
26
}
26
27
27
28
$ . run = function ( uri ) {
28
29
var i = 0 , params = { } , arr , obj ;
29
- uri = fmt ( uri || location . pathname ) ;
30
- for ( ; i < routes . length ; i ++ ) {
31
- if ( arr = ( obj = routes [ i ] ) . pattern . exec ( uri ) ) {
30
+ for ( ; i < routes . length ; ) {
31
+ obj = routes [ i ++ ] ;
32
+ if ( arr = obj . pattern . exec ( fmt ( uri || location . pathname ) ) ) {
32
33
for ( i = 0 ; i < obj . keys . length ; ) params [ obj . keys [ i ] ] = arr [ ++ i ] || null ;
33
34
handlers [ obj . route ] ( params ) ; // todo loop?
34
35
return $ ;
@@ -67,17 +68,17 @@ export default function Navaid(base, on404) {
67
68
off ( 'replacestate' , run ) ;
68
69
off ( 'pushstate' , run ) ;
69
70
off ( 'click' , click ) ;
70
- } ;
71
+ }
71
72
72
73
return $ . run ( ) ;
73
74
}
74
75
75
76
return $ ;
76
77
}
77
78
78
- function wrap ( type ) {
79
+ function wrap ( type , fn ) {
79
80
type += 'State' ;
80
- var fn = history [ type ] ;
81
+ fn = history [ type ] ;
81
82
history [ type ] = function ( uri ) {
82
83
var ev = new Event ( type . toLowerCase ( ) ) ;
83
84
ev . uri = uri ;
0 commit comments