UNPKG

@onurege3467/zerohelper

Version:

ZeroHelper is a versatile high-performance utility library and database framework for Node.js, fully written in TypeScript.

37 lines (36 loc) 1.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.zpackCommand = void 0; const commander_1 = require("commander"); const chalk_1 = __importDefault(require("chalk")); const ora_1 = __importDefault(require("ora")); const fs_1 = __importDefault(require("fs")); const config_1 = require("../utils/config"); const config_2 = require("../utils/config"); exports.zpackCommand = new commander_1.Command().name('zpack'); exports.zpackCommand .command('vacuum') .description('Compact a ZPack binary file to save disk space') .argument('<file>', 'ZPack file path') .action(async (file) => { const spinner = (0, ora_1.default)(`Vacuuming ${file}...`).start(); const startSize = fs_1.default.existsSync(file) ? fs_1.default.statSync(file).size : 0; try { const db = await (0, config_1.getDatabase)('zero.config.ts'); await db.vacuum(); await db.close(); const endSize = fs_1.default.statSync(file).size; const reduction = startSize > 0 ? ((1 - endSize / startSize) * 100) : 0; spinner.succeed(chalk_1.default.green(`✅ Vacuum complete for ${file}`)); console.log(chalk_1.default.gray(` Original Size: ${(0, config_2.formatBytes)(startSize)}`)); console.log(chalk_1.default.gray(` New Size: ${(0, config_2.formatBytes)(endSize)}`)); console.log(chalk_1.default.bold.blue(` Efficiency: ${reduction.toFixed(1)}% reduction`)); } catch (error) { spinner.fail(chalk_1.default.red(`❌ Vacuum failed: ${error.message}`)); process.exit(1); } });