Skip to content

Commit 9c15920

Browse files
committed
feat(espower-coffee): interact with coffeescript compiler to adjust line number in power-assert output
1 parent cd00c8f commit 9c15920

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

index.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
var coffee = require('coffee-script'),
99
originalCompileFile = coffee._compileFile,
1010
minimatch = require('minimatch'),
11+
extend = require('xtend'),
12+
convert = require('convert-source-map'),
1113
espowerSource = require('espower-source');
1214

1315
function espowerCoffee (options) {
@@ -17,15 +19,18 @@ function espowerCoffee (options) {
1719
pattern = options.cwd + separator + options.pattern;
1820

1921
coffee._compileFile = function (filepath, sourceMap) {
20-
var answer = originalCompileFile(filepath, sourceMap);
22+
var withMap = originalCompileFile(filepath, true); // enable sourcemaps
2123
if (minimatch(filepath, pattern)){
22-
if (sourceMap) {
23-
answer.js = espowerSource(answer.js, filepath, options.espowerOptions);
24-
} else {
25-
answer = espowerSource(answer, filepath, options.espowerOptions);
26-
}
24+
var conv = convert.fromJSON(withMap.v3SourceMap);
25+
// restore filepath since coffeescript compiler drops it
26+
conv.setProperty('sources', [filepath]);
27+
withMap.js = espowerSource(
28+
withMap.js,
29+
filepath,
30+
extend(options.espowerOptions, {sourceMap: conv.toObject()})
31+
);
2732
}
28-
return answer;
33+
return sourceMap ? withMap : withMap.js;
2934
};
3035

3136
coffee.register();

0 commit comments

Comments
 (0)