1.0.0 • Published 7 years ago

feathers-slugify v1.0.0

Weekly downloads
36
License
MIT
Repository
github
Last release
7 years ago

feathers-slugify

Build Status Code Climate Test Coverage Dependency Status Download Status

Feathers hook to slugify properties

Installation

npm install feathers-slugify --save

Single Rule w/single property

const slugify = require('feathers-slugify')

module.exports = {
  before: {
    all: [],
    find: [],
    get: [],
    create: [
      slugify({ slug: 'name' })
    ]
  }
}

// With data for create
const data = {
  name: 'Dave Smith'
}
// Will become
const data = {
  name: 'Dave Smith',
  slug: 'dave-smith'
}

Single Rule w/multiple properties

const slugify = require('feathers-slugify')

module.exports = {
  before: {
    all: [],
    find: [],
    get: [],
    create: [
      slugify({ slug: ['meta.firstname', 'meta.surname'] })
    ]
  }
}

// With data for create
const data = {
  meta: {
    firstname: 'Dave',
    surname: 'Smith'
  }
}
// Will become
const data = {
  meta: {
    firstname: 'Dave',
    surname: 'Smith'
  },
  slug: 'dave-smith'
}

Multiple Rules

const slugify = require('feathers-slugify')

module.exports = {
  before: {
    all: [],
    find: [],
    get: [],
    create: [
      slugify([
        {
          source: ['name.first', 'name.last'],
          dest: 'fullname',
          overwrite: true // defaults to false
        },
        {
          source: 'title',
          dest: 'titleSlug'
        }
      ])
    ]
  }
}

// With data for create
const data = {
  name: {
    first: 'John',
    last: 'Smith'
  },
  title: 'My Awesome Title'
}
// Will become
const data = {
  name: {
    first: 'John',
    last: 'Smith'
  },
  fullname: 'john-smith',
  title: 'My Awesome Title',
  titleSlug: 'my-awesome-title'
}

Notes

This package uses the url-slug package to slugify.

RFC 3986 compliant slug generator with support for multiple languages. It creates safe slugs for use in urls—and can revert them.

License

Copyright (c) 2017

Licensed under the MIT license.