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

tiny-shortener

v2.2.3

Published

A new Tiny URL package with promise/async support.

Downloads

18

Readme

tiny-shortener

English README Portuguese README

npm npm Maintainability Build Status Dependencies codecov

A new Tiny URL package for Node.js with promise/async and alias support.

About

The idea behind this package is for a Open Source class taken at college. The professor wanted us to make a contribution to an OSS project.

Since the TinyURL package is a great option after Google has shut down it's shortener service. But the TinyURL has no Promise support, making it difficult to use with any new ECMA standards. As there is a Pull Request(PR) opened supporting this in the project and still isn't merged, the idea behind tiny-shortener is to make a new package that supports this and goes a step further supporting alias, letting the user personalize the shortened URL.

obs: in case that that the alias isn't available the request still works but falls back to an default shortened link.

Installing

Requirements

Since this package uses only Node packages as support, Node will be needed as npm installed.

npm

npm install tiny-shortener --save

Using it

tiny(url, [alias])

  • url - Link to be shortened;
  • alias - Wanted personalization link;
  • Returns <Promise> - Shortened link or rejects an error.

Examples

TypeScript

With async/await support but works with Promises as well:

import { tiny } from 'tiny-shortener';

const asyncRequest = async (): Promise<void> => {
    const shortened = <string> await tiny('www.microsoft.com');
    const aliased = <string> await tiny('www.typescriptlang.org/', 'tslang');

    console.log(`Without alias is: ${shortened}\nWith alias: ${aliased}`);
};

JavaScript

With Promises support but works with async/await as well:

const tiny = require('tiny-shortener').tiny;

tiny('www.microsoft.com')
    .then(console.log)
    .catch(console.error);

// with alias
tiny('www.typescriptlang.org/', 'tslang')
    .then(console.log)
    .catch(console.error);
});

CLI

tiny-shortener --url www.example.com

Or even with alias support:

tiny-shortener --url www.foo.com --personalization bar

See more

See more in the examples folder.

Why TypeScript?

TS users suffer from having to make the typings for a large part of little projects. We've decide to make this as a TS project to allow a painless interoperability.

Style code

Using the Microsoft style code.

Testing

With Test Driven Development(TDD) in mind, we've used the Facebook's Jest test runner through the ts-jest package to run with the need to compiling the code. See more in ci folder;

Versioning

Versioning is made through npm versioning system. You can see what version is in the badge at the top of this README.

Build with

Contributing

We're opened to PRs as long you open an issue before explaining what you will be pushing and we will see if fits.

TODO

  • Write some more examples

Authors

License

See LICENSE for more about it.

Acknowledges

  • Mocklab - System of mocking API request for testing;
  • Stormpath - This express tutorial for writing examples;
  • Object Calisthenics - This post helped to understand a new concept thanks to @vinicius73 feedback on a Node.js Telegram group.