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.
25 lines (24 loc) • 1.8 kB
JavaScript
import { generateArrayOrSingular, generateCdataString, generateRfc3339Date, isObject, trimObject } from "../../../common/utils.js";
//#region src/namespaces/dc/generate/utils.ts
const generateItemOrFeed = (itemOrFeed) => {
if (!isObject(itemOrFeed)) return;
return trimObject({
"dc:title": generateArrayOrSingular(itemOrFeed.titles, itemOrFeed.title, generateCdataString),
"dc:creator": generateArrayOrSingular(itemOrFeed.creators, itemOrFeed.creator, generateCdataString),
"dc:subject": generateArrayOrSingular(itemOrFeed.subjects, itemOrFeed.subject, generateCdataString),
"dc:description": generateArrayOrSingular(itemOrFeed.descriptions, itemOrFeed.description, generateCdataString),
"dc:publisher": generateArrayOrSingular(itemOrFeed.publishers, itemOrFeed.publisher, generateCdataString),
"dc:contributor": generateArrayOrSingular(itemOrFeed.contributors, itemOrFeed.contributor, generateCdataString),
"dc:date": generateArrayOrSingular(itemOrFeed.dates, itemOrFeed.date, generateRfc3339Date),
"dc:type": generateArrayOrSingular(itemOrFeed.types, itemOrFeed.type, generateCdataString),
"dc:format": generateArrayOrSingular(itemOrFeed.formats, itemOrFeed.format, generateCdataString),
"dc:identifier": generateArrayOrSingular(itemOrFeed.identifiers, itemOrFeed.identifier, generateCdataString),
"dc:source": generateArrayOrSingular(itemOrFeed.sources, itemOrFeed.source, generateCdataString),
"dc:language": generateArrayOrSingular(itemOrFeed.languages, itemOrFeed.language, generateCdataString),
"dc:relation": generateArrayOrSingular(itemOrFeed.relations, itemOrFeed.relation, generateCdataString),
"dc:coverage": generateCdataString(itemOrFeed.coverage),
"dc:rights": generateCdataString(itemOrFeed.rights)
});
};
//#endregion
export { generateItemOrFeed };