UNPKG

@visulima/string

Version:

Functions for manipulating strings.

2 lines (1 loc) 1.09 kB
"use strict";var c=Object.defineProperty;var l=(a,s)=>c(a,"name",{value:s,configurable:!0});const i=require("./packem_shared/transliterate-wQMEsr3l.cjs"),o=require("./utilities.cjs");var u=Object.defineProperty,p=l((a,s)=>u(a,"name",{value:s,configurable:!0}),"o");const g=p((a,s,e)=>{const r=o.escapeRegExp(s).replaceAll(String.raw`\-`,"-"),t=new RegExp(`[^${r}]`,"g");return a.replaceAll(t,e)},"removeDisallowedChars"),w=p((a,s)=>{const e={allowedChars:"a-zA-Z0-9-_.~",fixChineseSpacing:!0,ignore:[],lowercase:!0,replaceAfter:[],replaceBefore:[],separator:"-",transliterate:!0,trim:!1,unknown:"",uppercase:!1,...s};e.lowercase&&e.uppercase&&(console.warn("slugify: Both lowercase and uppercase options are true. Defaulting to lowercase."),e.uppercase=!1);let r=e.transliterate?i(a,e):a.normalize("NFC");e.lowercase?r=r.toLowerCase():e.uppercase&&(r=r.toUpperCase()),r=g(r,e.allowedChars,e.separator);const t=o.escapeRegExp(e.separator);if(t){const n=new RegExp(`${t}+`,"g");r=r.replace(n,e.separator)}return t?r.replaceAll(new RegExp(`^${t}+|${t}+$`,"g"),""):r},"slugify");module.exports=w;