1 | var escodegen = require("escodegen");
|
2 |
|
3 | module.exports = generate;
|
4 |
|
5 | function generate(ast, options, sourceContent){
|
6 | var sourceMaps = options && options.sourceMaps;
|
7 | var opts = { comment: true };
|
8 | if(sourceMaps) {
|
9 | var includeContent = !!options.sourceMapsContent;
|
10 |
|
11 | opts.sourceMap = includeContent ? options.sourceMapFileName : true;
|
12 | opts.sourceMapWithCode = true;
|
13 | if(options.sourceRoot) {
|
14 | opts.sourceMapRoot = options.sourceRoot;
|
15 | }
|
16 | if(includeContent) {
|
17 | opts.sourceContent = sourceContent;
|
18 | }
|
19 | }
|
20 | var result = escodegen.generate(ast, opts);
|
21 | if(typeof result === "string") {
|
22 | result = {
|
23 | code: result
|
24 | };
|
25 | }
|
26 | result.ast = ast;
|
27 | return result;
|
28 | }
|