UNPKG

polymerx-cli

Version:

Unlock the power of Polymer 3, Web Components and modern web tools.

80 lines (62 loc) 2.51 kB
"use strict"; exports.__esModule = true; exports.showStats = showStats; exports.endMessage = endMessage; exports.endBuildMessage = endBuildMessage; exports.detailMessage = detailMessage; var _chalk = _interopRequireDefault(require("chalk")); var _cliTable = _interopRequireDefault(require("cli-table")); var _SizeFormatHelpers = require("webpack/lib/SizeFormatHelpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const log = msg => process.stdout.write(msg); const beautySize = (size, isOverSizeLimit) => isOverSizeLimit ? _chalk.default.red((0, _SizeFormatHelpers.formatSize)(size)) : _chalk.default.green((0, _SizeFormatHelpers.formatSize)(size)); const stripLoaderPrefix = str => typeof str === 'string' ? str.replace(/(^|\b|@)(\.\/~|\.{0,2}\/[^\s]+\/node_modules)\/\w+-loader(\/[^?!]+)?(\?\?[\w_.-]+|\?({[\s\S]*?})?)?!/g, '') : str; function showStats(stats) { const info = stats.toJson('errors-only'); if (stats.hasErrors()) { info.errors.map(stripLoaderPrefix).forEach(msg => log(_chalk.default.red(msg))); } if (stats.hasWarnings()) { info.warnings.map(stripLoaderPrefix).forEach(msg => log(_chalk.default.yellow(msg))); } return stats; } function endMessage(statsAssets, error) { if (error) { return log(_chalk.default.red('\n\nBuild failed!\n\n')); } const assets = statsAssets.sort((a, b) => b.size - a.size).filter(item => !item.name.includes('hot-update')).reduce((acc, { name, size, isOverSizeLimit }) => acc.concat([[name, beautySize(size, isOverSizeLimit)]]), []); const table = new _cliTable.default({ style: { head: ['blue'] }, head: ['Asset', 'Size'] }); table.push(...assets); log('\n'); log(_chalk.default.green('Compiled successfully!\n\n')); log(table.toString() + '\n\n'); } function endBuildMessage(stats, spinner) { return stats.hasErrors() ? spinner.fail('Build failed!') : spinner.succeed('Compiled!'); } function detailMessage(err, { port, userPort, serverAddr, nomodule }) { if (err) { return; } if (port !== userPort) { log(`Port ${_chalk.default.bold(userPort)} is in use, using ${_chalk.default.bold(port)} instead\n\n`); } log(_chalk.default.magentaBright(nomodule ? 'You are running a `nomodule` dev task: Firefox, Edge etc.\n' : 'You are running a `module` dev task: Chrome, Safari etc.\n')); log('Check the application in browser.\n\n'); log(`${_chalk.default.bold('Local:')} ${serverAddr}\n`); }