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.

47 lines (46 loc) 1.79 kB
import { isObject, parseBoolean, parseNumber, parseSingularOf, parseString, retrieveText, trimObject } from "../../../common/utils.js"; //#region src/namespaces/spotify/parse/utils.ts const parseLimit = (value) => { if (!isObject(value)) return; return trimObject({ recentCount: parseNumber(value["@recentcount"]) }); }; const parsePartner = (value) => { if (!isObject(value)) return; const id = parseString(value["@id"]); return id ? { id } : void 0; }; const parseSandbox = (value) => { if (!isObject(value)) return; const enabled = parseBoolean(value["@enabled"]); return enabled !== void 0 ? { enabled } : void 0; }; const parseFeedAccess = (value) => { if (!isObject(value)) return; return trimObject({ partner: parseSingularOf(value.partner, parsePartner), sandbox: parseSingularOf(value.sandbox, parseSandbox) }); }; const parseEntitlement = (value) => { if (!isObject(value)) return; const name = parseString(value["@name"]); return name ? { name } : void 0; }; const parseItemAccess = (value) => { if (!isObject(value)) return; return trimObject({ entitlement: parseSingularOf(value.entitlement, parseEntitlement) }); }; const retrieveFeed = (value) => { if (!isObject(value)) return; return trimObject({ limit: parseSingularOf(value["spotify:limit"], parseLimit), countryOfOrigin: parseSingularOf(value["spotify:countryoforigin"], (value) => parseString(retrieveText(value))), access: parseSingularOf(value["spotify:access"], parseFeedAccess) }); }; const retrieveItem = (value) => { if (!isObject(value)) return; return trimObject({ access: parseSingularOf(value["spotify:access"], parseItemAccess) }); }; //#endregion export { parseEntitlement, parseFeedAccess, parseItemAccess, parseLimit, parsePartner, parseSandbox, retrieveFeed, retrieveItem };