Small helpers are easier to test and can be composed into a larger transformation.

Helper Composition

helpers.ts
function normalize(text: string): string {
    return text.trim().toLowerCase();
}

function slugify(text: string): string {
    return text.replace(" ", "-");
}

function buildSlug(title: string): string {
    const normalized: string = normalize(title);
    return slugify(normalized);
}

const pageTitle: string = ;
const slug: string = buildSlug(pageTitle);

console.log(`slug=${slug}`);
function normalize(text: string): string {
    return text.trim().toLowerCase();
}

function slugify(text: string): string {
    return text.replace(" ", "-");
}

function buildSlug(title: string): string {
    const normalized: string = normalize(title);
    return slugify(normalized);
}

const pageTitle: string = ;
const slug: string = buildSlug(pageTitle);

console.log(`slug=${slug}`);
function normalize(text: string): string {
    return text.trim().toLowerCase();
}

function slugify(text: string): string {
    return text.replace(" ", "-");
}

function buildSlug(title: string): string {
    const normalized: string = normalize(title);
    return slugify(normalized);
}

const pageTitle: string = ;
const slug: string = buildSlug(pageTitle);

console.log(`slug=${slug}`);
helper composition Helper composition means each helper does one job and another function connects the steps.