summaryrefslogtreecommitdiff
path: root/src-migrate/libs
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-10-29 09:20:24 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-10-29 09:20:24 +0700
commitf091d443fe0cdbcb1500a5b396b180bab30affd5 (patch)
tree068655ec9a4f69b38293cd07dcfc8c215a5c8a32 /src-migrate/libs
parent0febcbbbb62bb2f76e1385b8f4edb05e7217a618 (diff)
parent7f71d52e2e6e6e8ffb5ea2837be84c800d04ef95 (diff)
Merge branch 'new-release' of https://bitbucket.org/altafixco/next-indoteknik into cr_prod_card
merge
Diffstat (limited to 'src-migrate/libs')
-rw-r--r--src-migrate/libs/slug.ts35
1 files changed, 22 insertions, 13 deletions
diff --git a/src-migrate/libs/slug.ts b/src-migrate/libs/slug.ts
index 5ab3b3dd..e8267ed2 100644
--- a/src-migrate/libs/slug.ts
+++ b/src-migrate/libs/slug.ts
@@ -3,21 +3,30 @@ 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 !== '');
+ id: string | number,
+ withHost: boolean = false
+): string => {
+ name ||= '';
+
+ // pastikan id jadi string
+ const safeId = (id ?? '').toString();
- slug = `${prefix}${filterSlug.join('-')}`;
+ let slug =
+ name
+ ?.trim()
+ .replace(new RegExp(/[^A-Za-z0-9]/, 'g'), '-') // non alphanumeric -> "-"
+ .toLowerCase() +
+ '-' +
+ safeId;
+
+ const splitSlug = slug.split('-');
+ const filterSlugFromEmptyChar = splitSlug.filter((x) => x !== '');
+ slug = prefix + filterSlugFromEmptyChar.join('-');
- if (withHost) slug = process.env.NEXT_PUBLIC_SELF_HOST + slug;
+ if (withHost) {
+ const host = (process.env.NEXT_PUBLIC_SELF_HOST || '').replace(/\/+$/, '');
+ slug = host + slug;
+ }
return slug;
};