@summarisation/summarise
Version:
cli for summariser
124 lines (123 loc) • 4.88 kB
JavaScript
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);
});
}
;