summaryrefslogtreecommitdiff
path: root/src2/core/utils/slug.js
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-03-01 09:18:52 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-03-01 09:18:52 +0000
commita7abbf4ddc70068620e9f44b74dc162ce2e16ee2 (patch)
tree74f66253717515d364ce74bd8275015c1f829cbc /src2/core/utils/slug.js
parent90e1edab9b6a8ccc09a49fed3addbec2cbc4e4c3 (diff)
parenta1b9b647a6c4bda1f5db63879639d44543f9557e (diff)
Merged in refactor (pull request #1)
Refactor
Diffstat (limited to 'src2/core/utils/slug.js')
-rw-r--r--src2/core/utils/slug.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/src2/core/utils/slug.js b/src2/core/utils/slug.js
new file mode 100644
index 00000000..0a7d30fc
--- /dev/null
+++ b/src2/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