New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-slugify

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-slugify - npm Package Compare versions

Comparing version 1.1.1 to 1.2.0

6

dist/slugify.d.ts
import * as React from 'react';
declare const slugify: (node: React.ReactNode) => string;
interface SlugifyOptions {
delimiter?: string;
prefix?: string;
}
declare const slugify: (node: React.ReactNode, options?: SlugifyOptions) => string;
export default slugify;

33

dist/slugify.js

@@ -11,18 +11,27 @@ "use strict";

}
return str.replace(reg, replacement).toLowerCase();
return str.replace(reg, replacement);
};
var harmonize = function (text) { return stripAccents(text)
.toLowerCase()
.replace(/\s+/g, '-')
.replace(/[^a-z-]/g, ''); };
var slugify = function (node) {
// undefined, null, boolean
var harmonize = function (text, delimiter) {
return stripAccents(text)
.trim()
.toLowerCase()
.replace(/\s+/g, delimiter)
.replace(new RegExp("/[^a-z" + delimiter + "]/g"), '');
};
var slugify = function (node, options) {
if (options === void 0) { options = { delimiter: '-', prefix: '' }; }
if (!options.delimiter)
options.delimiter = '-';
if (!options.prefix)
options.prefix = '';
if (!node || typeof node === 'boolean') {
return '';
}
// string, number
var delimiter = options.delimiter, prefix = options.prefix;
// string
if (typeof node === 'string')
return harmonize(node);
return harmonize(prefix + " " + node, delimiter);
// number
if (typeof node === 'number')
return String(node);
return harmonize(prefix + " " + node, delimiter);
// empty object

@@ -40,7 +49,7 @@ if (typeof node === 'object' && Object.keys(node).length === 0) {

if (node instanceof Array) {
return node.map(function (n) { return slugify(n); }).join('-');
return slugify(node.map(function (n) { return slugify(n, { delimiter: delimiter }); }).join(delimiter), options);
}
// ReactElement
if ('type' in node)
return slugify(node.props.children);
return slugify(node.props.children, options);
// unhandled case

@@ -47,0 +56,0 @@ return '';

{
"name": "react-slugify",
"version": "1.1.1",
"version": "1.2.0",
"description": "Slugify a React node",

@@ -5,0 +5,0 @@ "main": "dist/slugify.js",

# react-slugify
![build status](https://img.shields.io/circleci/project/github/martpie/react-slugify/master.svg?style=flat-square)
Slugify a React node

@@ -6,18 +9,16 @@

```
slugify(node)
```
### `slugify(node[, options])`
##### Parameters:
- `node` String, Number, Fragment, Array of nodes
- `options` Object (optional)
- `delimiter` String (default is `'-'`)
- `prefix` String (default is `''`)
`node`<br />
A react Node
## Examples
``` TSX
```tsx
import slugify from 'react-slugify';
slugify('something I want to test');
// "something-i-want-to-test"
// -> "something-i-want-to-test"

@@ -35,2 +36,21 @@ slugify(<span>Yes it works like that too</span>);

// -> "and-with-fragments-or-arrays"
slugify(
<h3>Crème brulée receipe</h3>,
{ delimiter: '_' }
);
// -> creme_brulee_receipe
slugify(
<h3>Crème brulée receipe</h3>,
{ prefix: 'user-content' }
);
// -> user-content-creme-brulee-receipe
slugify(
<h3>Crème brulée receipe</h3>,
{ delimiter: '_', prefix: 'user-content' }
);
// -> user-content_creme_brulee_receipe
```

Sorry, the diff of this file is not supported yet

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