/src/node-loaders/coffee-script.js
JavaScript | 33 lines | 29 code | 4 blank | 0 comment | 1 complexity | a2f90c6399eeea5568df97f5673330a4 MD5 | raw file
Possible License(s): MIT
- var fs = require("fs"),
- path = require("path");
- module.exports = function(blanket){
- var coffeeScript = require("coffee-script");
- var oldLoaderCS = require.extensions['.coffee'];
- require.extensions['.coffee'] = function(localModule, filename) {
-
- var pattern = blanket.options("filter");
- filename = blanket.normalizeBackslashes(filename);
- if (blanket.matchPattern(filename,pattern)){
- var content = fs.readFileSync(filename, 'utf8');
- content = coffeeScript.compile(content);
- blanket.instrument({
- inputFile: content,
- inputFileName: filename
- },function(instrumented){
- var baseDirPath = blanket.normalizeBackslashes(path.dirname(filename))+'/.';
- try{
- instrumented = instrumented.replace(/require\s*\(\s*("|')\./g,'require($1'+baseDirPath);
- localModule._compile(instrumented, filename);
- }
- catch(err){
- console.log("Error parsing instrumented code: "+err);
- }
- });
- }else{
- oldLoaderCS(localModule,filename);
- }
- };
- };