Yuki Takei 3 лет назад
Родитель
Сommit
aadf38b9ff
2 измененных файлов с 27 добавлено и 0 удалено
  1. 11 0
      packages/core/src/utils/page-path-utils.ts
  2. 16 0
      packages/core/src/utils/path-utils.js

+ 11 - 0
packages/core/src/utils/page-path-utils.ts

@@ -1,6 +1,8 @@
 import nodePath from 'path';
 
 import escapeStringRegexp from 'escape-string-regexp';
+import { isValidObjectId } from 'mongoose';
+
 
 import { addTrailingSlash } from './path-utils';
 
@@ -20,6 +22,15 @@ export const isUsersTopPage = (path: string): boolean => {
   return path === '/user';
 };
 
+/**
+ * Whether the path is permalink
+ * @param path
+ */
+export const isPermalink = (path: string): boolean => {
+  const pageIdStr = path.substring(1);
+  return isValidObjectId(pageIdStr);
+};
+
 /**
  * Whether path is user's home page
  * @param path

+ 16 - 0
packages/core/src/utils/path-utils.js

@@ -73,6 +73,22 @@ export function addTrailingSlash(path) {
   return path;
 }
 
+/**
+ *
+ * @param {string} path
+ * @returns {string}
+ * @memberof pathUtils
+ */
+export function removeHeadingSlash(path) {
+  if (path === '/') {
+    return path;
+  }
+
+  return hasHeadingSlash(path)
+    ? path.substring(1)
+    : path;
+}
+
 /**
  *
  * @param {string} path