st-bundle
Version:
CLI for watching and bundling SpringType projects.
36 lines (35 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../../utils/utils");
class ProductionAPIWrapper {
constructor(ctx) {
this.ctx = ctx;
}
wrapModule(pm) {
const prodConf = this.ctx.config.production;
const funcKey = prodConf.screwIE ? '(module, exports) => {' : 'function(module, exports){';
let outputContent = pm.transpiledContent;
let outputSourcemap = pm.transpiledSourceMap;
if (!outputContent) {
outputContent = pm.module.contents;
outputSourcemap = pm.module.sourceMap;
}
const concat = utils_1.createConcat(true, '', '\n');
concat.add(null, `// ${pm.module.getShortPath()}`);
concat.add(null, `$fsx.f[${pm.getId()}] = ${funcKey}`);
concat.add(pm.module.getShortPath(), outputContent, outputSourcemap);
concat.add(null, '}');
return concat;
}
addEntries(ids, bundle) {
if (ids.length === 1) {
bundle.addContent('// Importing a single entry');
bundle.addContent(`$fsx.r(${ids[0]});`);
}
else {
bundle.addContent('// Importing multiple entries');
bundle.addContent(`${JSON.stringify(ids)}.map(function(n){ $fsx.r(n) })`);
}
}
}
exports.ProductionAPIWrapper = ProductionAPIWrapper;