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

slugizoid

v1.1.1

Published

A package for managing REST API slugs

Downloads

4

Readme

slugizoid

All Contributors styled with prettier Commitizen friendly codecov CircleCI semantic-release

👽 Slugizoïd - Package for managing REST API slugs

Problem

When working with our API we found that the database always requires _(underscore) delimitated strings for column and table names where we use -(dash) in urls to make them more human readable. This then became an issue of converting different types of slugs back and forth between pluralized and singular, delimitated by dash and underscore which was heavy work and thought we shouldn't need consider.

Solution

Slugizoid is our simple solution to this problem, have a function that takes in any combination of delimitated strings pluralized or singular and normalizes them to allow for simple comparison and consistent output.

Install

yarn add slugizoid or npm i slugizoid

API

Creation

default function (slug: string = ''): {
  toString: Function,
  equals: Function,
  slugify: Function,
  urlify: Function,
}

Creation is simple, call the default exported anonymous function with your slug (delimitated by either - or _, with any case, plural or singular) and you will get back a slug object.

import slugizoid from 'slugizoid';

const slug = slugizoid('pull-requests');

Comparison

function equals(slug: string): boolean

Comparing slugs is easy, after creating a slug there is an exposed .equals method that takes a string to compare against.

import slugizoid from 'slugizoid';

const slug = slugizoid('pull-requests');

console.log(slug.equals('pull')); // false
console.log(slug.equals('pull_requests')): // true
console.log(slug.equals('pull_request')): // true
console.log(slug.equals('pull-request')): // true
console.log(slug.equals('pull-requests')): // true

Stringify

There are three functions slugizoid provides to get strings from the slug object.

slugify

function slugify(): string

slugify outputs the slug as a singular, _ delimitated string

import slugizoid from 'slugizoid';

const slug = slugizoid('pUlL-REquests');

console.log(slug.slugify()); // pull_request

urlify

function urlify(): string

Similar to slugify, urlify outputs the slug as a plural, - delimitated string

import slugizoid from 'slugizoid';

const slug = slugizoid('pUlL-REquests');

console.log(slug.urlify()); // pull-requests

toString

function toString(options: ?{ plural: boolean }): string

A simple method that outputs the slug as a space delimitated, capitalized, singular string. You can pass an object of options with a value of plural: true which will pluralize the output.

import slugizoid from 'slugizoid';

const slug = slugizoid('pUlL-REquests');

console.log(slug.toString()); // Pull Request
console.log(slug.toString({ plural: true })); // Pull Requests

Contributors

Thanks goes to these wonderful people (emoji key):

| Tyler Fry💻 | Eric Adamski💻 🎨 🤔 👀 ⚠️ | | :---: | :---: |

This project follows the all-contributors specification. Contributions of any kind welcome!