tess-framework
Version:
Lightweight TypeScript/Rust full-stack framework with Vue 3 + Vite
39 lines • 1.7 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.runCommand = runCommand;
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"));
async function runCommand(script) {
const projectRoot = process.cwd();
const packageJsonPath = path_1.default.join(projectRoot, '.v', 'system', 'package.json');
if (!await fs_extra_1.default.pathExists(packageJsonPath)) {
console.error(chalk_1.default.red('✖ Not a Tess project. Run "tess init" first.'));
process.exit(1);
}
const packageJson = await fs_extra_1.default.readJSON(packageJsonPath);
const scripts = packageJson.scripts || {};
if (!scripts[script]) {
console.error(chalk_1.default.red(`✖ Script "${script}" not found in package.json`));
console.log(chalk_1.default.cyan('Available scripts:'));
Object.keys(scripts).forEach(name => {
console.log(chalk_1.default.white(` ${name}: ${scripts[name]}`));
});
process.exit(1);
}
console.log(chalk_1.default.cyan(`🚀 Running script: ${script}`));
const runProcess = (0, cross_spawn_1.default)('npm', ['run', script], {
stdio: 'inherit',
cwd: path_1.default.join(projectRoot, '.v', 'system'),
shell: true
});
process.on('SIGINT', () => {
runProcess.kill();
process.exit();
});
}
//# sourceMappingURL=run.js.map
;