From 50347c77e7071ec096c8c0bcdeddc663e6dd6bbd Mon Sep 17 00:00:00 2001 From: ozakione <29860391+OzakIOne@users.noreply.github.com> Date: Wed, 13 Mar 2024 19:50:49 +0100 Subject: [PATCH] refactor(utils): remove duplicated function --- .../src/collectRedirects.ts | 4 ++-- .../src/extensionRedirects.ts | 7 ++----- packages/docusaurus-plugin-content-docs/package.json | 1 + .../src/sidebars/generator.ts | 2 +- packages/docusaurus-plugin-content-docs/src/slug.ts | 2 +- .../docusaurus-utils-common/src/applyTrailingSlash.ts | 8 ++++---- packages/docusaurus-utils-common/src/index.ts | 1 + packages/docusaurus-utils/package.json | 1 + packages/docusaurus-utils/src/__tests__/urlUtils.test.ts | 2 +- packages/docusaurus-utils/src/index.ts | 1 - packages/docusaurus-utils/src/urlUtils.ts | 8 +------- packages/docusaurus/package.json | 2 +- packages/docusaurus/src/server/brokenLinks.ts | 2 +- packages/docusaurus/src/server/configValidation.ts | 2 +- 14 files changed, 18 insertions(+), 25 deletions(-) diff --git a/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts b/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts index 92a29a6ed3..cf31aca091 100644 --- a/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts +++ b/packages/docusaurus-plugin-client-redirects/src/collectRedirects.ts @@ -7,8 +7,8 @@ import _ from 'lodash'; import logger from '@docusaurus/logger'; -import {addTrailingSlash, removeTrailingSlash} from '@docusaurus/utils'; -import {applyTrailingSlash} from '@docusaurus/utils-common'; +import {removeTrailingSlash} from '@docusaurus/utils'; +import {applyTrailingSlash, addTrailingSlash} from '@docusaurus/utils-common'; import { createFromExtensionsRedirects, createToExtensionsRedirects, diff --git a/packages/docusaurus-plugin-client-redirects/src/extensionRedirects.ts b/packages/docusaurus-plugin-client-redirects/src/extensionRedirects.ts index 86fa4aeb48..178450d6cd 100644 --- a/packages/docusaurus-plugin-client-redirects/src/extensionRedirects.ts +++ b/packages/docusaurus-plugin-client-redirects/src/extensionRedirects.ts @@ -5,11 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import { - addTrailingSlash, - removeSuffix, - removeTrailingSlash, -} from '@docusaurus/utils'; +import {removeSuffix, removeTrailingSlash} from '@docusaurus/utils'; +import {addTrailingSlash} from '@docusaurus/utils-common'; import type {RedirectItem} from './types'; const ExtensionAdditionalMessage = diff --git a/packages/docusaurus-plugin-content-docs/package.json b/packages/docusaurus-plugin-content-docs/package.json index d7099a125e..e8349e4fb4 100644 --- a/packages/docusaurus-plugin-content-docs/package.json +++ b/packages/docusaurus-plugin-content-docs/package.json @@ -41,6 +41,7 @@ "@docusaurus/module-type-aliases": "3.0.0", "@docusaurus/types": "3.0.0", "@docusaurus/utils": "3.0.0", + "@docusaurus/utils-common": "3.0.0", "@docusaurus/utils-validation": "3.0.0", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts index 5a6b325449..0edf909bb9 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts @@ -8,7 +8,7 @@ import path from 'path'; import _ from 'lodash'; import logger from '@docusaurus/logger'; -import {addTrailingSlash} from '@docusaurus/utils'; +import {addTrailingSlash} from '@docusaurus/utils-common'; import {createDocsByIdIndex, toCategoryIndexMatcherParam} from '../docs'; import type { SidebarItemDoc, diff --git a/packages/docusaurus-plugin-content-docs/src/slug.ts b/packages/docusaurus-plugin-content-docs/src/slug.ts index 130c7a63b1..2183f9186e 100644 --- a/packages/docusaurus-plugin-content-docs/src/slug.ts +++ b/packages/docusaurus-plugin-content-docs/src/slug.ts @@ -7,10 +7,10 @@ import { addLeadingSlash, - addTrailingSlash, isValidPathname, resolvePathname, } from '@docusaurus/utils'; +import {addTrailingSlash} from '@docusaurus/utils-common'; import { DefaultNumberPrefixParser, stripPathNumberPrefixes, diff --git a/packages/docusaurus-utils-common/src/applyTrailingSlash.ts b/packages/docusaurus-utils-common/src/applyTrailingSlash.ts index d8faa439cc..7e80992d20 100644 --- a/packages/docusaurus-utils-common/src/applyTrailingSlash.ts +++ b/packages/docusaurus-utils-common/src/applyTrailingSlash.ts @@ -12,6 +12,10 @@ export type ApplyTrailingSlashParams = Pick< 'trailingSlash' | 'baseUrl' >; +export function addTrailingSlash(str: string): string { + return str.endsWith('/') ? str : `${str}/`; +} + // Trailing slash handling depends in some site configuration options export default function applyTrailingSlash( path: string, @@ -24,10 +28,6 @@ export default function applyTrailingSlash( return path; } - // TODO deduplicate: also present in @docusaurus/utils - function addTrailingSlash(str: string): string { - return str.endsWith('/') ? str : `${str}/`; - } function removeTrailingSlash(str: string): string { return str.endsWith('/') ? str.slice(0, -1) : str; } diff --git a/packages/docusaurus-utils-common/src/index.ts b/packages/docusaurus-utils-common/src/index.ts index 17b69e0727..a69d3eca81 100644 --- a/packages/docusaurus-utils-common/src/index.ts +++ b/packages/docusaurus-utils-common/src/index.ts @@ -11,6 +11,7 @@ export const blogPostContainerID = '__blog-post-container'; export { default as applyTrailingSlash, + addTrailingSlash, type ApplyTrailingSlashParams, } from './applyTrailingSlash'; export {getErrorCausalChain} from './errorUtils'; diff --git a/packages/docusaurus-utils/package.json b/packages/docusaurus-utils/package.json index b3fa5dee58..9f7adc9cbe 100644 --- a/packages/docusaurus-utils/package.json +++ b/packages/docusaurus-utils/package.json @@ -19,6 +19,7 @@ "license": "MIT", "dependencies": { "@docusaurus/logger": "3.0.0", + "@docusaurus/utils-common": "3.0.0", "@svgr/webpack": "^6.5.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", diff --git a/packages/docusaurus-utils/src/__tests__/urlUtils.test.ts b/packages/docusaurus-utils/src/__tests__/urlUtils.test.ts index 7ed1cbbf9c..8bca1ee126 100644 --- a/packages/docusaurus-utils/src/__tests__/urlUtils.test.ts +++ b/packages/docusaurus-utils/src/__tests__/urlUtils.test.ts @@ -5,12 +5,12 @@ * LICENSE file in the root directory of this source tree. */ +import {addTrailingSlash} from '@docusaurus/utils-common'; import { normalizeUrl, getEditUrl, fileToPath, isValidPathname, - addTrailingSlash, addLeadingSlash, removeTrailingSlash, resolvePathname, diff --git a/packages/docusaurus-utils/src/index.ts b/packages/docusaurus-utils/src/index.ts index dc5fc1e1bf..7fb489c351 100644 --- a/packages/docusaurus-utils/src/index.ts +++ b/packages/docusaurus-utils/src/index.ts @@ -51,7 +51,6 @@ export { parseURLPath, serializeURLPath, addLeadingSlash, - addTrailingSlash, removeTrailingSlash, hasSSHProtocol, buildHttpsUrl, diff --git a/packages/docusaurus-utils/src/urlUtils.ts b/packages/docusaurus-utils/src/urlUtils.ts index 8a7af4aa4b..dbad79892b 100644 --- a/packages/docusaurus-utils/src/urlUtils.ts +++ b/packages/docusaurus-utils/src/urlUtils.ts @@ -6,7 +6,7 @@ */ import resolvePathnameUnsafe from 'resolve-pathname'; -import {addPrefix, addSuffix, removeSuffix} from './jsUtils'; +import {addPrefix, removeSuffix} from './jsUtils'; /** * Much like `path.join`, but much better. Takes an array of URL segments, and @@ -237,12 +237,6 @@ export function addLeadingSlash(str: string): string { return addPrefix(str, '/'); } -// TODO deduplicate: also present in @docusaurus/utils-common -/** Appends a trailing slash to `str`, if one doesn't exist. */ -export function addTrailingSlash(str: string): string { - return addSuffix(str, '/'); -} - /** Removes the trailing slash from `str`. */ export function removeTrailingSlash(str: string): string { return removeSuffix(str, '/'); diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index 104ebb888f..6d47141a33 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -69,8 +69,8 @@ "del": "^6.1.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", - "eval": "^0.1.8", "eta": "^2.2.0", + "eval": "^0.1.8", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "html-minifier-terser": "^7.2.0", diff --git a/packages/docusaurus/src/server/brokenLinks.ts b/packages/docusaurus/src/server/brokenLinks.ts index acdc016a1f..78875ae21e 100644 --- a/packages/docusaurus/src/server/brokenLinks.ts +++ b/packages/docusaurus/src/server/brokenLinks.ts @@ -9,12 +9,12 @@ import _ from 'lodash'; import logger from '@docusaurus/logger'; import {matchRoutes as reactRouterMatchRoutes} from 'react-router-config'; import { - addTrailingSlash, parseURLPath, removeTrailingSlash, serializeURLPath, type URLPath, } from '@docusaurus/utils'; +import {addTrailingSlash} from '@docusaurus/utils-common'; import {getAllFinalRoutes} from './routes'; import type {RouteConfig, ReportingSeverity} from '@docusaurus/types'; diff --git a/packages/docusaurus/src/server/configValidation.ts b/packages/docusaurus/src/server/configValidation.ts index eafabc3ced..7d3d1ac258 100644 --- a/packages/docusaurus/src/server/configValidation.ts +++ b/packages/docusaurus/src/server/configValidation.ts @@ -10,10 +10,10 @@ import { DEFAULT_STATIC_DIR_NAME, DEFAULT_I18N_DIR_NAME, addLeadingSlash, - addTrailingSlash, removeTrailingSlash, } from '@docusaurus/utils'; import {Joi, printWarning} from '@docusaurus/utils-validation'; +import {addTrailingSlash} from '@docusaurus/utils-common'; import type { DocusaurusConfig, I18nConfig,