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.
44 lines (43 loc) • 1.83 kB
JavaScript
const require_utils = require("../../../common/utils.cjs");
//#region src/namespaces/acast/generate/utils.ts
const generateSignature = (signature) => {
if (!require_utils.isObject(signature)) return;
return require_utils.trimObject({
"@key": require_utils.generatePlainString(signature.key),
"@algorithm": require_utils.generatePlainString(signature.algorithm),
...require_utils.generateTextOrCdataString(signature.value)
});
};
const generateNetwork = (network) => {
if (!require_utils.isObject(network)) return;
return require_utils.trimObject({
"@id": require_utils.generatePlainString(network.id),
"@slug": require_utils.generatePlainString(network.slug),
...require_utils.generateTextOrCdataString(network.value)
});
};
const generateFeed = (feed) => {
if (!require_utils.isObject(feed)) return;
return require_utils.trimObject({
"acast:showId": require_utils.generateCdataString(feed.showId),
"acast:showUrl": require_utils.generateCdataString(feed.showUrl),
"acast:signature": generateSignature(feed.signature),
"acast:settings": require_utils.generateCdataString(feed.settings),
"acast:network": generateNetwork(feed.network),
"acast:importedFeed": require_utils.generateCdataString(feed.importedFeed)
});
};
const generateItem = (item) => {
if (!require_utils.isObject(item)) return;
return require_utils.trimObject({
"acast:episodeId": require_utils.generateCdataString(item.episodeId),
"acast:showId": require_utils.generateCdataString(item.showId),
"acast:episodeUrl": require_utils.generateCdataString(item.episodeUrl),
"acast:settings": require_utils.generateCdataString(item.settings)
});
};
//#endregion
exports.generateFeed = generateFeed;
exports.generateItem = generateItem;
exports.generateNetwork = generateNetwork;
exports.generateSignature = generateSignature;