requisite
Version:
A cosmic javascript bundler.
91 lines (84 loc) • 1.97 kB
JavaScript
// Generated by CoffeeScript 1.12.5
var convert, convertOpts, escodegen, minify;
convert = require('convert-source-map');
escodegen = require('escodegen');
minify = require('./minify');
convertOpts = function(opts) {
var esopts, ref, ref1;
esopts = {
comment: true,
format: {
indent: {
style: ' ',
base: 0
},
compact: false,
escapeless: true,
parentheses: false,
quotes: 'auto',
semicolons: false
}
};
if (opts.minify) {
esopts = {
comment: false,
format: {
indent: {
style: '',
base: 0
},
compact: true,
escapeless: true,
hexadecimal: true,
parentheses: false,
quotes: 'auto',
renumber: true,
semicolons: false
}
};
}
if (opts.sourceMap) {
esopts.sourceMap = true;
esopts.sourceMapWithCode = true;
esopts.sourceMapRoot = (ref = (ref1 = opts.sourceMapRoot) != null ? ref1 : opts.sourceRoot) != null ? ref : '';
}
if (opts.format != null) {
esopts.format = opts.format;
}
if (opts.comment != null) {
esopts.comment = opts.comment;
}
return esopts;
};
module.exports = function(ast, opts) {
var code, esopts, map, ref;
if (opts == null) {
opts = {};
}
esopts = convertOpts(opts);
if (opts.minify) {
ast = minify(ast, opts);
}
if (opts.sourceMap) {
ref = escodegen.generate(ast, esopts), code = ref.code, map = ref.map;
} else {
code = escodegen.generate(ast, esopts);
}
if (opts.stripDebug) {
code = require('strip-debug')(code).toString();
}
if (!opts.sourceMap) {
return code;
}
if (!opts.externalSourceMap) {
return code + convert.fromObject(map).toComment();
}
if (opts.sourceMapURL != null) {
code += '\n//# sourceMappingURL=' + opts.sourceMapURL;
}
return {
code: code,
map: convert.fromObject(map).toJSON()
};
};
//# sourceMappingURL=codegen.js.map