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.

63 lines (62 loc) 2.98 kB
const require_utils = require("../../../common/utils.cjs"); //#region src/namespaces/itunes/generate/utils.ts const generateImage = (image) => { if (!require_utils.isNonEmptyString(image)) return; return { "@href": require_utils.generatePlainString(image) }; }; const generateCategory = (category) => { if (!require_utils.isObject(category)) return; return require_utils.trimObject({ "@text": require_utils.generatePlainString(category.text), "itunes:category": require_utils.trimArray(category.categories, generateCategory) }); }; const generateOwner = (owner) => { if (!require_utils.isObject(owner)) return; return require_utils.trimObject({ "itunes:name": require_utils.generateCdataString(owner.name), "itunes:email": require_utils.generateCdataString(owner.email) }); }; const generateItem = (item) => { if (!require_utils.isObject(item)) return; return require_utils.trimObject({ "itunes:duration": require_utils.generateNumber(item.duration), "itunes:image": generateImage(item.image), "itunes:explicit": require_utils.generateYesNoBoolean(item.explicit), "itunes:author": require_utils.generateCdataString(item.author), "itunes:title": require_utils.generateCdataString(item.title), "itunes:episode": require_utils.generateNumber(item.episode), "itunes:season": require_utils.generateNumber(item.season), "itunes:episodeType": require_utils.generateCdataString(item.episodeType), "itunes:block": require_utils.generateYesNoBoolean(item.block), "itunes:summary": require_utils.generateCdataString(item.summary), "itunes:subtitle": require_utils.generateCdataString(item.subtitle), "itunes:keywords": require_utils.generateCsvOf(item.keywords) }); }; const generateFeed = (feed) => { if (!require_utils.isObject(feed)) return; return require_utils.trimObject({ "itunes:image": generateImage(feed.image), "itunes:category": require_utils.trimArray(feed.categories, generateCategory), "itunes:explicit": require_utils.generateYesNoBoolean(feed.explicit), "itunes:author": require_utils.generateCdataString(feed.author), "itunes:title": require_utils.generateCdataString(feed.title), "itunes:type": require_utils.generateCdataString(feed.type), "itunes:new-feed-url": require_utils.generateCdataString(feed.newFeedUrl), "itunes:block": require_utils.generateYesNoBoolean(feed.block), "itunes:complete": require_utils.generateYesNoBoolean(feed.complete), "itunes:applepodcastsverify": require_utils.generateCdataString(feed.applePodcastsVerify), "itunes:summary": require_utils.generateCdataString(feed.summary), "itunes:subtitle": require_utils.generateCdataString(feed.subtitle), "itunes:keywords": require_utils.generateCsvOf(feed.keywords), "itunes:owner": generateOwner(feed.owner) }); }; //#endregion exports.generateCategory = generateCategory; exports.generateFeed = generateFeed; exports.generateImage = generateImage; exports.generateItem = generateItem; exports.generateOwner = generateOwner;