blob: 5ab3b3dd0b79372c1206707aa3a4a6425626a5c6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import { toTitleCase } from './toTitleCase';
export const createSlug = (
prefix: string,
name: string,
id: string,
withHost = false
) => {
const cleanName = name
.trim()
.replace(new RegExp(/[^A-Za-z0-9]/, 'g'), '-')
.toLowerCase();
let slug = `${cleanName}-${id}`;
const splitSlug = slug.split('-');
const filterSlug = splitSlug.filter((x) => x !== '');
slug = `${prefix}${filterSlug.join('-')}`;
if (withHost) slug = process.env.NEXT_PUBLIC_SELF_HOST + slug;
return slug;
};
export const getIdFromSlug = (slug: string) => {
let id = slug.split('-');
return id[id.length - 1];
};
export const getNameFromSlug = (slug: string) => {
let name = slug.split('-');
name.pop();
return toTitleCase(name.join(' '));
};
|