opds-web-client
Version:
37 lines (36 loc) • 1.52 kB
JavaScript
var xml2js = require("xml2js");
var url = require("url");
var xmlParser = new xml2js.Parser({ xmlns: true });
var OpenSearchDescriptionParser = (function () {
function OpenSearchDescriptionParser() {
}
OpenSearchDescriptionParser.prototype.parse = function (xml, descriptionUrl) {
return new Promise(function (resolve, reject) {
xmlParser.parseString(xml, function (err, result) {
if (err) {
reject(err);
}
else {
if (result.OpenSearchDescription) {
var root = result.OpenSearchDescription;
var description = root["Description"][0]["_"];
var shortName = root["ShortName"][0]["_"];
var templateString_1 = root["Url"][0]["$"].template.value;
var template = function (s) {
return url.resolve(descriptionUrl, templateString_1.replace("{searchTerms}", s));
};
resolve({
searchData: {
description: description, shortName: shortName, template: template
}
});
}
}
});
});
};
return OpenSearchDescriptionParser;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = OpenSearchDescriptionParser;
;