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.
66 lines (65 loc) • 3.61 kB
JavaScript
const require_utils = require("../../../common/utils.cjs");
//#region src/namespaces/source/parse/utils.ts
const parseAccount = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
service: require_utils.parseString(value["@service"]),
value: require_utils.parseString(require_utils.retrieveText(value))
});
};
const parseLikes = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({ server: require_utils.parseString(value["@server"]) });
};
const parseArchive = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
url: require_utils.parseSingularOf(value["source:url"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
startDay: require_utils.parseSingularOf(value["source:startday"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
endDay: require_utils.parseSingularOf(value["source:endday"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
filename: require_utils.parseSingularOf(value["source:filename"], (value) => require_utils.parseString(require_utils.retrieveText(value)))
});
};
const parseSubscriptionList = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
url: require_utils.parseString(value["@url"]),
value: require_utils.parseString(require_utils.retrieveText(value))
});
};
const parseInReplyTo = (value) => {
return require_utils.trimObject({
value: require_utils.parseString(require_utils.retrieveText(value)),
isPermaLink: require_utils.parseBoolean(value?.["@ispermalink"])
});
};
const retrieveFeed = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
accounts: require_utils.parseArrayOf(value["source:account"], parseAccount),
likes: require_utils.parseSingularOf(value["source:likes"], parseLikes),
archive: require_utils.parseSingularOf(value["source:archive"], parseArchive),
subscriptionLists: require_utils.parseArrayOf(value["source:subscriptionlist"], parseSubscriptionList),
cloud: require_utils.parseSingularOf(value["source:cloud"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
blogroll: require_utils.parseSingularOf(value["source:blogroll"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
self: require_utils.parseSingularOf(value["source:self"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
localTime: require_utils.parseSingularOf(value["source:localtime"], (value) => require_utils.parseString(require_utils.retrieveText(value)))
});
};
const retrieveItem = (value) => {
if (!require_utils.isObject(value)) return;
return require_utils.trimObject({
markdown: require_utils.parseSingularOf(value["source:markdown"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
outlines: require_utils.parseArrayOf(value["source:outline"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
linkFull: require_utils.parseSingularOf(value["source:linkfull"], (value) => require_utils.parseString(require_utils.retrieveText(value))),
inReplyTo: require_utils.parseSingularOf(value["source:inreplyto"], parseInReplyTo)
});
};
//#endregion
exports.parseAccount = parseAccount;
exports.parseArchive = parseArchive;
exports.parseInReplyTo = parseInReplyTo;
exports.parseLikes = parseLikes;
exports.parseSubscriptionList = parseSubscriptionList;
exports.retrieveFeed = retrieveFeed;
exports.retrieveItem = retrieveItem;