1 | const Asset = require('../Asset');
|
2 | const fs = require('@parcel/fs');
|
3 | const localRequire = require('../utils/localRequire');
|
4 |
|
5 | class ReasonAsset extends Asset {
|
6 | constructor(name, options) {
|
7 | super(name, options);
|
8 | this.type = 'js';
|
9 | }
|
10 |
|
11 | async generate() {
|
12 | const bsb = await localRequire('bsb-js', this.name);
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | if (process.env.NODE_ENV !== 'test') {
|
19 | await bsb.runBuild();
|
20 | }
|
21 |
|
22 |
|
23 |
|
24 | const outputFile = this.name.replace(/\.(re|ml)$/, '.bs.js');
|
25 | const outputContent = await fs.readFile(outputFile);
|
26 | return outputContent.toString();
|
27 | }
|
28 | }
|
29 |
|
30 | module.exports = ReasonAsset;
|