Я получаю странную ошибку, и я не могу найти нужные вещи в Google, так как не нахожу помощи в Интернете. Я пишу скрипт, который преобразует файлы swagger в машинописный текст. Сообщение об ошибке указано в заголовке, и, к сожалению, это вся информация, которой я располагаю. Я опубликую код ниже и часть, откуда (я полагаю) приходит сообщение:
async function getJson(){
const agent = new https.Agent({
rejectUnauthorized: false
});
return axios.get('https://common-customer-bpms.dev.havida.net/v3/api-docs', { httpsAgent: agent })
.then(response => generateSwagger(response))
}
getJson();
async function generateSwagger(response) {
try {
execSync(`java -jar ..\\swagger-codegen-cli.jar generate -l typescript-angular -o .\\projects\\common\\src -i ${response}`);
} catch (error){
console.info(error);
console.info('You must have Java installed! You may have to change JAVA_HOME location & path (Ex: set JAVA_HOME=`C:\\Programme\\Java\\jre1.8.0_321`), (set PATH=${JAVA_HOME}/bin:$PATH)')
}
}
Я думаю, что ошибка исходит из блока try
, самого последнего аргумента (-i ${response}
). Могу ли я использовать параметр функции таким образом, или я могу использовать только строки в командах cli? я в растерянности
После нескольких дней попыток вот полный код, который работает для всех, кому он может понадобиться:
import axios from 'axios';
import https from 'node:https';
import {execSync} from 'child_process';
import fs from 'fs/promises';
async function getJson(){
const agent = new https.Agent({
rejectUnauthorized: false
});
return axios.get('https://common-customer-bpms.dev.havida.net/v3/api-docs', { httpsAgent: agent })
.then(response => fs.writeFile("temp.json", JSON.stringify(response.data), (error)=>{console.info(error)}))
.then(() => generateSwagger())
}
getJson();
async function generateSwagger() {
try {
execSync(`java -jar ..\\swagger-codegen-cli.jar generate -l typescript-angular -i temp.json -o .\\projects\\common\\src\\lib`);
} catch (error){
console.info(error);
console.info('You must have Java installed! You may have to change JAVA_HOME location & path (Ex: set JAVA_HOME=`C:\\Programme\\Java\\jre1.8.0_321`), (set PATH=${JAVA_HOME}/bin:$PATH)')
} finally {
fs.unlink("temp.json");
}
}
Это извлекает json из нужного URL-адреса и записывает его в файл. Затем этот файл используется в качестве места назначения для -i, и после завершения преобразования json удаляется в блоке finally.