sluga
Version:
Slugify a string
2 lines (1 loc) • 776 B
JavaScript
const e=require("lodash.deburr"),r=require("escape-string-regexp"),t=require("./replacements");Object.keys||(Object.keys=function(e){if(e!==Object(e))throw new TypeError("Object.keys called on a non-object");var r,t=[];for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t}),module.exports=(n,c)=>{if("string"!=typeof n)throw new TypeError(`Expected a string, got \`${typeof n}\``);var o=n,a=c||{};a=[{customReplacements:[]},a].reduce(function(e,r){try{var t=e;return Object.keys(r).forEach(function(e){t[e]=r[e]}),t}catch(r){return e}},{});const s=[].concat(t).concat(a.customReplacements).filter(Boolean);return o=((e,t)=>t.reduce(function(e,t){var n=t[0],c=t[1];return"string"!=typeof n?e:e.replace(new RegExp(r(n),"g"),c)},e))(o=o.normalize(),s),e(o)};