kinopoisk-rating
Version:
API-клиент для получения рейтингов с Кинопоиска и IMDb
34 lines (33 loc) • 1.19 kB
JavaScript
import { parseString } from 'xml2js';
import { KinopoiskError } from "./errors";
export function parseXML(xml) {
return new Promise((resolve, reject) => {
parseString(xml, {
explicitArray: false,
trim: true,
mergeAttrs: false,
normalizeTags: true,
normalize: true
}, (err, result) => {
var _a, _b;
if (err) {
reject(err);
}
else if (!((_a = result === null || result === void 0 ? void 0 : result.rating) === null || _a === void 0 ? void 0 : _a.kp_rating) || !((_b = result === null || result === void 0 ? void 0 : result.rating) === null || _b === void 0 ? void 0 : _b.imdb_rating)) {
reject(new KinopoiskError('Неверный формат XML'));
}
else {
resolve(result.rating);
}
});
});
}
export async function parseXMLPromise(xml) {
try {
return await parseXML(xml);
}
catch (error) {
console.error("Ошибка при парсинге XML:", error);
throw new KinopoiskError("Ошибка парсинга XML");
}
}