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.

66 lines (65 loc) 3.61 kB
const require_utils = require("../../../common/utils.cjs"); //#region src/namespaces/source/parse/utils.ts const parseAccount = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ service: require_utils.parseString(value["@service"]), value: require_utils.parseString(require_utils.retrieveText(value)) }); }; const parseLikes = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ server: require_utils.parseString(value["@server"]) }); }; const parseArchive = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ url: require_utils.parseSingularOf(value["source:url"], (value) => require_utils.parseString(require_utils.retrieveText(value))), startDay: require_utils.parseSingularOf(value["source:startday"], (value) => require_utils.parseString(require_utils.retrieveText(value))), endDay: require_utils.parseSingularOf(value["source:endday"], (value) => require_utils.parseString(require_utils.retrieveText(value))), filename: require_utils.parseSingularOf(value["source:filename"], (value) => require_utils.parseString(require_utils.retrieveText(value))) }); }; const parseSubscriptionList = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ url: require_utils.parseString(value["@url"]), value: require_utils.parseString(require_utils.retrieveText(value)) }); }; const parseInReplyTo = (value) => { return require_utils.trimObject({ value: require_utils.parseString(require_utils.retrieveText(value)), isPermaLink: require_utils.parseBoolean(value?.["@ispermalink"]) }); }; const retrieveFeed = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ accounts: require_utils.parseArrayOf(value["source:account"], parseAccount), likes: require_utils.parseSingularOf(value["source:likes"], parseLikes), archive: require_utils.parseSingularOf(value["source:archive"], parseArchive), subscriptionLists: require_utils.parseArrayOf(value["source:subscriptionlist"], parseSubscriptionList), cloud: require_utils.parseSingularOf(value["source:cloud"], (value) => require_utils.parseString(require_utils.retrieveText(value))), blogroll: require_utils.parseSingularOf(value["source:blogroll"], (value) => require_utils.parseString(require_utils.retrieveText(value))), self: require_utils.parseSingularOf(value["source:self"], (value) => require_utils.parseString(require_utils.retrieveText(value))), localTime: require_utils.parseSingularOf(value["source:localtime"], (value) => require_utils.parseString(require_utils.retrieveText(value))) }); }; const retrieveItem = (value) => { if (!require_utils.isObject(value)) return; return require_utils.trimObject({ markdown: require_utils.parseSingularOf(value["source:markdown"], (value) => require_utils.parseString(require_utils.retrieveText(value))), outlines: require_utils.parseArrayOf(value["source:outline"], (value) => require_utils.parseString(require_utils.retrieveText(value))), linkFull: require_utils.parseSingularOf(value["source:linkfull"], (value) => require_utils.parseString(require_utils.retrieveText(value))), inReplyTo: require_utils.parseSingularOf(value["source:inreplyto"], parseInReplyTo) }); }; //#endregion exports.parseAccount = parseAccount; exports.parseArchive = parseArchive; exports.parseInReplyTo = parseInReplyTo; exports.parseLikes = parseLikes; exports.parseSubscriptionList = parseSubscriptionList; exports.retrieveFeed = retrieveFeed; exports.retrieveItem = retrieveItem;