npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

yourss

v0.1.0

Published

RSS manipulation made simple

Downloads

6

Readme

YouRSS

RSS Feed manipulation made easy. Merge, map, filter, sort, and cache RSS feeds in Node.

Note: This project is pre-version 1.0.0, so breaking changes may occur. Use at your own risk or lock down to a specific version using NPM.

Travis Build Status Coverage Status npm GitHub stars License



            Y88b    /   ,88~-_   888   | 888~-_   ,d88~~\ ,d88~~\ 
             Y88b  /   d888   \  888   | 888   \  8888    8888    
              Y88b/   88888    | 888   | 888    | `Y88b   `Y88b   
               Y8Y    88888    | 888   | 888   /   `Y88b,  `Y88b, 
                Y      Y888   /  Y88   | 888_-~      8888    8888 
               /        `88_-~    "8__/  888 ~-_  \__88P' \__88P' 
                                                 

Table of Contents

Usage

Node

The recommended way to use this package is as an npm package. To install and save it to your project's dependencies, run:

npm install yourss --save

After installing, call the Yourss factory with an RSS feed ULR and then chain any manipulators to the call. Resolve the feed and get results by calling get(). The response will be a promise of a Feed object.

const Yourss = require('yourss');

const url = 'http://www.rss-feed-url.com/feed.xml';
const result = Yourss(url)
  // Optional: Add manipulators here (see below)
  .get();
  
result.then(feed => {
  // Do something with the feed 
});

Browser

Coming soon!

Manipulators

Cache

Caches the feed response with the results of any previously chained manipulators. Uses SQLite and Keyv by default, but you can set a backend with the Yourss.setBackend method.

Options

  • ttl - Time to live for the cache.

Example

// Caches a response 
feed = Yourss(url).cache(ttl).get();

// Caches the response and any chained manipulators before it
feed = Yourss(url)
  .map(mapFunction)
  .filter(filterFunction)
  .cache(ttl)
  .get();

Filter

Filters items in the feed based on a callback function.

Options

  • callback

Example

// Filter any items with a title
feed = Yourss(url)
  .filter((item) => {
    return item.title;
  }).get();

Map

Loop over and manipulate items in the feed.

Options

  • callback

Example

// Change the title of each item in a feed
feed = Yourss(url)
  .map((item) => {
    return item.title + ' Changed!';
  }).get();

Merge

Options

  • feed - The resolved feed to be merged with the current one.
  • callback (optional) - For merging with a custom callback.

Example

// Merge feed2 into the feed
feed2 = Yourss(url2).get();
feed = Yourss(url)
  .merge(feed2)
  .get();

Sort

Change the order of the items in a feed using a custom callback.

Options

  • callback

Example

// Sort by date ascending
feed = Yourss(url)
  .sort((a, b) => {
    return (new Date(a.pubdate) - new Date(b.pubdate));
  }).get();

Contributing

All patches, fixes, and ideas welcome! Please read contributing.md for furthers details.

License

License