File tree Expand file tree Collapse file tree
blog/26-02-05/request-url-to-absolute-filename/ex Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+
2+ /*
3+ requires
4+ path
5+ */
6+
7+ resolve . df = false ;
8+
9+ async function resolve ( url , docroot = '.' ) {
10+ resolve . df && console . log ( '=== resolve v2.0 ===' ) ;
11+ resolve . df && console . log ( 'url :' , url ) ;
12+ resolve . df && console . log ( 'docroot :' , docroot ) ;
13+ var err ;
14+ try {
15+
16+ url = decodeURI ( url ) ;
17+
18+ } //try
19+ catch ( err2 ) {
20+
21+ err = err2 ;
22+
23+ } //catch
24+ if ( err ) {
25+ resolve . df && console . error ( err ) ;
26+ return false ;
27+ }
28+
29+ url = url . slice ( 1 ) ;
30+ resolve . df && console . log ( 'url :' , url ) ;
31+ var root = path . resolve ( docroot ) ;
32+ root += path . sep ;
33+ resolve . df && console . log ( 'root :' , root ) ;
34+ var abs = path . resolve ( docroot , url ) ;
35+ resolve . df && console . log ( 'abs :' , abs ) ;
36+
37+ if ( ! abs . startsWith ( root ) ) {
38+ resolve . df && console . log ( 'fail' ) ;
39+ return false ;
40+ }
41+
42+ if ( url . endsWith ( '/' ) ) {
43+ abs += '/' ;
44+ }
45+ resolve . df && console . log ( 'ok' , abs ) ;
46+ return abs ;
47+
48+ } //resolve
49+
You can’t perform that action at this time.
0 commit comments