All files / util slugify.ts

100% Statements 14/14
100% Branches 1/1
100% Functions 1/1
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 151x 1x 1x 1x 1x 1x 1x 1x 13x 13x 13x 13x 13x 13x  
// Function goals:
// - replace ampersands with "and" (preserve url
// legibility without breaking routing)
// - strip out everything except characters, digits,
// and whitespace, then convert to Kebab case.
// - E.g. "Title 2: This time it's personal"
// becomes "title-2-this-time-its-personal"
export default (s: string) =>
  s
    .toLowerCase()
    .replaceAll(/&/g, "and")
    .replaceAll(/[^a-z0-9\s-_]/g, "")
    .trim()
    .replaceAll(/\s+/g, "-");