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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@timetoady/randommodule

v1.0.7

Published

A group of random and fun methods to get my feet wet on writing npm modules.

Downloads

3

Readme

randomModule

This module is a random group of methods just to get my feet wet in making my own node modules. There will be some useful ones (like a easy try/catch fetch for REST APIs) and some other random stuff.

Example Usage

To install:

npm install @timetoady/randommodule

To use:

const randomModule = require('@timetoady/randommodule');
randomModule.tryCatch(URL, method, headers, modifier) //example of use of one of the methods

Methods

tryCatch method

tryCatch(URL, method, headers, modifier)

Usage:

A basic async/await API call that uses a try/catch block and console.errors any errors received. Requires endpoint URL. You can specify headers, an API method (GET, POST, PUT, etc.), and also optionally modifier to call the API from different endpoints of the URL. Method and modifier default to GET and "" (respectively) if unspecified, and headers defaults to {}. Returns data as JSON.

Example:

    //In an async function.
    const jikanCoboywBebopAPI = "https://api.jikan.moe/v3/anime/1/episodes"
    const result = await tryCatch(jikanCoboywBebopAPI, "GET", {}, ".episodes") 
    console.log(result)

Result should be:

{
    "request_hash": "request:anime:c8a5be55579a0147b5c455245461fe69a7347e1b",
    "request_cached": true,
    "request_cache_expiry": 64469,
    "episodes_last_page": 1,
    "episodes": [
        {
            "episode_id": 1,
            "title": "Asteroid Blues",
            "title_japanese": "アステロイド・ブルース",
            "title_romanji": "Asteroid Blues ",
            "aired": "1998-10-24T00:00:00+00:00",
            "filler": false,
            "recap": false,
            "video_url": "https://myanimelist.net/anime/1/Cowboy_Bebop/episode/1",
            "forum_url": "https://myanimelist.net/forum/?topicid=29264"
        },
        {
            "episode_id": 2,
            "title": "Stray Dog Strut",
            "title_japanese": "野良犬のストラット",
            "title_romanji": "Nora Inu no Strut ",
            "aired": "1998-04-03T00:00:00+00:00",
            "filler": false,
            "recap": false,
            "video_url": "https://myanimelist.net/anime/1/Cowboy_Bebop/episode/2",
            "forum_url": "https://myanimelist.net/forum/?topicid=29323"
        }
    ]
}

(Response truncated for length.)

vowelShifter method

vowelShifter(string, vowel)

Usage:

Ever sung that song? "I like to oot, oot, oot, opplos and bononos?" Well, this does that for you. Just provide your string and the vowel you want it to shift to, and you can sing anything vowel-shifted. It changes your string to one, and will return an error if you don't give a vowel, ('a', 'e', 'i', 'o', or 'u' only, sorry 'y' and 'w' fans.) Returns data as a string.

Example:

vowelShifter("I like to brush my teeth twice a day.", "a")

Result should be:

I laka ta brash my taath twaca a day.

l33tTranslator method

l33tTranslator(string)

Usage:

Provide a string, returns a new, translated string, or a request for a string if one is not provided. Translates your run-of-the-mill, everyday, boring sentences into l33t, complete with word substitution and an over-abundance of caps and exclamation points. The number that still enjoy this internet gamer language fad is debatable, but don't let that stop you from spamming your Discord or Twitch friends with, "1 @M T3H WINNAR!!! 1 PWN @LL J00 F00LZ!!!"

Example:

l33tTranslator("Hello gentleman. I hope you have enjoyed your games, because now you are about to be owned by an elite power gamer.")

Result should be:

"H3LL0 G3NTL3M@N. 1 H0P3 J00 H@V3 3NJ0¥'D J00R G@M3S, B3C@US3 N0W J00 @R3 @B0UT T0 B3 PWN'D B¥ @N L33T POWWAH G@M3R."

tilChristmas method

tilChristmas().< timeMeasurement >

Usage:

Ever wonder how long until next Christmas? Want to always know on demand? Just run this method, and you can know to the second. Returns an object which gives you the time until Christmas in .days, .hours, .minutes, or .seconds, or a string with a combination of them broken down.

Example:

tilChristmas().timeUntilChristmas
tilChristmas().hours

Result should be:

"As of now, it is 307 days, 4 hours, 14 minutes, and 18.94 seconds until Christmas."
7372.230713611111

searchAnime method

searchAnime(searchTerm)

Usage:

