| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | const regex = require('./regex.js')module.exports = BananaSlugconst own = Object.hasOwnPropertyfunction BananaSlug () {  const self = this  if (!(self instanceof BananaSlug)) return new BananaSlug()  self.reset()}/** * Generate a unique slug. * @param  {string} value String of text to slugify * @param  {boolean} [false] Keep the current case, otherwise make all lowercase * @return {string}       A unique slug string */BananaSlug.prototype.slug = function (value, maintainCase) {  const self = this  let slug = slugger(value, maintainCase === true)  const originalSlug = slug  while (own.call(self.occurrences, slug)) {    self.occurrences[originalSlug]++    slug = originalSlug + '-' + self.occurrences[originalSlug]  }  self.occurrences[slug] = 0  return slug}/** * Reset - Forget all previous slugs * @return void */BananaSlug.prototype.reset = function () {  this.occurrences = Object.create(null)}function slugger (string, maintainCase) {  if (typeof string !== 'string') return ''  if (!maintainCase) string = string.toLowerCase()  return string.replace(regex, '').replace(/ /g, '-')}BananaSlug.slug = slugger
 |