summaryrefslogtreecommitdiff
path: root/src-migrate/libs/slug.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/libs/slug.ts')
-rw-r--r--src-migrate/libs/slug.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/src-migrate/libs/slug.ts b/src-migrate/libs/slug.ts
new file mode 100644
index 00000000..5ab3b3dd
--- /dev/null
+++ b/src-migrate/libs/slug.ts
@@ -0,0 +1,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(' '));
+};