UNPKG

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
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 };