Just a quick method that searches the MyAnimeList database for your favorite anime. Searches by title, episode name, genre, and more, especially if you add additional tags in your search term parameters (see https://jikan.docs.apiary.io/ for more details). Watch out for CORS issues depending on where you use it and your header settings. Results are the first five matches as JSON.

Example:

searchAnime("Slime")

Result should be:

{
    "request_hash": "request:search:1556c0fd13856234cf5a008f2a6cd4b940a3ea14",
    "request_cached": false,
    "request_cache_expiry": 432000,
    "results": [
        {
            "mal_id": 37430,
            "url": "https://myanimelist.net/anime/37430/Tensei_shitara_Slime_Datta_Ken",
            "image_url": "https://cdn.myanimelist.net/images/anime/1694/93337.jpg?s=c961d2c4b3cbb600d58e1bac55b4d854",
            "title": "Tensei shitara Slime Datta Ken",
            "airing": false,
            "synopsis": "Thirty-seven-year-old Satoru Mikami is a typical corporate worker, who is perfectly content with his monotonous lifestyle in Tokyo, other than failing to nail down a girlfriend even once throughout hi...",
            "type": "TV",
            "episodes": 24,
            "score": 8.07,
            "start_date": "2018-10-02T00:00:00+00:00",
            "end_date": "2019-03-19T00:00:00+00:00",
            "members": 742766,
            "rated": "PG-13"
        },
        {
            "mal_id": 39551,
            "url": "https://myanimelist.net/anime/39551/Tensei_shitara_Slime_Datta_Ken_2nd_Season",
            "image_url": "https://cdn.myanimelist.net/images/anime/1271/109841.jpg?s=8abec65944244475ed90db5cf43e3c7a",
            "title": "Tensei shitara Slime Datta Ken 2nd Season",
            "airing": true,
            "synopsis": "Second season of Tensei shitara Slime Datta Ken.",
            "type": "TV",
            "episodes": 12,
            "score": 8.06,
            "start_date": "2021-01-12T00:00:00+00:00",
            "end_date": null,
            "members": 332626,
            "rated": "PG-13"
        },
        {
            "mal_id": 38793,
            "url": "https://myanimelist.net/anime/38793/Tensei_shitara_Slime_Datta_Ken_OVA",
            "image_url": "https://cdn.myanimelist.net/images/anime/1116/104615.jpg?s=d5b7b08a8bb81a5a6625654db3d224bf",
            "title": "Tensei shitara Slime Datta Ken OVA",
            "airing": false,
            "synopsis": "The episode bundled with the 13th volume will be about the Sumo competition that held at Tempest for the first time, suggested by Rimuru. The three-part OVA bundled with the 14th, 15th, and 16th manga...",
            "type": "OVA",
            "episodes": 5,
            "score": 7.45,
            "start_date": "2019-07-09T00:00:00+00:00",
            "end_date": "2020-11-27T00:00:00+00:00",
            "members": 124771,
            "rated": "PG-13"
        },
        {
            "mal_id": 39607,
            "url": "https://myanimelist.net/anime/39607/Tensei_shitara_Slime_Datta_Ken__Kanwa_-_Veldora_Nikki",
            "image_url": "https://cdn.myanimelist.net/images/anime/1672/100144.jpg?s=b098b11a465a880b88dadb19035c7d0b",
            "title": "Tensei shitara Slime Datta Ken: Kanwa - Veldora Nikki",
            "airing": false,
            "synopsis": "Ifrit, who has been trapped in Rimuru due to the latter's Predator skill, recaps events of the season while in a discussion with Veldora as they play Shogi.",
            "type": "Special",
            "episodes": 1,
            "score": 6.51,
            "start_date": "2019-03-26T00:00:00+00:00",
            "end_date": "2019-03-26T00:00:00+00:00",
            "members": 68781,
            "rated": "PG-13"
        },
        {
            "mal_id": 41487,
            "url": "https://myanimelist.net/anime/41487/Tensei_shitara_Slime_Datta_Ken_2nd_Season_Part_2",
            "image_url": "https://cdn.myanimelist.net/images/anime/1739/106573.jpg?s=eeed9395e8eb6998d02f97e231d2dc84",
            "title": "Tensei shitara Slime Datta Ken 2nd Season Part 2",
            "airing": false,
            "synopsis": "Second half of Tensei shitara Slime Datta Ken 2nd Season.",
            "type": "TV",
            "episodes": 0,
            "score": 0,
            "start_date": "2021-07-01T00:00:00+00:00",
            "end_date": "2021-09-01T00:00:00+00:00",
            "members": 78591,
            "rated": "PG-13"
        }
    ],
    "last_page": 20
}

Thanks! TT