@@ -56,7 +56,7 @@ Root.fromJSON = function fromJSON(json, root) {
56
56
* @function
57
57
* @param {string } origin The file name of the importing file
58
58
* @param {string } target The file name being imported
59
- * @returns {string } Resolved path to `target`
59
+ * @returns {? string } Resolved path to `target` or `null` to skip the file
60
60
*/
61
61
Root . prototype . resolvePath = util . path . resolve ;
62
62
@@ -104,13 +104,16 @@ Root.prototype.load = function load(filename, options, callback) {
104
104
else {
105
105
parse . filename = filename ;
106
106
var parsed = parse ( source , self , options ) ,
107
+ resolved ,
107
108
i = 0 ;
108
109
if ( parsed . imports )
109
110
for ( ; i < parsed . imports . length ; ++ i )
110
- fetch ( self . resolvePath ( filename , parsed . imports [ i ] ) ) ;
111
+ if ( resolved = self . resolvePath ( filename , parsed . imports [ i ] ) )
112
+ fetch ( resolved ) ;
111
113
if ( parsed . weakImports )
112
114
for ( i = 0 ; i < parsed . weakImports . length ; ++ i )
113
- fetch ( self . resolvePath ( filename , parsed . weakImports [ i ] ) , true ) ;
115
+ if ( resolved = self . resolvePath ( filename , parsed . weakImports [ i ] ) )
116
+ fetch ( resolved , true ) ;
114
117
}
115
118
} catch ( err ) {
116
119
finish ( err ) ;
@@ -184,8 +187,9 @@ Root.prototype.load = function load(filename, options, callback) {
184
187
// references anymore, so we can load everything in parallel
185
188
if ( util . isString ( filename ) )
186
189
filename = [ filename ] ;
187
- for ( var i = 0 ; i < filename . length ; ++ i )
188
- fetch ( self . resolvePath ( "" , filename [ i ] ) ) ;
190
+ for ( var i = 0 , resolved ; i < filename . length ; ++ i )
191
+ if ( resolved = self . resolvePath ( "" , filename [ i ] ) )
192
+ fetch ( resolved ) ;
189
193
190
194
if ( sync )
191
195
return self ;
0 commit comments