coffee-loader
Version:
coffee loader module for webpack
39 lines (37 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = loader;
var _coffeescript = require("coffeescript");
var _CoffeeScriptError = _interopRequireDefault(require("./CoffeeScriptError"));
var _options = _interopRequireDefault(require("./options.json"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
function loader(source) {
const options = this.getOptions(_options.default);
const callback = this.async();
const useSourceMap = typeof options.sourceMap === "boolean" ? options.sourceMap : this.sourceMap;
let result;
try {
result = (0, _coffeescript.compile)(source, {
sourceMap: useSourceMap,
bare: true,
...options,
filename: this.resourcePath
});
} catch (error) {
callback(new _CoffeeScriptError.default(error));
return;
}
let map;
if (useSourceMap && result.v3SourceMap) {
map = JSON.parse(result.v3SourceMap);
delete map.file;
result = result.js;
}
callback(null, result, map);
}