slugizoid
v1.1.1
Published
A package for managing REST API slugs
Downloads
4
Readme
slugizoid
👽 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!