@@ -2,7 +2,7 @@ var fs = require("fs");
22var path = require ( "path" ) ;
33
44module . exports = function runLoader ( loader , directory , filename , arg , callback ) {
5- var async = true ;
5+ var async = false ;
66 var loaderContext = {
77 async : function ( ) {
88 async = true ;
@@ -17,16 +17,26 @@ module.exports = function runLoader(loader, directory, filename, arg, callback)
1717 async = true ;
1818 return callback . apply ( this , arguments ) ;
1919 } ,
20- resolve : function ( context , request , callback ) {
21- callback ( null , path . resolve ( context , request ) ) ;
20+ resolve : function ( context , request , resolveCallback ) {
21+ process . nextTick ( function ( ) {
22+ resolveCallback ( null , path . resolve ( context , request ) ) ;
23+ } ) ;
2224 } ,
23- loadModule : function ( request , callback ) {
25+ loadModule : function ( request , loadCallback ) {
2426 request = request . replace ( / ^ - ? ! + / , "" ) ;
2527 request = request . split ( "!" ) ;
26- var content = fs . readFileSync ( request . pop ( ) , "utf-8" ) ;
27- if ( request [ 0 ] && / s t r i n g i f y / . test ( request [ 0 ] ) )
28- content = JSON . stringify ( content ) ;
29- return callback ( null , content ) ;
28+ fs . readFile ( request . pop ( ) , 'utf-8' , function ( err , content ) {
29+ if ( err ) {
30+ loadCallback ( err ) ;
31+ return ;
32+ }
33+
34+ if ( request [ 0 ] && / s t r i n g i f y / . test ( request [ 0 ] ) ) {
35+ content = JSON . stringify ( content ) ;
36+ }
37+
38+ loadCallback ( null , content ) ;
39+ } ) ;
3040 }
3141 } ;
3242 var res = loader . call ( loaderContext , arg ) ;
0 commit comments