summaryrefslogtreecommitdiff
path: root/src/core/utils/slug.js
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-01-24 15:54:48 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-01-24 15:54:48 +0700
commitee4297280c1305c7e03bedd4df63ccf136c28c6c (patch)
tree62eb00777f42542a37c63687dd1536f8f56df894 /src/core/utils/slug.js
parent23b31aa10302cc990f3fb083b8189233b2e9e08d (diff)
Merapihkan struktur folder
Diffstat (limited to 'src/core/utils/slug.js')
-rw-r--r--src/core/utils/slug.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/utils/slug.js b/src/core/utils/slug.js
new file mode 100644
index 00000000..0a7d30fc
--- /dev/null
+++ b/src/core/utils/slug.js
@@ -0,0 +1,25 @@
+import toTitleCase from './toTitleCase';
+
+const createSlug = (name, id) => {
+ let slug = name?.trim().replace(new RegExp(/[^A-Za-z0-9]/, 'g'), '-').toLowerCase() + '-' + id;
+ let splitSlug = slug.split('-');
+ let filterSlugFromEmptyChar = splitSlug.filter(x => x != '');
+ return filterSlugFromEmptyChar.join('-');
+}
+
+const getIdFromSlug = (slug) => {
+ let id = slug.split('-');
+ return id[id.length-1];
+}
+
+const getNameFromSlug = (slug) => {
+ let name = slug.split('-');
+ name.pop();
+ return toTitleCase(name.join(' '));
+}
+
+export {
+ createSlug,
+ getIdFromSlug,
+ getNameFromSlug
+}; \ No newline at end of file