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.
28 lines (27 loc) • 939 B
JavaScript
import { isObject, parseArrayOf, parseDate, parseNumber, parseSingularOf, parseString, retrieveText, trimObject } from "../../../common/utils.js";
//#region src/namespaces/thr/parse/utils.ts
const parseInReplyTo = (value) => {
if (!isObject(value)) return;
return trimObject({
ref: parseString(value["@ref"]),
href: parseString(value["@href"]),
type: parseString(value["@type"]),
source: parseString(value["@source"])
});
};
const retrieveLink = (value) => {
if (!isObject(value)) return;
return trimObject({
count: parseNumber(value["@thr:count"]),
updated: parseDate(value["@thr:updated"])
});
};
const retrieveItem = (value) => {
if (!isObject(value)) return;
return trimObject({
total: parseSingularOf(value["thr:total"], (value) => parseNumber(retrieveText(value))),
inReplyTos: parseArrayOf(value["thr:in-reply-to"], parseInReplyTo)
});
};
//#endregion
export { parseInReplyTo, retrieveItem, retrieveLink };