UNPKG

@summarisation/summarise

Version:

cli for summariser

124 lines (123 loc) 4.88 kB
#!/usr/bin/env node "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const cli_1 = require("@itsmworkbench/cli"); const commander12_1 = require("@itsmworkbench/commander12"); const utils_1 = require("@laoban/utils"); const filesops_node_1 = require("@laoban/filesops-node"); const summarise_config_1 = require("./src/summarise.config"); const jsyaml_1 = require("@itsmworkbench/jsyaml"); const config_1 = require("@itsmworkbench/config"); const fs = __importStar(require("node:fs")); const default_yaml_1 = require("./src/default.yaml"); const summarise_commands_1 = require("./src/commands/summarise.commands"); const axios_1 = __importDefault(require("axios")); if (process.argv[2] === 'init') { console.log('init'); const force = process.argv[3] === '--force'; async function install() { try { await fs.promises.readFile('summarise.yaml'); if (!force) { console.log("Cannot install summarise.yaml as it already exists"); process.exit(2); } } catch (e) { // we want an error! means not there } await fs.promises.writeFile('summarise.yaml', default_yaml_1.defaultYaml); console.log('installed summarise.yaml with default values'); } install().catch(e => { console.error(e); process.exit(2); }); } else { function findVersion() { let packageJsonFileName = "../package.json"; try { return require(packageJsonFileName).version; } catch (e) { return "version not known"; } } let fileOps = (0, filesops_node_1.fileOpsNode)(); function addAxiosInterceptors(axios) { axios.interceptors.response.use((response) => { // You can log the response details if needed return response; }, (error) => { // Log only the necessary error details if (error.response) { console.error(`Error response from ${error.config?.url}:`, { status: error.response.status, data: error.response.data, }); } else { console.error('Error without response:', error.message); } return Promise.reject(error); }); } const makeContext = () => ({ version: findVersion(), name: 'summarise', currentDirectory: process.cwd(), env: process.env, fileOps, args: process.argv, axios: axios_1.default, addAxiosInterceptors }); const cliTc = (0, commander12_1.commander12Tc)(); const yamlLoader = (context) => (s) => { let result = (0, jsyaml_1.jsYaml)().parser(s); if ((0, utils_1.hasErrors)(result)) { console.log(context); result.forEach(e => console.log(e)); process.exit(2); } return result; }; const configFinder = (0, cli_1.fileConfig)('summarise.yaml', summarise_config_1.validateConfig, name => Promise.resolve([`File ${name} not found in current directory or any parent directory`]), yamlLoader); (0, cli_1.makeCli)(makeContext(), configFinder, cliTc).then(async (commander) => { if ((0, utils_1.hasErrors)(commander)) { (0, utils_1.reportErrors)(commander); process.exit(1); } (0, summarise_commands_1.addAllSummaryCommands)(commander, cliTc); cliTc.addSubCommand(commander, (0, config_1.configCommands)(commander)); return await cliTc.execute(commander.commander, process.argv); }).catch(e => { console.error(e); process.exit(1); }); }