lib-tools
Version:
The lib-tools helps you simplify the build, bundle, test and npm packaging workflows for Typescript, JavaScript, Angular library projects and assets module projects.
51 lines • 6.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runWebpack = void 0;
const webpack = require("webpack");
async function runWebpack(wpConfig, watch, logger) {
const firstConfig = Array.isArray(wpConfig) ? wpConfig[0] : wpConfig;
const statsOptions = firstConfig.stats;
const watchOptions = firstConfig.watchOptions;
if (Array.isArray(wpConfig) &&
wpConfig.length > 1 &&
statsOptions &&
typeof statsOptions === 'object' &&
!statsOptions.children) {
statsOptions.children = true; // wpConfig.map((o: webpack.Configuration) => o.stats) as any;
}
const webpackCompiler = webpack(wpConfig);
return new Promise((resolve, reject) => {
const cb = (err, stats) => {
if (err) {
reject(err);
return;
}
if (watch) {
return;
}
if (stats && stats.hasErrors()) {
logger.error(stats.toString('errors-only'));
reject();
return;
}
else {
if (statsOptions && stats) {
const result = stats.toString(statsOptions);
if (result && result.trim()) {
logger.info(result);
}
}
resolve(null);
}
};
if (watch) {
webpackCompiler.watch(watchOptions || {}, cb);
logger.info('\nWebpack is watching the files…\n');
}
else {
webpackCompiler.run(cb);
}
});
}
exports.runWebpack = runWebpack;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXdlYnBhY2suanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbImhlbHBlcnMvcnVuLXdlYnBhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBSTVCLEtBQUssVUFBVSxVQUFVLENBQzVCLFFBQXlELEVBQ3pELEtBQWMsRUFDZCxNQUFrQjtJQUVsQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDOUMsSUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN2QixRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDbkIsWUFBWTtRQUNaLE9BQU8sWUFBWSxLQUFLLFFBQVE7UUFDaEMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUN4QjtRQUNFLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsOERBQThEO0tBQy9GO0lBRUQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQWlDLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ25DLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBc0IsRUFBRSxLQUFnQyxFQUFFLEVBQUU7WUFDcEUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVaLE9BQU87YUFDVjtZQUVELElBQUksS0FBSyxFQUFFO2dCQUNQLE9BQU87YUFDVjtZQUVELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBRTVDLE1BQU0sRUFBRSxDQUFDO2dCQUVULE9BQU87YUFDVjtpQkFBTTtnQkFDSCxJQUFJLFlBQVksSUFBSSxLQUFLLEVBQUU7b0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzVDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDdkI7aUJBQ0o7Z0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pCO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBSSxLQUFLLEVBQUU7WUFDUCxlQUFlLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDSCxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBeERELGdDQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdlYnBhY2sgZnJvbSAnd2VicGFjayc7XG5cbmltcG9ydCB7IExvZ2dlckJhc2UgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2VicGFjayhcbiAgICB3cENvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uIHwgd2VicGFjay5Db25maWd1cmF0aW9uW10sXG4gICAgd2F0Y2g6IGJvb2xlYW4sXG4gICAgbG9nZ2VyOiBMb2dnZXJCYXNlXG4pOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBmaXJzdENvbmZpZyA9IEFycmF5LmlzQXJyYXkod3BDb25maWcpID8gd3BDb25maWdbMF0gOiB3cENvbmZpZztcbiAgICBjb25zdCBzdGF0c09wdGlvbnMgPSBmaXJzdENvbmZpZy5zdGF0cztcbiAgICBjb25zdCB3YXRjaE9wdGlvbnMgPSBmaXJzdENvbmZpZy53YXRjaE9wdGlvbnM7XG4gICAgaWYgKFxuICAgICAgICBBcnJheS5pc0FycmF5KHdwQ29uZmlnKSAmJlxuICAgICAgICB3cENvbmZpZy5sZW5ndGggPiAxICYmXG4gICAgICAgIHN0YXRzT3B0aW9ucyAmJlxuICAgICAgICB0eXBlb2Ygc3RhdHNPcHRpb25zID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAhc3RhdHNPcHRpb25zLmNoaWxkcmVuXG4gICAgKSB7XG4gICAgICAgIHN0YXRzT3B0aW9ucy5jaGlsZHJlbiA9IHRydWU7IC8vIHdwQ29uZmlnLm1hcCgobzogd2VicGFjay5Db25maWd1cmF0aW9uKSA9PiBvLnN0YXRzKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2VicGFja0NvbXBpbGVyID0gd2VicGFjayh3cENvbmZpZyBhcyB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgY2IgPSAoZXJyOiBFcnJvciB8IHVuZGVmaW5lZCwgc3RhdHM6IHdlYnBhY2suU3RhdHMgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHdhdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3RhdHMgJiYgc3RhdHMuaGFzRXJyb3JzKCkpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3Ioc3RhdHMudG9TdHJpbmcoJ2Vycm9ycy1vbmx5JykpO1xuXG4gICAgICAgICAgICAgICAgcmVqZWN0KCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzdGF0c09wdGlvbnMgJiYgc3RhdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RhdHMudG9TdHJpbmcoc3RhdHNPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHdhdGNoKSB7XG4gICAgICAgICAgICB3ZWJwYWNrQ29tcGlsZXIud2F0Y2god2F0Y2hPcHRpb25zIHx8IHt9LCBjYik7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbygnXFxuV2VicGFjayBpcyB3YXRjaGluZyB0aGUgZmlsZXPigKZcXG4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdlYnBhY2tDb21waWxlci5ydW4oY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iXX0=