Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sails-hook-slugs

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sails-hook-slugs

A hook for Sails to handle slugs in your models.

  • 4.0.1-beta.1
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

sails-hook-slugs

Build Status Coverage Status dependencies Status npm

This Sails.js hook generates URL-friendly slugs in your models.

http://www.myblog.com/post/233987
-> http://www.myblog.com/post/title-of-my-blog-post

Installation

Add this hook to your Sails app:

$ npm install sails-hook-slugs

That's all!

Usage

Add an attribute of type slug in a model:

module.exports = {

  attributes: {
    title: {
      type: 'string',
      required: true,
      unique: true
    },
    content: {
      type: 'text'
    },
    slug: {
      type: 'slug',
      from: 'title',
      blacklist: ['search']
    }
  }
};

Configure your slug attribute:

  • from: name of the attribute from which the slug will be defined (required)
  • blacklist: A list of reserved words to not use as this slug (optional)

A slug attribute is automatically set when you create a record:

Post.create({
  title: 'This is a new post!!!',
  content: 'Post content'
})
.then(function(post) {
  console.log(post.slug); // 'this-is-a-new-post'
});

If a record of the same model has the same slug, a UUID is added at the end of the new slug:

Post.create({
  title: 'This is a new post!!!!',
  content: 'A new post again'
})
.then(function(post) {
  console.log(post.slug); // 'this-is-a-new-post-a50ec97e-9ae1-44a5-8fb2-81c665b61538'
});

Like any other attribute, you can use it as criteria to find a given resource:

Post.findOne({ slug: 'this-is-a-new-post' })
.then(function(post) {
  // Use the post
})
.catch(function(err) {
  // ...
});

Configuration

These parameters can be changed in sails.config.slugs:

ParameterTypeDetails
lowercasebooleanWhether or not the generated slugs are lowercased. Defaults to true.
blacklistArray<string>A list of reserved words to not use as slugs in your application. Defaults to [].
separatorstringSeparator to use in slugs. Defaults to -.

License

MIT © 2019 Jérémie Ledentu

Keywords

FAQs

Package last updated on 20 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc