UNPKG

944 BJavaScriptView Raw
1const Asset = require('../Asset');
2const localRequire = require('../utils/localRequire');
3
4class CoffeeScriptAsset extends Asset {
5 constructor(name, options) {
6 super(name, options);
7 this.type = 'js';
8 }
9
10 async generate() {
11 // require coffeescript, installed locally in the app
12 let coffee = await localRequire('coffeescript', this.name);
13
14 // Transpile Module using CoffeeScript and parse result as ast format through babylon
15 let transpiled = coffee.compile(this.contents, {
16 sourceMap: this.options.sourceMaps
17 });
18
19 let sourceMap;
20 if (transpiled.sourceMap) {
21 sourceMap = transpiled.sourceMap.generate();
22 sourceMap.sources = [this.relativeName];
23 sourceMap.sourcesContent = [this.contents];
24 }
25
26 return [
27 {
28 type: 'js',
29 value: this.options.sourceMaps ? transpiled.js : transpiled,
30 sourceMap
31 }
32 ];
33 }
34}
35
36module.exports = CoffeeScriptAsset;