0.2.18 • Published 10 months ago

xfp v0.2.18

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

(X) Feed Parser

Types Size

Parse RSS, Atom, JSON Feed, and HTML into a common JSON format. Complete with XML decoding, HTML sanitization, date standardization, media and metadata extraction.

This project is based on the rbren/rss-parser upgraded to ESM with JSDoc types and the addition of features above.

Install

npm install xfp

Usage

import { parse } from 'xfp'

let rawFeedString // XML (RSS/Atom), JSON Feed, or HTML
const feed = parse(rawFeedString)

Running the code above with a valid rawFeedString returns a response with the following schema:

{
	type: 'rss' | 'atom' | 'json' | 'html'
	lang?: string
	title?: string
	description?: string
	feedUrl?: string
	siteUrl?: string
	imageUrl?: string
	etag?: string
	updatedAt?: string
	items?: [{
		id?: string
		url?: string
		lang?: string
		title?: string
		summary?: string
		author?: string
		content?: string
		snippet?: string
		categories?: string[]
		commentsUrl?: string
		imageUrl?: string
		media?: [{
			url: string
			length?: number
			type?: string
		}]
		createdAt?: string
		updatedAt?: string
	}]
	meta?: {
		[key: string]: any // youtube, itunes metadata
	}
}

See the test/ folder for complete usage examples.

API

This library exports the parse function, which is a thin wrapper for parseXmlFeed, parseJsonFeed, and parseHtmlFeed.

parse(str)

Identifies the filetype (xml, json, or html) and assigns the appropriate parser.

import { parse } from 'xfp'

parseXmlFeed(str)

Handler for RSS (v0.9 - v2.0) and Atom feeds.

import { parseXmlFeed } from 'xfp'

parseJsonFeed(str)

Handler for JSON feeds (v1).

import { parseJsonFeed } from 'xfp'

parseHtmlFeed(str)

WIP! Extracts feed data from an HTML document using rehype-extract-meta and rehype-extract-posts.

import { parseHtmlFeed } from 'xfp'

License

MIT © Goran Spasojevic

0.2.18

10 months ago

0.2.17

10 months ago

0.2.16

10 months ago

0.2.14

10 months ago

0.2.13

10 months ago

0.2.11

10 months ago

0.2.10

10 months ago

0.2.9

10 months ago

0.2.8

10 months ago

0.2.7

10 months ago

0.2.6

10 months ago

0.2.5

10 months ago

0.2.4

10 months ago

0.2.3

10 months ago

0.2.2

10 months ago

0.2.1

10 months ago

0.2.0

10 months ago

0.1.2

11 months ago

0.1.1

11 months ago

0.1.0

11 months ago

0.0.0

11 months ago