hensei-web/node_modules/parcel-bundler/lib/assets/CoffeeScriptAsset.js
2020-09-11 06:44:42 -07:00

45 lines
No EOL
1.2 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
const Asset = require('../Asset');
const localRequire = require('../utils/localRequire');
class CoffeeScriptAsset extends Asset {
constructor(name, options) {
super(name, options);
this.type = 'js';
}
generate() {
var _this = this;
return (0, _asyncToGenerator2.default)(function* () {
// require coffeescript, installed locally in the app
let coffee = yield localRequire('coffeescript', _this.name); // Transpile Module using CoffeeScript and parse result as ast format through babylon
let transpiled = coffee.compile(_this.contents, {
sourceMap: _this.options.sourceMaps
});
let sourceMap;
if (transpiled.sourceMap) {
sourceMap = transpiled.sourceMap.generate();
sourceMap.sources = [_this.relativeName];
sourceMap.sourcesContent = [_this.contents];
}
return [{
type: 'js',
value: _this.options.sourceMaps ? transpiled.js : transpiled,
map: sourceMap
}];
})();
}
}
module.exports = CoffeeScriptAsset;