UNPKG

1.25 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
7const Asset = require('../Asset');
8
9const localRequire = require('../utils/localRequire');
10
11class CoffeeScriptAsset extends Asset {
12 constructor(name, options) {
13 super(name, options);
14 this.type = 'js';
15 }
16
17 generate() {
18 var _this = this;
19
20 return (0, _asyncToGenerator2.default)(function* () {
21 // require coffeescript, installed locally in the app
22 let coffee = yield localRequire('coffeescript', _this.name); // Transpile Module using CoffeeScript and parse result as ast format through babylon
23
24 let transpiled = coffee.compile(_this.contents, {
25 sourceMap: _this.options.sourceMaps
26 });
27 let sourceMap;
28
29 if (transpiled.sourceMap) {
30 sourceMap = transpiled.sourceMap.generate();
31 sourceMap.sources = [_this.relativeName];
32 sourceMap.sourcesContent = [_this.contents];
33 }
34
35 return [{
36 type: 'js',
37 value: _this.options.sourceMaps ? transpiled.js : transpiled,
38 sourceMap
39 }];
40 })();
41 }
42
43}
44
45module.exports = CoffeeScriptAsset;
\No newline at end of file