UNPKG

tess-framework

Version:

Lightweight TypeScript/Rust full-stack framework with Vue 3 + Vite

83 lines 3.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.publishCommand = publishCommand; const chalk_1 = __importDefault(require("chalk")); const cross_spawn_1 = __importDefault(require("cross-spawn")); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const ora_1 = __importDefault(require("ora")); async function publishCommand(options) { const projectRoot = process.cwd(); const mvTessPath = path_1.default.join(projectRoot, 'm.v.tess'); const systemDir = path_1.default.join(projectRoot, '.v', 'system'); if (!await fs_extra_1.default.pathExists(mvTessPath)) { console.error(chalk_1.default.red('✖ Not a Tess project. Run "tess init" first.')); process.exit(1); } const platform = options.platform || 'vercel'; console.log(chalk_1.default.cyan(`🚀 Publishing to ${platform}...`)); let spinner = (0, ora_1.default)('Checking dependencies...').start(); try { const nodeModulesExists = await fs_extra_1.default.pathExists(path_1.default.join(systemDir, 'node_modules')); if (!nodeModulesExists) { spinner.text = 'Installing dependencies...'; await new Promise((resolve, reject) => { const installProcess = (0, cross_spawn_1.default)('npm', ['install'], { stdio: 'pipe', cwd: systemDir, shell: true }); installProcess.on('close', (code) => { if (code === 0) { resolve(code); } else { reject(new Error(`npm install failed with code ${code}`)); } }); installProcess.on('error', reject); }); } spinner.succeed('Dependencies ready'); spinner.start('Building project...'); await new Promise((resolve, reject) => { const buildProcess = (0, cross_spawn_1.default)('npm', ['run', 'build'], { stdio: 'pipe', cwd: systemDir, shell: true }); buildProcess.on('close', (code) => { if (code === 0) resolve(code); else reject(new Error(`Build failed with code ${code}`)); }); }); spinner.succeed('Project built successfully'); spinner.start(`Deploying to ${platform}...`); const deployCmd = platform === 'netlify' ? 'netlify' : 'vercel'; await new Promise((resolve, reject) => { const deployProcess = (0, cross_spawn_1.default)(deployCmd, ['deploy', '--prod'], { stdio: 'inherit', cwd: projectRoot, shell: true }); deployProcess.on('close', (code) => { if (code === 0) resolve(code); else reject(new Error(`Deploy failed with code ${code}`)); }); }); spinner.succeed(`Deployed to ${platform} successfully!`); } catch (error) { spinner.fail('Publish failed'); console.error(chalk_1.default.red(error)); process.exit(1); } } //# sourceMappingURL=publish.js.map