@shelf/fast-uslug
v1.0.0
Published
A 30x faster version of the "uslug" package
Downloads
2,021
Maintainers
Keywords
Readme
fast-uslug
It was forked from uslug.
30x faster than uslug.
Permissive slug generator that works with unicode. We keep only characters from the categories Letter, Number and Separator (see Unicode Categories) and the common CJK Unified Ideographs as defined in the version 6.0.0 of the Unicode specification.
Inspired by unicode-slugify. Note that this slug generator is different from node-slug which focus on translating unicode characters to english or latin equivalent.
Install
$ yarn add @shelf/fast-uslug
Usage
import {fastUslug} from '@shelf/fast-uslug';
fastUslug('some string'); // some-string
Quick Examples
import {fastUslug} from '@shelf/fast-uslug';
fastUslug('Ґатунок Їхніх обценьок неперевершений!'); // 'ґатунок-їхніх-обценьок-неперевершений'
fastUslug('汉语/漢語'); // '汉语漢語'
fastUslug('Y U NO', {lower: false}); // 'Y-U-NO'
fastUslug('Y U NO', {spaces: true}); // 'y u no'
fastUslug('Y-U|NO', {allowedChars: '|'}); // 'yu|no'
Benchmark
| uslug | @shelf/fast-uslug | Improvement | | ----------------------------------------- | ---------------------------------------------------------- | ----------- | | 10 words: 7 375 ops/s, ±0.19% | 10 words: 243 646 ops/s, ±0.19% | 33x | | 100 words: 702 ops/s, ±0.10% | 100 words: 22 683 ops/s, ±0.17% | 32x | | 1000 words: 69 ops/s, ±0.17% | 1000 words: 2 241 ops/s, ±0.17% | 34x |
You can run yarn benhmark
to test on your own.
Options
fastUslug(string, options)
Generate a slug for the string passed.
Arguments
- string - The string you want to slugify.
- options - An optional object that can contain:
- allowedChars: a Set of chars that you want to be whitelisted. Default: '-_~'.
- lower: a Boolean to force to lower case the slug. Default: true.
- spaces: a Boolean to allow spaces. Default: false.
See Also
Publish
$ git checkout master
$ yarn version
$ yarn publish
$ git push origin master --tags
License
MIT © Shelf