feedsmith
Version:
Fast, all‑in‑one feed parser and generator for RSS, Atom, RDF, and JSON Feed, with support for Podcast, iTunes, Dublin Core, and OPML files.
27 lines (26 loc) • 1.2 kB
JavaScript
import { isObject, parseArrayOf, parseNumber, parseSingularOf, parseString, retrieveText, trimObject } from "../../../common/utils.js";
//#region src/namespaces/opensearch/parse/utils.ts
const parseQuery = (value) => {
if (!isObject(value)) return;
return trimObject({
role: parseString(value["@role"]),
searchTerms: parseString(value["@searchterms"]),
count: parseNumber(value["@count"]),
startIndex: parseNumber(value["@startindex"]),
startPage: parseNumber(value["@startpage"]),
language: parseString(value["@language"]),
inputEncoding: parseString(value["@inputencoding"]),
outputEncoding: parseString(value["@outputencoding"])
});
};
const retrieveFeed = (value) => {
if (!isObject(value)) return;
return trimObject({
totalResults: parseSingularOf(value["opensearch:totalresults"], (value) => parseNumber(retrieveText(value))),
startIndex: parseSingularOf(value["opensearch:startindex"], (value) => parseNumber(retrieveText(value))),
itemsPerPage: parseSingularOf(value["opensearch:itemsperpage"], (value) => parseNumber(retrieveText(value))),
queries: parseArrayOf(value["opensearch:query"], parseQuery)
});
};
//#endregion
export { parseQuery, retrieveFeed };