import axios from 'axios'; import { createInterface } from 'readline'; import * as process from 'node:process'; const rl = createInterface({ input: process.stdin, output: process.stdout, }); class ReleaseMajor { private readonly client = axios.create({ baseURL: process.env.RITM_STYLE_MANAGER_API, }); async release() { await this.getMajorVersions(); rl.question( 'Какую версию вы хотите зарелизить?\n: v', async (version: string) => { if (version.split('.').length !== 3) throw new Error('Неверный формат версии. Ожидаемые инпут: x.x.x'); try { const data = (await this.client.post('/version/release', { version })) .data; console.log(data); console.log(`Успешный релиз: v${version}!`); } catch (e) { console.log(e.response?.data); } rl.close(); } ); } async getMajorVersions() { const data: { is_major: boolean; major: number; version: string }[] = ( await this.client.get(`/version/versions/majors`) ).data; console.log('Текущие активные версии:\n'); data.forEach((d) => { if (d.is_major) { console.log(`MAJOR version-${d.major}: v${d.version}\n`); } }); } } new ReleaseMajor().release();