UNPKG

@seaavey/bot

Version:

The Library for Seaavey Bot

55 lines (54 loc) • 2.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = minifyJS; const globby_1 = require("globby"); const uglify_js_1 = __importDefault(require("uglify-js")); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const chalk_1 = __importDefault(require("chalk")); const Defaults_1 = require("../Defaults"); async function minifyJS(config) { var _a; try { const pattern = path_1.default.join((0, Defaults_1.HOMEDIR)(), 'dist', (_a = config.only) !== null && _a !== void 0 ? _a : '**/*.js'); const jsFiles = await (0, globby_1.globby)(pattern, { absolute: true, onlyFiles: true, ignore: config.exclude ? [config.exclude] : [], }); if (jsFiles.length === 0) { console.log(chalk_1.default.yellow('āš ļø No JavaScript files found to minify.')); return; } console.log(chalk_1.default.cyan(`šŸ” Found ${jsFiles.length} JavaScript files to minify...\n`)); for (const file of jsFiles) { try { const code = await fs_extra_1.default.readFile(file, 'utf8'); const result = uglify_js_1.default.minify(code, { compress: config.state === 'production', mangle: config.state === 'production', }); if (result.error) { console.error(chalk_1.default.red(`āŒ Error minifying ${file}:\n`), result.error); continue; } if (!result.code || result.code.trim() === '') { console.warn(chalk_1.default.yellow(`āš ļø Minified result for ${file} is empty. Skipping write.`)); continue; } await fs_extra_1.default.writeFile(file, result.code); console.log(chalk_1.default.green(`āœ… Minified: ${file}`)); } catch (fileError) { console.error(chalk_1.default.red(`āŒ Error processing ${file}:\n`), fileError); } } console.log(chalk_1.default.greenBright('\nšŸŽ‰ Minification completed.')); } catch (error) { console.error(chalk_1.default.redBright('šŸ”„ Unexpected error during minification:'), error); } }