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.

41 lines (40 loc) 1.78 kB
import { isObject, parseSingularOf, parseString, retrieveText, trimObject } from "../../../common/utils.js"; //#region src/namespaces/acast/parse/utils.ts const parseSignature = (value) => { if (!isObject(value)) return; return trimObject({ key: parseString(value["@key"]), algorithm: parseString(value["@algorithm"]), value: parseString(retrieveText(value)) }); }; const parseNetwork = (value) => { if (!isObject(value)) return; return trimObject({ id: parseString(value["@id"]), slug: parseString(value["@slug"]), value: parseString(retrieveText(value)) }); }; const retrieveFeed = (value) => { if (!isObject(value)) return; return trimObject({ showId: parseSingularOf(value["acast:showid"], (value) => parseString(retrieveText(value))), showUrl: parseSingularOf(value["acast:showurl"], (value) => parseString(retrieveText(value))), signature: parseSingularOf(value["acast:signature"], parseSignature), settings: parseSingularOf(value["acast:settings"], (value) => parseString(retrieveText(value))), network: parseSingularOf(value["acast:network"], parseNetwork), importedFeed: parseSingularOf(value["acast:importedfeed"], (value) => parseString(retrieveText(value))) }); }; const retrieveItem = (value) => { if (!isObject(value)) return; return trimObject({ episodeId: parseSingularOf(value["acast:episodeid"], (value) => parseString(retrieveText(value))), showId: parseSingularOf(value["acast:showid"], (value) => parseString(retrieveText(value))), episodeUrl: parseSingularOf(value["acast:episodeurl"], (value) => parseString(retrieveText(value))), settings: parseSingularOf(value["acast:settings"], (value) => parseString(retrieveText(value))) }); }; //#endregion export { parseNetwork, parseSignature, retrieveFeed, retrieveItem };