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.

153 lines (152 loc) 12.2 kB
const require_utils = require("../../../common/utils.cjs"); //#region src/namespaces/prism/generate/utils.ts const generateFeed = (feed) => { if (!require_utils.isObject(feed)) return; return require_utils.trimObject({ "prism:publicationName": require_utils.generateCdataString(feed.publicationName), "prism:issn": require_utils.generateCdataString(feed.issn), "prism:eIssn": require_utils.generateCdataString(feed.eIssn), "prism:isbn": require_utils.trimArray(feed.isbns, require_utils.generateCdataString), "prism:issueIdentifier": require_utils.generateCdataString(feed.issueIdentifier), "prism:issueName": require_utils.generateCdataString(feed.issueName), "prism:issueTeaser": require_utils.generateCdataString(feed.issueTeaser), "prism:issueType": require_utils.generateCdataString(feed.issueType), "prism:volume": require_utils.generateCdataString(feed.volume), "prism:number": require_utils.generateCdataString(feed.number), "prism:edition": require_utils.generateCdataString(feed.edition), "prism:aggregateIssueNumber": require_utils.generateNumber(feed.aggregateIssueNumber), "prism:aggregationType": require_utils.generateCdataString(feed.aggregationType), "prism:coverDate": require_utils.generateRfc3339Date(feed.coverDate), "prism:coverDisplayDate": require_utils.generateCdataString(feed.coverDisplayDate), "prism:publicationDate": require_utils.trimArray(feed.publicationDates, require_utils.generateRfc3339Date), "prism:publicationDisplayDate": require_utils.trimArray(feed.publicationDisplayDates, require_utils.generateCdataString), "prism:creationDate": require_utils.generateRfc3339Date(feed.creationDate), "prism:modificationDate": require_utils.generateRfc3339Date(feed.modificationDate), "prism:dateReceived": require_utils.generateRfc3339Date(feed.dateReceived), "prism:onSaleDate": require_utils.trimArray(feed.onSaleDates, require_utils.generateRfc3339Date), "prism:onSaleDay": require_utils.trimArray(feed.onSaleDays, require_utils.generateCdataString), "prism:offSaleDate": require_utils.trimArray(feed.offSaleDates, require_utils.generateRfc3339Date), "prism:killDate": require_utils.generateRfc3339Date(feed.killDate), "prism:copyrightYear": require_utils.trimArray(feed.copyrightYears, require_utils.generateCdataString), "prism:contentType": require_utils.generateCdataString(feed.contentType), "prism:alternateTitle": require_utils.trimArray(feed.alternateTitles, require_utils.generateCdataString), "prism:subtitle": require_utils.trimArray(feed.subtitles, require_utils.generateCdataString), "prism:teaser": require_utils.trimArray(feed.teasers, require_utils.generateCdataString), "prism:keyword": require_utils.trimArray(feed.keywords, require_utils.generateCdataString), "prism:seriesTitle": require_utils.generateCdataString(feed.seriesTitle), "prism:seriesNumber": require_utils.generateNumber(feed.seriesNumber), "prism:bookEdition": require_utils.trimArray(feed.bookEditions, require_utils.generateCdataString), "prism:nationalCatalogNumber": require_utils.generateCdataString(feed.nationalCatalogNumber), "prism:productCode": require_utils.trimArray(feed.productCodes, require_utils.generateCdataString), "prism:uspsNumber": require_utils.generateCdataString(feed.uspsNumber), "prism:publishingFrequency": require_utils.generateCdataString(feed.publishingFrequency), "prism:channel": require_utils.trimArray(feed.channels, require_utils.generateCdataString), "prism:subchannel1": require_utils.generateCdataString(feed.subchannel1), "prism:subchannel2": require_utils.generateCdataString(feed.subchannel2), "prism:subchannel3": require_utils.generateCdataString(feed.subchannel3), "prism:subchannel4": require_utils.generateCdataString(feed.subchannel4), "prism:section": require_utils.generateCdataString(feed.section), "prism:subsection1": require_utils.generateCdataString(feed.subsection1), "prism:subsection2": require_utils.generateCdataString(feed.subsection2), "prism:subsection3": require_utils.generateCdataString(feed.subsection3), "prism:subsection4": require_utils.generateCdataString(feed.subsection4), "prism:corporateEntity": require_utils.trimArray(feed.corporateEntities, require_utils.generateCdataString), "prism:distributor": require_utils.generateCdataString(feed.distributor), "prism:sellingAgency": require_utils.trimArray(feed.sellingAgencies, require_utils.generateCdataString), "prism:organization": require_utils.trimArray(feed.organizations, require_utils.generateCdataString), "prism:person": require_utils.trimArray(feed.persons, require_utils.generateCdataString), "prism:platform": require_utils.trimArray(feed.platforms, require_utils.generateCdataString), "prism:originPlatform": require_utils.trimArray(feed.originPlatforms, require_utils.generateCdataString), "prism:device": require_utils.generateCdataString(feed.device), "prism:complianceProfile": require_utils.generateCdataString(feed.complianceProfile), "prism:blogTitle": require_utils.generateCdataString(feed.blogTitle), "prism:blogURL": require_utils.generateCdataString(feed.blogURL), "prism:link": require_utils.trimArray(feed.links, require_utils.generateCdataString), "prism:url": require_utils.trimArray(feed.urls, require_utils.generateCdataString), "prism:byteCount": require_utils.generateNumber(feed.byteCount), "prism:rating": require_utils.trimArray(feed.ratings, require_utils.generateCdataString), "prism:timePeriod": require_utils.generateCdataString(feed.timePeriod), "prism:versionIdentifier": require_utils.generateCdataString(feed.versionIdentifier), "prism:ticker": require_utils.trimArray(feed.tickers, require_utils.generateCdataString), "prism:academicField": require_utils.trimArray(feed.academicFields, require_utils.generateCdataString), "prism:event": require_utils.trimArray(feed.events, require_utils.generateCdataString), "prism:genre": require_utils.trimArray(feed.genres, require_utils.generateCdataString), "prism:industry": require_utils.trimArray(feed.industries, require_utils.generateCdataString), "prism:location": require_utils.trimArray(feed.locations, require_utils.generateCdataString), "prism:object": require_utils.trimArray(feed.objects, require_utils.generateCdataString), "prism:profession": require_utils.generateCdataString(feed.profession), "prism:sport": require_utils.generateCdataString(feed.sport), "prism:embargoDate": require_utils.generateRfc3339Date(feed.embargoDate), "prism:copyright": require_utils.generateCdataString(feed.copyright), "prism:expirationDate": require_utils.generateRfc3339Date(feed.expirationDate), "prism:rightsAgent": require_utils.generateCdataString(feed.rightsAgent) }); }; const generateItem = (item) => { if (!require_utils.isObject(item)) return; return require_utils.trimObject({ "prism:publicationName": require_utils.generateCdataString(item.publicationName), "prism:issn": require_utils.generateCdataString(item.issn), "prism:eIssn": require_utils.generateCdataString(item.eIssn), "prism:doi": require_utils.generateCdataString(item.doi), "prism:url": require_utils.trimArray(item.urls, require_utils.generateCdataString), "prism:volume": require_utils.generateCdataString(item.volume), "prism:number": require_utils.generateCdataString(item.number), "prism:edition": require_utils.generateCdataString(item.edition), "prism:section": require_utils.generateCdataString(item.section), "prism:startingPage": require_utils.generateCdataString(item.startingPage), "prism:endingPage": require_utils.generateCdataString(item.endingPage), "prism:pageRange": require_utils.generateCdataString(item.pageRange), "prism:pageCount": require_utils.generateNumber(item.pageCount), "prism:pageProgressionDirection": require_utils.generateCdataString(item.pageProgressionDirection), "prism:samplePageRange": require_utils.generateCdataString(item.samplePageRange), "prism:publicationDate": require_utils.trimArray(item.publicationDates, require_utils.generateRfc3339Date), "prism:publicationDisplayDate": require_utils.trimArray(item.publicationDisplayDates, require_utils.generateCdataString), "prism:creationDate": require_utils.generateRfc3339Date(item.creationDate), "prism:modificationDate": require_utils.generateRfc3339Date(item.modificationDate), "prism:dateReceived": require_utils.generateRfc3339Date(item.dateReceived), "prism:killDate": require_utils.generateRfc3339Date(item.killDate), "prism:copyrightYear": require_utils.trimArray(item.copyrightYears, require_utils.generateCdataString), "prism:contentType": require_utils.generateCdataString(item.contentType), "prism:genre": require_utils.trimArray(item.genres, require_utils.generateCdataString), "prism:alternateTitle": require_utils.trimArray(item.alternateTitles, require_utils.generateCdataString), "prism:subtitle": require_utils.trimArray(item.subtitles, require_utils.generateCdataString), "prism:teaser": require_utils.trimArray(item.teasers, require_utils.generateCdataString), "prism:keyword": require_utils.trimArray(item.keywords, require_utils.generateCdataString), "prism:corporateEntity": require_utils.trimArray(item.corporateEntities, require_utils.generateCdataString), "prism:organization": require_utils.trimArray(item.organizations, require_utils.generateCdataString), "prism:person": require_utils.trimArray(item.persons, require_utils.generateCdataString), "prism:platform": require_utils.trimArray(item.platforms, require_utils.generateCdataString), "prism:device": require_utils.generateCdataString(item.device), "prism:academicField": require_utils.trimArray(item.academicFields, require_utils.generateCdataString), "prism:event": require_utils.trimArray(item.events, require_utils.generateCdataString), "prism:industry": require_utils.trimArray(item.industries, require_utils.generateCdataString), "prism:location": require_utils.trimArray(item.locations, require_utils.generateCdataString), "prism:object": require_utils.trimArray(item.objects, require_utils.generateCdataString), "prism:profession": require_utils.generateCdataString(item.profession), "prism:sport": require_utils.generateCdataString(item.sport), "prism:hasAlternative": require_utils.trimArray(item.hasAlternatives, require_utils.generateCdataString), "prism:hasCorrection": require_utils.trimArray(item.hasCorrections, require_utils.generateCdataString), "prism:hasTranslation": require_utils.trimArray(item.hasTranslations, require_utils.generateCdataString), "prism:isAlternativeOf": require_utils.trimArray(item.isAlternativeOf, require_utils.generateCdataString), "prism:isCorrectionOf": require_utils.trimArray(item.isCorrectionOf, require_utils.generateCdataString), "prism:isTranslationOf": require_utils.generateCdataString(item.isTranslationOf), "prism:supplementTitle": require_utils.trimArray(item.supplementTitles, require_utils.generateCdataString), "prism:supplementDisplayID": require_utils.generateCdataString(item.supplementDisplayID), "prism:supplementStartingPage": require_utils.generateCdataString(item.supplementStartingPage), "prism:link": require_utils.trimArray(item.links, require_utils.generateCdataString), "prism:wordCount": require_utils.generateNumber(item.wordCount), "prism:byteCount": require_utils.generateNumber(item.byteCount), "prism:rating": require_utils.trimArray(item.ratings, require_utils.generateCdataString), "prism:timePeriod": require_utils.generateCdataString(item.timePeriod), "prism:versionIdentifier": require_utils.generateCdataString(item.versionIdentifier), "prism:ticker": require_utils.trimArray(item.tickers, require_utils.generateCdataString), "prism:embargoDate": require_utils.generateRfc3339Date(item.embargoDate), "prism:copyright": require_utils.generateCdataString(item.copyright), "prism:expirationDate": require_utils.generateRfc3339Date(item.expirationDate), "prism:rightsAgent": require_utils.generateCdataString(item.rightsAgent) }); }; //#endregion exports.generateFeed = generateFeed; exports.generateItem = generateItem;