@@ -6,11 +6,22 @@ const pump = require('pump');
66
77const { paintStatus, log, withTimer, immediately} = require ( './utils' ) ;
88
9+ const headers = {
10+ 'Access-Control-Allow-Origin' : '*' ,
11+ 'Access-Control-Allow-Methods' : 'OPTIONS, POST, GET, PUT, DELETE' ,
12+ } ;
13+
914const run = ( { port, directory, fileExt = 'json' , keepExtensions = true , slowMode = false } ) => {
1015 const invoke = slowMode ? withTimer : immediately ;
1116 const filesProxy = http . createServer ( ) ;
1217
1318 const files = ( req , res ) => {
19+ if ( req . method === 'OPTIONS' ) {
20+ res . writeHead ( 204 , headers ) ;
21+ res . end ( ) ;
22+ return ;
23+ }
24+
1425 const urlFile = req . url . split ( '/' ) . splice ( - 1 ) . pop ( ) || `index.${ fileExt } ` ;
1526 const urlFileExt = urlFile . indexOf ( '.' ) > - 1 ? urlFile . split ( '.' ) . splice ( - 1 ) . pop ( ) : null ;
1627 const urlFileName = urlFile . split ( `.${ urlFileExt } ` ) [ 0 ] ;
@@ -24,6 +35,8 @@ const run = ({port, directory, fileExt = 'json', keepExtensions = true, slowMode
2435 fs . exists ( filePath , exist => {
2536 const status = exist ? 200 : 404 ;
2637 const paintedStatus = paintStatus ( status ) ;
38+ res . writeHead ( status , headers ) ;
39+
2740 if ( exist ) {
2841 const stream = fs . createReadStream ( filePath ) ;
2942 invoke ( ( ) => pump ( stream , res , log ( `${ paintedStatus } ${ chalk . bold ( method ) } ${ filePath } ` ) ) ) ;
0 commit comments