Skip to content

Commit

Permalink
Parcel 2: CoffeeScript sourcemaps (#3282)
Browse files Browse the repository at this point in the history
* Add sourcemaps to CoffeeScript transformer

* update sourcemap to use rawsourcemap output
  • Loading branch information
kwelch authored and DeMoorJasper committed Jul 31, 2019
1 parent baf40f7 commit 8d689a7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
2 changes: 2 additions & 0 deletions packages/transformers/coffeescript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
},
"dependencies": {
"@parcel/plugin": "^2.0.0-alpha.0",
"@parcel/source-map": "^2.0.0-alpha.0",
"@parcel/utils": "^2.0.0-alpha.0",
"coffeescript": "^2.0.3",
"nullthrows": "^1.1.1",
"semver": "^5.4.1"
Expand Down
25 changes: 22 additions & 3 deletions packages/transformers/coffeescript/src/CoffeeScriptTransformer.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,30 @@
// @flow
import {Transformer} from '@parcel/plugin';
import SourceMap from '@parcel/source-map';
import coffee from 'coffeescript';
import {relativeUrl} from '@parcel/utils';

export default new Transformer({
async transform({asset}) {
async transform({asset, options}) {
let sourceFileName: string = relativeUrl(
options.projectRoot,
asset.filePath
);

asset.type = 'js';
let output = coffee.compile(await asset.getCode());
asset.setCode(output);
let output = coffee.compile(await asset.getCode(), {
filename: sourceFileName,
sourceMap: options.sourceMaps
});

// return from compile is based on sourceMaps option
if (options.sourceMaps) {
asset.setCode(output.js);
asset.setMap(SourceMap.fromRawSourceMap(output.v3SourceMap));
} else {
asset.setCode(output);
}

return [asset];
}
});

0 comments on commit 8d689a7

Please sign in to comment.