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.

58 lines (57 loc) 1.55 kB
const require_config = require("../../../common/config.cjs"); const require_utils = require("../../../common/utils.cjs"); let fast_xml_parser = require("fast-xml-parser"); //#region src/feeds/rss/parse/config.ts const sharedStopNodes = [ "image.description", "image.height", "image.link", "image.title", "image.url", "image.width", "textinput.title", "textinput.description", "textinput.name", "textinput.link", "item.title", "item.link", "item.description", "item.author.name", "item.category", "item.comments", "item.enclosure", "item.guid", "item.pubdate", "item.source" ]; const stopNodes = [ ...require_config.namespaceStopNodes, "rss.channel.title", "rss.channel.link", "rss.channel.description", "rss.channel.language", "rss.channel.copyright", "rss.channel.managingeditor", "rss.channel.webmaster", "rss.channel.pubdate", "rss.channel.lastbuilddate", "rss.channel.category", "rss.channel.generator", "rss.channel.docs", "rss.channel.cloud", "rss.channel.ttl", "rss.channel.rating", "rss.channel.skiphours.hour", "rss.channel.skipdays.day", ...sharedStopNodes.map((node) => `rss.channel.${node}`), ...sharedStopNodes.map((node) => `rss.${node}`) ]; const parser = new fast_xml_parser.XMLParser({ ...require_config.parserConfig, stopNodes }); const normalizeNamespaces = require_utils.createNamespaceNormalizator(require_config.namespaceUris, require_config.namespacePrefixes); //#endregion exports.normalizeNamespaces = normalizeNamespaces; exports.parser = parser; exports.stopNodes = stopNodes;