aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/vendor/rss/xml.ts
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2026-01-26 06:20:31 +0100
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2026-01-26 06:20:31 +0100
commit663e797954721016625142c6a38d2915c0a6a698 (patch)
treece3213bf5ee3d39b2d2e80432c62634448786c95 /src/lib/vendor/rss/xml.ts
parent7a3a7eb9c8e1012a75e6956ba476f13beb414f4c (diff)
downloadmem-estrogen-zone-663e797954721016625142c6a38d2915c0a6a698.tar.gz
mem-estrogen-zone-663e797954721016625142c6a38d2915c0a6a698.tar.bz2
mem-estrogen-zone-663e797954721016625142c6a38d2915c0a6a698.tar.lz
mem-estrogen-zone-663e797954721016625142c6a38d2915c0a6a698.zip

feat: an RSS

Diffstat (limited to 'src/lib/vendor/rss/xml.ts')
-rw-r--r--src/lib/vendor/rss/xml.ts9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/vendor/rss/xml.ts b/src/lib/vendor/rss/xml.ts
index 30618c0..8a0d2c4 100644
--- a/src/lib/vendor/rss/xml.ts
+++ b/src/lib/vendor/rss/xml.ts
@@ -52,11 +52,11 @@ export abstract class XMLTagWithAttributes extends BaseXMLTag {
}
}
export abstract class XMLTagWithChildrenAndAttributes extends XMLTagWithAttributes {
- public children: BaseXMLTag[] = [];
+ public children: XMLTag[] = [];
protected get contentString() {
return this.children.map(v => v.toString()).join('\n');
}
- public child(...children: BaseXMLTag[]) {
+ public child(...children: XMLTag[]) {
this.children.push(...children);
return this;
}
@@ -82,6 +82,9 @@ export class XMLDeclaration extends XMLTagWithChildrenAndAttributes {
export class XMLElement extends XMLTagWithChildrenAndAttributes {
public readonly tagType = XMLTagType.Element as const;
public constructor(public tagName: string) { super() }
+ protected findElementChild(query: (element: XMLElement) => boolean) {
+ return this.children.find(el => el.tagType === XMLTagType.Element && query(el)) as XMLElement
+ }
public toString(): string {
return `<${this.tagName}${this.attributeString}${this.children.length ? `>
${indent(this.contentString, 2)}
@@ -138,4 +141,4 @@ export class XMLCData extends BaseXMLTag {
return `<![CDATA[${this.content.replace(/\]\]>/gu, ']]]]><![CDATA[>')}]]>`;
}
}
-export type XMLTag = XMLDocumentRoot | XMLDeclaration | XMLElement | XMLComment;
+export type XMLTag = XMLDocumentRoot | XMLDeclaration | XMLElement | XMLText | XMLComment | XMLCData;