1.1.1 • Published 6 years ago

slugizoid v1.1.1

Weekly downloads
6
License
MIT
Repository
github
Last release
6 years ago

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!