@visulima/string
Version:
Functions for manipulating strings.
2 lines (1 loc) • 1.07 kB
JavaScript
var c=Object.defineProperty;var s=(a,o)=>c(a,"name",{value:o,configurable:!0});import i from"./packem_shared/transliterate-CxVHmZUa.js";import{escapeRegExp as t}from"./utilities.js";var u=Object.defineProperty,p=s((a,o)=>u(a,"name",{value:o,configurable:!0}),"o");const f=p((a,o,e)=>{const r=t(o).replaceAll(String.raw`\-`,"-"),l=new RegExp(`[^${r}]`,"g");return a.replaceAll(l,e)},"removeDisallowedChars"),C=p((a,o)=>{const e={allowedChars:"a-zA-Z0-9-_.~",fixChineseSpacing:!0,ignore:[],lowercase:!0,replaceAfter:[],replaceBefore:[],separator:"-",transliterate:!0,trim:!1,unknown:"",uppercase:!1,...o};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=f(r,e.allowedChars,e.separator);const l=t(e.separator);if(l){const n=new RegExp(`${l}+`,"g");r=r.replace(n,e.separator)}return l?r.replaceAll(new RegExp(`^${l}+|${l}+$`,"g"),""):r},"slugify");export{C as default};