beyond
Version:
The Full Stack Universal Typescript Framework
44 lines (36 loc) • 1.37 kB
JavaScript
const { fs } = global.utils;
/**
* Build transversal start
*
* @param builder {object} The builder object
* @param distribution {object} Distribution specification
* @param path {string} The build target path
* @param uglifier {object} The uglifier
* @returns {Promise<void>}
*/
module.exports = async function (builder, distribution, path, uglifier) {
'use strict';
builder.emit('message', 'Building start.js transversal file');
// Build start.js
const { application } = builder;
await application.transversals.ready;
const resource = application.transversals.get('start').packagers.get(distribution);
await resource.js.ready;
let { errors, valid } = resource.js;
const startCode = resource.js.code();
if (!valid) {
builder.emit('error', 'Error on application start code');
errors.forEach(error => builder.emit('error', ` -> ${error}`));
return;
}
const target = require('path').join(path, 'start.js');
if (distribution.minify.js) {
let code, errors;
({ code, errors } = uglifier.uglify('start.js', startCode));
errors && builder.emit('error', 'Error uglifying application start');
errors?.forEach(({ message, line, col }) => builder.emit('error', ` -> [${line}, ${col}] ${message}`));
!errors && (await fs.save(target, code));
return;
}
await fs.save(target, startCode);
};