From ec821647778b517b95cf6a00d02d1eeaa5878b1e Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Wed, 29 Jul 2026 22:51:12 +0200 Subject: [PATCH] Remove slash dependency and copy inline --- .changeset/ripe-carrots-cry.md | 5 +++++ packages/react-docgen-cli/package.json | 3 +-- .../src/commands/parse/command.ts | 2 +- .../src/utils/__tests__/slash-test.ts | 22 +++++++++++++++++++ packages/react-docgen-cli/src/utils/slash.ts | 15 +++++++++++++ pnpm-lock.yaml | 3 --- 6 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 .changeset/ripe-carrots-cry.md create mode 100644 packages/react-docgen-cli/src/utils/__tests__/slash-test.ts create mode 100644 packages/react-docgen-cli/src/utils/slash.ts diff --git a/.changeset/ripe-carrots-cry.md b/.changeset/ripe-carrots-cry.md new file mode 100644 index 00000000000..b7c00b4ae73 --- /dev/null +++ b/.changeset/ripe-carrots-cry.md @@ -0,0 +1,5 @@ +--- +'@react-docgen/cli': patch +--- + +Remove slash dependency diff --git a/packages/react-docgen-cli/package.json b/packages/react-docgen-cli/package.json index 7c8f07fae8d..81e79b922f1 100644 --- a/packages/react-docgen-cli/package.json +++ b/packages/react-docgen-cli/package.json @@ -39,8 +39,7 @@ "commander": "15.0.0", "debug": "4.4.3", "fast-glob": "3.3.3", - "react-docgen": "workspace:8.0.3", - "slash": "5.1.0" + "react-docgen": "workspace:8.0.3" }, "devDependencies": { "@types/debug": "4.1.13" diff --git a/packages/react-docgen-cli/src/commands/parse/command.ts b/packages/react-docgen-cli/src/commands/parse/command.ts index be172ee989d..cdf1389d3ea 100644 --- a/packages/react-docgen-cli/src/commands/parse/command.ts +++ b/packages/react-docgen-cli/src/commands/parse/command.ts @@ -8,7 +8,7 @@ import outputResult from './output/outputResult.js'; import loadOptions from './options/loadOptions.js'; import outputError from './output/outputError.js'; import { resolve } from 'path'; -import slash from 'slash'; +import slash from '../../utils/slash.js'; import type { Documentation } from 'react-docgen'; import { ResolverConfigs } from './options/loadResolvers.js'; diff --git a/packages/react-docgen-cli/src/utils/__tests__/slash-test.ts b/packages/react-docgen-cli/src/utils/__tests__/slash-test.ts new file mode 100644 index 00000000000..e70717d93b9 --- /dev/null +++ b/packages/react-docgen-cli/src/utils/__tests__/slash-test.ts @@ -0,0 +1,22 @@ +/* +Based on npm slash package: https://www.npmjs.com/package/slash +Licensed under MIT License +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +*/ + +import { describe, expect, test } from 'vitest'; +import slash from '../slash'; + +describe('slash', () => { + test('convert backwards-slash paths to forward slash paths', () => { + expect(slash('c:/aaaa\\bbbb')).toBe('c:/aaaa/bbbb'); + expect(slash('c:\\aaaa\\bbbb')).toBe('c:/aaaa/bbbb'); + expect(slash('c:\\aaaa\\bbbb\\★')).toBe('c:/aaaa/bbbb/★'); + }); + + test('not convert extended-length paths', () => { + const path = '\\\\?\\c:\\aaaa\\bbbb'; + + expect(slash(path)).toBe(path); + }); +}); diff --git a/packages/react-docgen-cli/src/utils/slash.ts b/packages/react-docgen-cli/src/utils/slash.ts new file mode 100644 index 00000000000..c61ce95f6dc --- /dev/null +++ b/packages/react-docgen-cli/src/utils/slash.ts @@ -0,0 +1,15 @@ +/* +Based on npm slash package: https://www.npmjs.com/package/slash +Licensed under MIT License +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +*/ + +export default function slash(path: string): string { + const isExtendedLengthPath = path.startsWith('\\\\?\\'); + + if (isExtendedLengthPath) { + return path; + } + + return path.replace(/\\/g, '/'); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79911d387a0..f29b4c2e648 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,9 +149,6 @@ importers: react-docgen: specifier: workspace:8.0.3 version: link:../react-docgen - slash: - specifier: 5.1.0 - version: 5.1.0 devDependencies: '@types/debug': specifier: 4.1.13